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

Opsgenie を Icinga2 と統合する

Icinga2 ダイアグラム

Opsgenie が Icinga2 ユーザーに提供するもの

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

統合の機能性

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

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

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

Icinga2 アラート

インストール

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

前提条件

提供されるパッケージは、以下のシステムをサポートしています。

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

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

OpsGenie Icinga2 プラグインのインストール

OEC の最新バージョンをダウンロードする

Icinga2 パッケージの最新バージョンをダウンロードするには、oec-scripts リポジトリの readme ファイルを使用してください。

Red Hat ベースのディストリビューションの場合

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

シェル

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

 

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

バージョン 1 からインテグレーションを更新する場合。を使用する場合は、opsgenie-integration.conf ファイルを更新する必要があります。

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

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


Debian ベースのディストリビューションの場合

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

シェル

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

その他のディストリビューションの場合

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

テキスト

1 unzip opsgenie-icinga2-<your_version>.zip

Opsgenie で Icinga2 インテグレーションを追加する

この統合はチーム ダッシュボードから追加可能

Opsgenie の Free または Essentials の各プランを使用している、または Jira Service Management の Standard プランで Opsgenie を使用している場合、このプランでは [設定] の [統合] ページが利用できないため、この統合はチーム ダッシュボードからのみ追加できます。

統合をチーム ダッシュボードから追加すると、そのチーム統合の所有者になります。Opsgenie では、この統合を通じて受信したアラートはそのチームのみに割り当てられます。

そのためには、次の手順に従います。

  1. Teams からチーム ダッシュボードに移動します。

  2. [統合] > [統合を追加] の順に選択します。

残りの手順に従って統合を完了します。

  1. [設定] > [統合] の順に移動します。Icinga2 を検索して [追加] を選択します。

2. [応答者] フィールドを使用して、Icinga2 アラートの通知先を指定します。入力し始めると、オート コンプリートの候補が表示されます。

3. [統合を保存] を選択します。統合用の「API キー」が生成されます。このキーは Icinga2 によって Opsgenie に対する認証に使用される、Icinga2 アラートの処理に使用する統合を指定するためのキーです。

Icinga2 での Opsgenie プラグイン設定

プラグインは golang-executable ファイル (send2opsgenie としてプラグインに含まれる) を使用して、Opsgenie でアラートを作成、確認、クローズします。Icinga2 は、イベントでこのファイルを実行して、Opsgenie でアラートを作成、認識、クローズするように設定する必要があります。

apiKey の設定は必須です。その他の設定パラメーターは、ほとんどの Icinga2 実装で動作しますが、変更が必要な場合もあります。

設定パラメーター

説明

入力必須

場所

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/opsgenie-integration.conf.part を /home/opsgenie/oec/conf/opsgenie-integration.conf としてコピーします。これで、opsgenie-integration.conf で必要に応じて設定パラメーターを変更できます。conf ファイルから設定すると、スクリプトで行われた設定が上書きされます。

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


追加のカスタム引数を送信するには、それらを  

argumentsディクショナリ。Icinga2 は引数をシャッフルするため、 

order プロパティを使用して、カスタム引数がリストの最後に配置されるようにしてください。使用例:

"-spd" = "$service.perfdata$"

"customargument1" = {

value = "$customargument1$"

order = 1

}
入力フィールドの必要な場所に次を追加して、 

{{_payload.customArgName}}

 カスタム引数を解析します。
生のパラメーターの使用に関する詳細については、動的フィールドのドキュメントをご確認ください。

3. スクリプトからの設定: send2opsgenie.go スクリプトから apiKey と icinga_server を設定します。このオプションを使用する場合、スクリプトを再構築し、新しい実行可能ファイルを /home/opsgenie/oec/opsgenie-icinga2 ディレクトリに配置します。send2opsgenie.go の場所と go スクリプトの構築方法については、「ソース」セクションを参照してください。

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

Icinga 連絡先を定義する

  1. 使用可能な Icinga フィーチャーとして /home/opsgenie/oec/opsgenie-icinga2/opsgenie.conf をコピーします。

シェル

1 cp /home/opsgenie/oec/opsgenie-icinga2/opsgenie.conf /etc/icinga2/features-available/opsgenie.conf

2. opsgenie を有効にし、Icinga2 を再起動します

シェル

1 icinga2 feature enable opsgenie

3. Icinga を再起動します。

シェル

1 systemctl restart icinga2

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

Opsgenie から Icinga2 インテグレーションの設定 (オプション)

この機能を使用するには、Opsgenie Icinga インテグレーションで [Send Alert Actions To Icinga2 (Icinga2 にアラート アクションを送信)] チェックボックスと [Send via OEC (OEC 経由で送信)] チェックボックスが有効化されている必要があります。

Opsgenie の OEC と Icinga2 スクリプトを使用して、Icinga2 のアラートを更新します。これによって独自のスクリプト/機能をデプロイして、提供された機能を変更してカスタマイズしたアクションを Icinga2 で実行できます。

Icinga2 でアクションを実行できるようにするには、OEC で設定ファイルから設定パラメーターを取得します。設定ファイルは、 /home/opsgenie/oec/conf/config.json の下にあります。

設定パラメーター

  • api_url – OEC は、この URL を使用して Icinga2 へのアラートのアップデート (アラートの確認、コメントなど) を投稿します。「https://localhost:5665」を Icinga2 サーバーの API エンドポイントで置き換えてください。

  • graphite_url – (任意) OEC は、この URL を使用して Icinga2 からパフォーマンス データ グラフを取得します。「http://localhost:5003」を Icinga2 サーバーのグラファイト エンドポイントに置き換えてください。

  • userIcinga2 API を認証するためのユーザー名。

  • passwordIcinga2 API を認証するためのパスワード。

  • http.timeoutIcinga2 API に接続するためのタイムアウト時間 (ミリ秒)。

  • expire_acknowledgement_after – 指定された値 (分単位) 後の承認を削除します。既定で無効です。

  • insecureIcinga2 サーバーの API エンドポイントへのアクセス中に SSL 検証を無視します。

また、ダウンロードしたパッケージには、/usr/local/bin にある OEC ユーティリティと、/home/opsgenie/oec/scripts にある OEC によって実行する必要があるスクリプトが含まれています。OEC の設定が完了したら、OEC を実行する必要があります。OEC を実行する方法に関する詳細については、OEC の実行のドキュメントをご参照ください。

Icinga2 アラートの詳細

Icinga2 インテグレーション パッケージは SSL v1.0 をサポートしていません。Icinga2 サーバーで SSL v1.0 を使用している場合は、SSL サーバーをアップグレードすることをお勧めします。

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

インテグレーションをうまく機能させることができない場合は、問題が以下に記載されていないかどうかを確認し、当社のアドバイスに従ってください。

1. Icinga2 アラートが Opsgenie で作成されません:

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

シェル

1 /home/opsgenie/oec/opsgenie-icinga2/send2opsgenie -entityType=host -t=PROBLEM -hs=DOWN -hn=test_host
  • 「トレース / ブレークポイント トラップ」エラーの場合: send2opsgenie プラグインがサーバー ディストリビューションと互換性がないことを意味します。以下の「ソースと send2opsgenie の再コンパイル」セクションに従い、特定のサーバー環境に従って send2opsgenie.go を再構築します。

  • Opsgenie でアラートが作成された場合: インテグレーションが正しくインストールされていることを意味します。Icinga2Opsgenie のアラートの連絡先に通知していないことが問題である可能性があります。Icinga2 アラート通知ログを確認します。

  • そうでない場合: /var/log/opsgenie/send2opsgenie.log のログを確認してください。ログ ファイルで以下のエラーがないか探します。

  • "RestException[Could not authenticate.]" エラーがログに表示された場合は、OpsgenieAPI キーを識別できなかったことを意味します。上記の「Icinga での Opsgenie プラグイン設定」で説明されているように、API キーが正しく設定されているかを確認します。

  • 「[Icinga2] インテグレーションの apiKey でこのアクションを実行できませんでした」エラーがログに表示された場合、間違ったインテグレーション パッケージをダウンロードしている可能性があります。Icinga やその他のパッケージではなく、Icinga2 インテグレーション パッケージをダウンロードしていることを確認してください。

  • 問題が特定できない場合は、プラグインのログ レベルをデバッグに設定してもう一度お試しいただき、お問い合わせフォームでログを送信してください。

  • /var/log/opsgenie/send2opsgenie.log ファイル、またはログがない場合は、以下を確認してください。

  • まず、Icinga ユーザーが /var/log/opsgenie ディレクトリへの書き込み権限を持っていることを確認します。これは、インストール パッケージによって自動で実行されます。問題がある場合は、次を実行します。chown -R icinga:opsgenie /var/log/opsgenie

  • 次に、/var/log/icinga2/icinga2.log の Icinga2 サーバーのログを確認します。send2opsgenie に関するエラー ログがあるかどうかを確認し、それらを添えてお問い合わせください。

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

icinga2opsgenie.logger=warning の行を icinga2opsgenie.logger=debug (/home/opsgenie/oec/conf/opsgenie-integration.conf ファイル内) に変更します。

2. Opsgenie でアラートを承認しても Icinga2 アラームが確認されません:

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

  • [Posted [Acknowledge] action to Icinga2.. (Icinga に [承認] アクションを投稿..)] アクションがログにない場合、Opsgenie が承認アクションを Icinga2 に送信しなかったことを意味します。インテグレーション設定を確認してください。アラート アクションと一致していない可能性があります。

  • "Posted [Acknowledge] action to Icinga2.." のみがログに含まれており、それ以降関連ログがない場合、OEC の接続に問題が発生している可能性があります。ログを確認します。

3. Icinga2 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" を使用してください。

4. icinga2 の perf_data.png で生成されたエラー

perfData graphite を HTML に埋め込むときにエラーが発生した場合、おそらく Icinga2 のバージョンで perf_data.png の代わりに perfData.png を graphite の名前として使用している可能性があります。この問題を修正するには、以下のように 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>"""

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

実行可能な send2opsgenie のソースは /usr/bin/ に、send2opsgenie.go は///home/opsgenie/oec/conf/icinga2 にあり、GitHub Opsgenie Integration リポジトリでも利用できます。実行可能ファイルの動作を変更するには、send2opsgenie.go を編集して次を使用して構築します。

シェル

1 go build send2opsgenie.go

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

その他のヘルプ