Linux【インシデント管理】ZabbixのアラートをRedmine上に自動起票する方法Zabbixでシステム監視をする方法を前回の記事で紹介しましたが、実際のシステム運用の現場では、アラートは検知してそれで終わりというわけではありません。検知したことをインシデントとして管理して、対応完了までの時系列などを記録しておく必要があります。Excelなどで手作業で管理することも可能ですが、自動化できれば非常に便利です。この記事では、チケット管理ツールとして有名なRedmineをZabbixと連携して、ZabbixのアラートをRedmineに自動登録する方法を紹介します。APIの有効化APIアクセスキーの確認Redmine起票用Pythonスクリプトの作成Zabbixの設定アクションの追加Redmineとは?Redmine(れっどまいん)は、オープンソースで開発されているプロジェクト管理ツールです。チケットによるタスク管理機能や、ガントチャート、wiki、フォーラムなど、様々な機能があります。システム開発の現場で使われることを想定したツールですが、システム運用の現場で、インシデント管理、問い合わせ管理などの用途でも活用することができます。日本語の情報は、非公式サイトのRedmine.JPにいろいろまとめられています。Zabbixの監視アラートでRedmine上にチケットを起票する仕組みをつくろう」という記事を参考にしました。3.4をインストールしました。インストールと初期設定の方法はRedmine.JPの解説ページに細かく書いてあります。書いている通りにやればスムーズにできるので、本記事では割愛します。ちなみに、dockerを使えばとても簡単に環境を作ることが可能です。MySQLが参考になります。Redmineの設定プロジェクトの作成まずは、インシデントの管理を行うためのプロジェクトを作成します。メニューの「プロジェクト」⇒「新しいプロジェクト」をクリック。識別子はZabbixと連携する際に必要になります。他の項目はデフォルトのままで問題なし。トラッカーの追加Redmineでは、チケットの分類を「トラッカー」といいます。デフォルトでは「バグ」「機能」「サポート」があります。これをそのまま利用してもよいのですが、今回は分類しやすいように「インシデント」を作ってみます。メニューの「管理」⇒「トラッカー」⇒「新しいトラッカー」をクリック。名称、デフォルトのステータスを設定。ワークフローは既存のトラッカーの設定を流用したいので「バグ」を選択。使用するプロジェクトにチェックを入れておきます。トラッカーが作成されます。id)を後で使うので覚えておきます。APIが利用できます。デフォルトでは無効化されているので、有効化しましょう。「RESTによるWebサービスを有効にする」にチェックを入れて、保存すれば完了です。APIを経由してRedmineにアクセスするときは、APIアクセスキーを利用します。APIアクセスキーはユーザ毎に異なる値なので、起票したいユーザでログインし直した上で、メニューの「個人設定」をクリック。画面右側にある「APIアクセスキー」の欄で「表示」リンクをクリックすると、40桁くらいの英数字が表示されますが、これがAPIアクセスキーです。あとでZabbixの設定で使うので控えておきます。APIを使えば、チケットを起票することができます。APIを操作するプログラムをPythonで記述して、Zabbixがインストールされているサーバに配置しておきます。Zabbixの監視アラートでRedmine上にチケットを起票する仕組みをつくろう」を踏まえたものですが、エラーが出た箇所を修正した部分や、少し機能を追加した部分があります。Zabbixサーバにroot権限でログインして、epelと、Python関連のパッケージ(pip、python-redmine)をインストール。Jinja2下記内容のファイルを、/usr/local/bin/issue_reporter.pyに保存。このチケットは自動登録されました。確認、対応をお願いします。u"""このチケットは自動登録されました。確認、対応をお願いします。次に、Zabbix側の設定をします。アラートを検知したら起票用スクリプトを実行させるため、アクションを追加します。Zabbixの管理画面で「設定」⇒「アクション」を選択。「アクションの作成」を選択。タブをクリックすると、具体的な実行内容を設定できます。1「実行内容」の欄で「新規」をクリック。2実行内容のタイプ:「リモートコマンド」3ターゲットリスト:「現在のホスト」4タイプ:「カスタムスクリプト」5次で実行:「Zabbixサーバー」6コマンド:下記を設定。RedmineのURL、APIアクセスキー、プロジェクトの識別子、トラッカーIDは適宜変更してください。お好みで題名や内容を編集してもかまいません。"以下のメッセージを検知しました。"以下のメッセージを検知しました。{TRIGGER.SEVERITY}"最終的に、下記スクショのような感じに設定できたら、「追加」をクリックして保存。あとは、実際に何かアラートを発生させて動作確認します。Redmine上にインシデントが自動登録されるはずです。まとめ以上で、ZabbixとRedmineを連携してインシデント管理ができるようになりました。これで、システム運用が今まで以上に効率的に実現できるようになると思います。コメントをキャンセルメールアドレスが公開されることはありません。