• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

Opsgenie を Icinga2 と統合する

Icinga2 ダイアグラム

概要

統合でできるようになること

Icinga2 統合プラグインは、Opsgenie の全機能を活用して Icinga2 との双方向の統合を提供します。

統合による機能

  • Icinga2 は、詳細な情報とともにアラートを Opsgenie に送信します。OpsgenieIcinga2 のアラートのディスパッチャーとして機能して、オンコール スケジュールに基づいて通知する適切な担当者を決定します。メール、電話、テキスト メッセージ (SMS)、iPhone、Android のプッシュ通知によって通知し、アラートが承認されるかクローズされるまでアラートをエスカレートします。

  • Opsgenie は自動的に Icinga2 に接続し、Graphite からホスト / サービスのパフォーマンス データを取得し、アラートに添付します。

  • OpsgenieIcinga2 にアラートの更新を投稿します。たとえば、アラートを承認すると Icinga2 でアラートが自動的に承認され、アラート コメントは Icinga2 に反映されます。

統合をセットアップする

Icinga2 統合プラグインは、Opsgenie の全機能を活用して Icinga2 との双方向の統合を提供します。以下の手順では、Icinga2 統合プラグインを使用して、OpsgenieIcinga2 を統合する方法を説明します。ご使用の Linux ディストリビューションと Icinga2 の設定によっては、これらの手順に若干の変更が必要になる場合があることに注意してください。

インストールの必須条件

インストール パッケージは、以下のシステムをサポートしています。

  • RedHat ベースの Linux ディストリビューション

  • Debian ベースの Linux ディストリビューション

Icinga 2 用の Opsgenie プラグインをインストールする

Opsgenie Edge Connector (OEC) は Icinga2 統合の送信認証を設定するための必須条件です。OEC と Icinga2 のスクリプトを組み合わせて使用して、Icinga 2 のアラートを更新できます。これによって、独自のスクリプトをデプロイしたり、提供されたスクリプトを変更したり、カスタマイズしたアクションを Icinga2 上で実行したりできます。Icinga2 パッケージの最新バージョンは、このリポジトリからダウンロードしてください。

RedHat ベースのディストリビューションに関する手順

次のコマンドを実行します。 

rpm -i opsgenie-icinga2-<your_version>.rpm

rpm パッケージは、アップグレード中に既存の設定を上書きしません。これによって、新しい既定の設定ファイルが integration.conf.rpmnew として保存されます。rpm アップグレードの設定ファイル処理に関する詳細をご確認ください。

バージョン 1 から統合を更新する場合は、integration.conf ファイルを次のように更新します。

  • icinga.alert_histogram_image_url、icinga.trends_image_url、icinga.command_url の各プロパティを削除します。

  • icinga.api_url (Icinga サーバーの Icinga2 API エンドポイント) と icinga.graphite_url の各プロパティを追加します。

Debian ベースのディストリビューションに関する手順

次のコマンドを実行します。 

dpkg -i opsgenie-icinga2-<your_version>.deb

その他のディストリビューションに関する手順

次のコマンドを実行します。

unzip opsgenie-icinga2-<your_version>.zip

Icinga 2 統合を追加する

Opsgenie に Icinga 2 統合を追加するには、次の手順に従います。

  1. [設定] > [統合] の順に移動します。

  2. [統合を追加] を選択します。

  3. 検索を実行して「Icinga 2」を選択します。

  4. 次の画面で、統合の名前を入力します。

  5. オプション: 特定のチームが統合からのアラートを受信するようにする場合は、[Assignee team (担当者チーム)] のチームを選択します。

  6. [続行] を選択します。
    この時点で、統合が保存されます。

  7. [統合を設定するステップ] セクションを展開して、API キーをコピーします。
    この URL は、後ほど Icinga 2 で統合を設定する際に使用します。このキーは、Icinga 2 によって Opsgenie の認証に使用され、Icinga2 アラートを処理するための統合を指定します。

  8. [統合をオンにする] を選択します。
    統合のために作成したルールは、統合をオンにした場合にのみ機能します。

Icinga 2 で Opsgenie プラグインを設定する

プラグインは golang 実行可能ファイル (send2opsgenie としてプラグインに含まれます) を使用して、Opsgenie でアラートを作成、承認、クローズします。Opsgenie でアラートを作成、承認、クローズするために、イベントでこのファイルを実行するよう Icinga 2 を設定します。apiKey の設定は必須です。その他の設定パラメーターは、ほとんどの Icinga 2 実装で動作しますが、変更が必要となる場合もあります。次のテーブルで、必須のパラメーターとステータスの一覧を示します。

設定パラメーター

説明

入力必須

場所

API キー

前に作成した Icinga2 インテグレーションから API キーをコピーします。send2opsgenie はこのキーを使用して Opsgenie への認証を行います。API キーは、アラートの処理に使用する必要がある適切なインテグレーション設定を識別するためにも用いられます。

はい

/home/opsgenie/oec/conf/config.json

ベース URL

Opsgenie を別のドメイン (例: EU、サンドボックス) から使用している場合は、この設定を更新する必要があります。configuration.Opsgenie Icinga2 インテグレーションの[詳細設定] ページ。

任意

/home/opsgenie/oec/conf/config.json

responders

responders フィールドは、Icinga2 アラートを通知する必要があるチームを指定するために使用されます。このフィールドは、既定の応答者フィールド値を設定するために使用されます。Opsgenie Icinga2 インテグレーションの [詳細設定] ページで、異なるアラートを異なるチームにルーティングするように変更します。

任意

 

tags

[Tags] フィールドは、Opsgenie で作成されたアラートのタグを指定するために使用されます。

任意

 

icinga_server

icinga_server フィールドは OpsgenieIcinga2 サーバーを識別するために使用され、複数の Icinga2 サーバーがある場合にのみ必要です。このフィールドは、Opsgenie がユーザーが実行したアクション (承認、クローズなど) を OEC 経由で Icinga2 サーバーに返送するときに使用されます。

任意

 

logPath

ログ ファイルの完全なパスを指定します。(既定値は /var/log/opsgenie/send2opsgenie.log)。

任意

 

icinga2opsgenie.http.proxy.enabled

icinga2opsgenie.http.proxy.enabled フィールドは、外部プロキシの設定を有効または無効にします。既定は false です。

任意

 

icinga2opsgenie.http.proxy.host

これは、プロキシのホストです。

任意

 

icinga2opsgenie.http.proxy.port

プロキシのポートです。

任意

 

icinga2opsgenie.http.proxy.scheme

これは、プロキシ接続プロトコルです。プロキシ サーバーによって、http または https になる場合があります。既定値は http です。

任意

 

icinga2opsgenie.http.proxy.username

プロキシ認証ユーザー名です。

任意

 

icinga2opsgenie.http.proxy.password

これは、プロキシ認証パスワードです。

任意

 

golang 実行可能ファイルを次の 3 つの方法のいずれかで設定します。

方法 1: conf ファイルから設定する

/home/opsgenie/oec/conf/integration.conf ファイルから設定します。これによって、過去にスクリプトで行った設定がすべて上書きされます。

方法 2: Golang フラグで設定する

/etc/icinga2/features-available/opsgenie.conf ファイルのコマンド定義にフラグを入力して設定します。apiKey に -apiKey フラグを、icinga_server の名前に -is フラグを使用します。複数の Icinga 2 サーバーを使用していない場合は、Icinga 2 サーバーを定義する必要はありません。フラグを使用すると、上述したその他のすべての設定方法が上書きされます。

追加のカスタム引数を送信するには、arguments ディクショナリでキーと値のペアとして定義します。Icinga 2 は引数をシャッフルするため、order プロパティでカスタム引数がリストの最後に配置されるようにします。例:

1 2 3 4 5 6 7 8 9 "-spd" = "$service.perfdata$" "customargument1" = { value = "$customargument1$" order = 1 }

必要に応じて入力フィールドに {{_payload.customArgName}} を追加して、カスタム引数を解析します。生のパラメーターの使用に関する詳細をご確認ください

方法 3: スクリプトから設定する

send2opsgenie.go スクリプトから apiKey と icinga_server を設定します。スクリプトを再構築して、新しい実行可能ファイルを /home/opsgenie/oec/scripts ディレクトリに追加します。send2opsgenie.go の場所と go スクリプトの構築方法は、「ソース」セクションをご参照ください。

HTTP_PROXY=http://host:port 環境変数を定義して、HTTP リクエストの送信にプロキシを使用するよう golang 実行可能ファイルを設定します。

Icinga 連絡先を定義する

使用可能な Icinga 機能として /home/opsgenie/oec/conf/opsgenie.conf をコピーします。

シェル: cp /home/opsgenie/oec/conf/opsgenie.conf /etc/icinga2/features-available/opsgenie.conf

2. opsgenie を有効にして、Icinga 2 を再起動します。

シェル: icinga2 feature enable opsgenie

3. Icinga を再起動します。

シェル: systemctl restart icinga2

特に問題がない場合は、Icinga 2 で作成されたすべての通知について Opsgenie にアラートが表示されます。

Icinga 2 をアップデートするように Opsgenie を設定する

これはオプションのステップです。

「統合の設定」ページの [Icinga 2 にアラート アクションを送信] チェックボックスを選択します。OEC と Icinga 2 のスクリプトを組み合わせて使用し、Icinga 2 のアラートを更新できます。このセットアップでは、独自のスクリプトのデプロイ、提供されたスクリプトの変更、Icinga 2 でのカスタマイズされたアクションの実行を行えます。

Icinga 2 でアクションを実行するために、OEC は設定ファイル config.json (/home/opsgenie/oec/conf/oec-config.json にあります) から設定パラメーターを取得します。

設定パラメーター

  • api_url: OEC は、この URL を使用して、アラートの承認やコメントなどのアラートの更新を Icinga 2 に送信します。「https://localhost:5665」をご利用の Icinga 2 サーバーの API エンドポイントに置き換えましょう。

  • graphite_url (任意): OEC は、この URL を使用して Icinga 2 からパフォーマンス データ グラフを取得します。「http://localhost:5003」をご利用の Icinga 2 サーバーの Graphite エンドポイントに置き換えましょう。

  • user: Icinga 2 API を認証するためのユーザー名。

  • password: Icinga 2 API を認証するためのパスワード。

  • http.timeout: Icinga 2 API に接続するためのタイムアウト時間 (ミリ秒単位)。

  • expire_acknowledgement_after: 指定された時間 (分単位) が経過したら、承認を削除します。既定で無効となっています。

  • insecure: Icinga 2 サーバーの API エンドポイントにアクセスする際に、SSL 認証を無視します。

ダウンロードしたパッケージには、OEC ユーティリティ (/usr/local/bin にあります) と、OEC が実行する必要のあるスクリプト (/home/opsgenie/oec/scripts にあります) が含まれています。設定後、OEC を必ず実行してください。OEC の実行に関する詳細をご確認ください。

Icinga2 アラートの詳細

Icinga 2 統合パッケージは SSL v1.0 をサポートしていません。Icinga 2 サーバーで SSL v1.0 を使用している場合は、SSL サーバーをアップグレードしてください。

send2opsgenie のソースと再コンパイル

send2opsgenie 実行可能ファイルのソースは /usr/bin/ にあります。send2opsgenie.go 実行可能ファイルのソースは /home/opsgenie/oec/scripts にあります。なお、こちらのリポジトリでも入手できます。実行可能ファイルの動作を変更するには、send2opsgenie.go を編集して、go build send2opsgenie.go コマンドで構築します。

go のインストールについては、http://golang.org/doc/install を参照してください。プラグインの実行ファイルは linux/386 システム用に構築されていることに注意してください。

よくある質問とトラブルシューティング

統合が機能しない場合は、このセクションを確認して、規定のガイドラインに従ってください。

Icinga アラートが Opsgenie で作成されません

シェルから次のテスト コマンドを実行して、Opsgenie でアラートが作成されているかを確認します。 

1 /home/opsgenie/oec/scripts/send2opsgenie -entityType=host -t=PROBLEM -hs=DOWN -hn=test_host
  • 「Trace/breakpoint trap (トレース/ブレークポイント トラップ)」エラーが発生した場合は、send2opsgenie プラグインがサーバー ディストリビューションと互換性を持ちません。この記事の「send2opsgenie のソースと再コンパイル」セクションでの説明のとおり、特定のサーバー環境に従って send2opsgenie.go を再構築してください。

  • アラートが Opsgenie で作成されている場合は、統合が正しく設定されています。この場合、Icinga 2 が Opsgenie の連絡先にアラートを通知していないことが考えられます。Icinga 2 アラートの通知ログをご確認ください。

  • アラートが Opsgenie で作成されていない場合は、/var/log/oec/send2opsgenie.log にあるログをご確認ください。
    ログ ファイルで次のエラーがないか、お探しください。

    • 「RestException[Could not authenticate.] (RestException[認証できませんでした。])」がログにある場合は、Opsgenie が API キーを識別できなかったことを意味します。この記事の「Icinga 2 で Opsgenie プラグインを設定する」セクションに記載されているステップに従って、API キーが正しく設定されているか、ご確認ください。

    • 「[Icinga2] 統合の apiKey でこのアクションを実行できませんでした」エラーがログにある場合は、間違った統合パッケージをダウンロードしている可能性があります。正しい Icinga 2 統合パッケージをダウンロードしているか、ご確認ください。

    • 問題がわからない場合は、プラグインのログ レベルをデバッグに設定して、もう一度お試しください。アトラシアンにお問い合わせのうえ、ログを共有してください。

  • /var/log/oec/send2opsgenie.log ファイル、またはログがない場合は、次をご確認ください。

    1. Icinga ユーザーが /var/log/oec ディレクトリに書き込む権限を持っているかどうか、ご確認ください。インストール パッケージによって自動で実行されます。問題が発生した場合は、次のコマンドを実行してください。
      chown -R icinga:opsgenie /var/log/oec

    2. /var/log/icinga2/icinga2.log の Icinga 2 サーバーのログを確認します。send2opsgenie に関するエラー ログがあるかどうか、ご確認ください。必要に応じてログを添えて、アトラシアンにお問い合わせください

send2opsgenie プラグインのログ レベルをデバッグに設定する

send2opsgenie プラグインのログ レベルをデバッグに設定しましょう。/home/opsgenie/oec/conf/integration.conf ファイルを開いて、send2opsgenie.logger=warning 行を icinga2opsgenie.logger=debug に変更します。

Opsgenie でアラートが承認されても Icinga 2 アラートが承認されません

アラート ログを確認します。

  • 「Posted [Acknowledge] action to Icinga 2.. (Icinga 2 に [承認] アクションを送信..)」がログにない場合は、Opsgenie が「承認」アクションを Icinga 2 に送信しなかったことを意味します。統合の設定をご確認ください。一致するアラート アクションが存在しない可能性があります。

  • 「Posted [Acknowledge] action to Icinga 2.. (Icinga 2 に [承認] アクションを送信..)」のみがログに記録されており、それ以降に関連するログがない場合は、OEC に接続の問題が発生している可能性があります。ログをご確認ください。

Icinga RPM パッケージを開けません

  • rpm パッケージのインストール時に、そのパッケージが旧バージョンであることが判明した場合は、代わりに rpm -i opsgenie-icinga2-1.0.4-rpm-x86-64.rpm --nodeps をご利用ください。

  • 「インストール済みです」というエラーが表示された場合は、代わりに rpm -i opsgenie-icinga2-1.0.4-rpm-x86-64.rpm --force をご利用ください。

Icinga 2 での perf_data.png 生成時のエラー

perfData graphite を HTML に埋め込む際にエラーが発生した場合は、ご利用の Icinga 2 のバージョンが、graphite の名前として、perf_data.png の代わりに perfData.png を使用している可能性があります。この問題を修正するには、次のように Python スクリプトを更新します。

1 2 3 4 From: buf += """<div class="img"><img src="perf_data.png"></div>""" To: buf += """<div class="img"><img src="perfData.png"></div>"""

その他のヘルプ