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) is a prerequisite for configuring the outgoing authentication of Icinga2 integration. You can combinedly use OEC and Icinga2 scripts to update alerts on Icinga 2. With this setup, you can deploy your script, modify the ones provided, or run customized actions on Icinga2. Download the latest version of the Icinga2 package from this repository.

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

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

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

The rpm package does not overwrite the existing configuration during upgrades. It saves the new default configuration file as integration.conf.rpmnew. Learn more about config file handling for rpm upgrades.

バージョン 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. [Continue] を選択します。
    この時点で、統合が保存されます。

  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、サンドボックス) から使用している場合は、この設定を 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 プロパティでカスタム引数がリストの最後に配置されるようにします。例:

"-spd" = "$service.perfdata$" "customargument1" = { value = "$customargument1$" order = 1 }

Parse custom arguments by adding {{_payload.customArgName}} to the input fields as needed. Learn more about using raw parameters.

方法 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 (optional): OEC retrieves performance data graphs from Icinga 2 using this URL. Replace the "http://localhost:5003" with the Graphite endpoint of your Icinga 2 server.

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

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

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

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

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

The downloaded package includes the OEC utility (found in /usr/local/bin) and the script that OEC needs to run (found in /home/opsgenie/oec/scripts). Be sure to run OEC after configuring it. Learn more about running OEC.

Icinga2 アラートの詳細

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

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

The source for the executable send2opsgenie is found in /usr/bin/ and send2opsgenie.go, in /home/opsgenie/oec/scripts, respectively, and is also available in this repository. To change the behavior of the executable, edit send2opsgenie.go and build it by using the following command: go build send2opsgenie.go

For installing go, refer to http://golang.org/doc/install. Note that the executable in the plugin is built for linux/386 systems.

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

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

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

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

/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 統合パッケージをダウンロードしているか、ご確認ください。

    • If unsure of the problem, set the plugin's log level to debug and try again. Contact us and share the logs.

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

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

    2. Check the Icinga 2 server logs at /var/log/icinga2/icinga2.log. See if there are error logs regarding send2opsgenie. Contact us with the logs as needed.

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

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

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

Check the alert logs.

  • 「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 スクリプトを更新します。

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

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。