Opsgenie を Icinga2 と統合する
概要
統合でできるようになること
Icinga2 統合プラグインは、Opsgenie の全機能を活用して Icinga2 との双方向の統合を提供します。
統合による機能
Icinga2 は、詳細な情報とともにアラートを Opsgenie に送信します。Opsgenie は Icinga2 のアラートのディスパッチャーとして機能して、オンコール スケジュールに基づいて通知する適切な担当者を決定します。メール、電話、テキスト メッセージ (SMS)、iPhone、Android のプッシュ通知によって通知し、アラートが承認されるかクローズされるまでアラートをエスカレートします。
Opsgenie automatically connects to Icinga2, gets performance data from Graphite for the host/service, and attaches it to the alert.
Opsgenie は Icinga2 にアラートの更新を投稿します。たとえば、アラートを承認すると Icinga2 でアラートが自動的に承認され、アラート コメントは Icinga2 に反映されます。
統合をセットアップする
Icinga2 統合プラグインは、Opsgenie の全機能を活用して Icinga2 との双方向の統合を提供します。以下の手順では、Icinga2 統合プラグインを使用して、Opsgenie と Icinga2 を統合する方法を説明します。ご使用の 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
アップグレード中、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 統合を追加するには、次の手順に従います。
Go to Settings > Integrations.
[統合を追加] を選択します。
検索を実行して「Icinga 2」を選択します。
次の画面で、統合の名前を入力します。
オプション: 特定のチームが統合からのアラートを受信するようにする場合は、[Assignee team (担当者チーム)] のチームを選択します。
[Continue] を選択します。
この時点で、統合が保存されます。[統合を設定する手順] セクションを展開して、API キーをコピーします。
この URL は、後ほど Icinga 2 で統合を設定する際に使用します。このキーは、Icinga 2 によって Opsgenie の認証に使用され、Icinga2 アラートを処理するための統合を指定します。[統合をオンにする] を選択します。
統合のために作成したルールは、統合をオンにした場合にのみ機能します。
Icinga 2 で Opsgenie プラグインを設定する
The plugin uses a golang-executable file (included in the plugin as send2opsgenie) to create, acknowledge, and close alerts in Opsgenie. Configure Icinga 2 to execute this file on events to create, acknowledge, and close alerts in Opsgenie. Setting the apiKey is required. Other configuration parameters are set to defaults that work with most Icinga 2 implementations but may also need to be modified. The following table lists the parameters and states if they are mandatory:
設定パラメーター | 説明 | 入力必須 | 場所 |
---|---|---|---|
API キー | 前に作成した Icinga2 インテグレーションから API キーをコピーします。send2opsgenie はこのキーを使用して Opsgenie への認証を行います。API キーは、アラートの処理に使用する必要がある適切なインテグレーション設定を識別するためにも用いられます。 | はい | /home/opsgenie/oec/conf/config.json |
ベース URL | If you're using Opsgenie from another domain(eg. EU, sandbox), you should update this configuration.Opsgenie Icinga2 integration, Advanced Settings page. | 任意 | /home/opsgenie/oec/conf/config.json |
responders | responders フィールドは、Icinga2 アラートを通知する必要があるチームを指定するために使用されます。このフィールドは、既定の応答者フィールド値を設定するために使用されます。Opsgenie Icinga2 インテグレーションの [詳細設定] ページで、異なるアラートを異なるチームにルーティングするように変更します。 | 任意 |
|
tags | [Tags] フィールドは、Opsgenie で作成されたアラートのタグを指定するために使用されます。 | 任意 |
|
icinga_server | icinga_server フィールドは Opsgenie で Icinga2 サーバーを識別するために使用され、複数の 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
}
必要に応じて入力フィールドに {{_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 を設定する
これはオプションのステップです。
Select the Send Alert Actions To Icinga 2 checkbox on the integration configuration page. You can combinedly use OEC and Icinga 2 scripts to update alerts on Icinga 2. With this setup, you can deploy your own script, modify the ones provided, or run customized actions on 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.
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
go のインストールについては、http://golang.org/doc/install を参照してください。プラグインの実行可能ファイルは linux/386 システム用に構築されていることに注意してください。
よくある質問とトラブルシューティング
統合が機能しない場合は、このセクションを確認して、規定のガイドラインに従ってください。
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 統合パッケージをダウンロードしているか、ご確認ください。
問題がわからない場合は、プラグインのログ レベルをデバッグに設定して、もう一度お試しください。アトラシアンにお問い合わせのうえ、ログを共有してください。
/var/log/oec/send2opsgenie.log ファイル、またはログがない場合は、次をご確認ください。
Icinga ユーザーが /var/log/oec ディレクトリに書き込む権限を持っているかどうか、ご確認ください。インストール パッケージによって自動で実行されます。問題が発生した場合は、次のコマンドを実行してください。
chown -R icinga:opsgenie /var/log/oec
/var/log/icinga2/icinga2.log の Icinga 2 サーバーのログを確認します。
send2opsgenie
に関するエラー ログがあるかどうか確認してください。必要に応じてログを添えて、アトラシアンにお問い合わせください。
send2opsgenie プラグインのログ レベルをデバッグに設定する
Set the send2opsgenie plugin's log level to DEBUG. Open the /home/opsgenie/oec/conf/integration.conf file and change the line send2opsgenie.logger=warning
to 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 スクリプトを更新します。
From:
buf += """<div class="img"><img src="perf_data.png"></div>"""
To:
buf += """<div class="img"><img src="perfData.png"></div>"""
この内容はお役に立ちましたか?