Opsgenie を Icinga と統合する

概要

Icinga インテグレーションの図

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

Opsgenie の Icinga プラグインは、Icinga との双方向の統合をサポートしています。この統合は Opsgenie の Icinga 固有の実行可能ファイルと OEC ユーティリティを活用して、リッチ アラート (ステータス、アラート ヒストグラム、トレンドなど) を自動で作成して Icinga と Opsgenie 間でアラートのステータスを同期します。

統合をセットアップする

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

インストールの必須条件

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

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

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

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

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

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

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

rpm をアップグレードする前に、設定ファイルをバックアップします。

rpm パッケージは、アップグレード中に既存の設定を上書きしません。新しい既定の設定ファイルは integration.conf.rpmnew として保存されます。バージョン 201X-XX-XX から 2.X.X にアップグレードするには、--force パラメーターを追加します。例: rpm -U --force opsgenie-icinga-<your_version>.rpm

rpm アップグレードの設定ファイル処理に関する詳細をご確認ください。

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

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

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

Icinga 統合を追加する

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

  1. [チーム] に移動して自分のチームを選択します。

  2. 左側のナビゲーションで [統合] を選択し、[統合を追加] を選択します。

統合をチーム ダッシュボードから追加すると、そのチーム統合の所有者になります。Opsgenie では、この統合を通じて受信したアラートはそのチームのみに割り当てられます。このセクションの残りの手順に従って、統合を設定してください。

Opsgenie に Icinga 統合を追加するには:

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

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

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

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

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

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

  7. [統合を設定する手順] セクションを展開して、API キーをコピーします。
    このキーは、後で Icinga で統合を設定するときに使用します。Icinga はこのキーを使用して、Opsgenie に対する認証を実行し、Icinga アラートの処理に使用する統合を指定します。

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

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

プラグインは golang-executable ファイル (send2opsgenie としてプラグインに含まれる) を使用して、Opsgenie でアラートを作成、承認、クローズします。Opsgenie でアラートを作成、承認、クローズするために、イベントでこのファイルを実行するように Icinga を設定します。次の表は必須のパラメーターとステータスを一覧にしたものです。

設定パラメーター

説明

入力必須

場所

API キー

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

はい

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

ベース URL

Opsgenie を別のドメイン (例: EU、サンドボックス) から使用している場合尾、この [configuration.Opsgenie Icinga integration, Advanced Settings] ページを更新する必要があります。

任意

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

responders

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

tags

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga_server

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

logPath

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga2opsgenie.http.proxy.enabled

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga2opsgenie.http.proxy.host

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga2opsgenie.http.proxy.port

プロキシのポートです。

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga2opsgenie.http.proxy.scheme

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga2opsgenie.http.proxy.username

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

icinga2opsgenie.http.proxy.password

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

任意

/home/opsgenie/oec/conf/opsgenie-integration.conf

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

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

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

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

このセクションの前半で説明したように、Icinga で作成された通知のコマンドにフラグを入力して設定します。apiKey には -apiKey フラグを使用します。

To send additional custom arguments, add them after the flags. For example, customArgName1 customArgValue1 customArgName2 customArgValue2. Parse custom arguments by adding {{_payload.customArgName}} to wherever is needed in the input fields. Learn more about using raw parameters.

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

send2opsgenie.go スクリプトの apiKey を設定します。スクリプトを再度ビルドして、新しい実行可能ファイルを /home/opsgenie/oec/scripts ディレクトリに配置します。send2opsgenie.go の場所と go スクリプトのビルド方法の詳細については、この記事の「send2opsgenie のソースと再コンパイル」セクションを参照してください。

Icinga 連絡先を定義する

1. /home/opsgenie/oec/opsgenie-icinga/opsgenie.cfg ファイル (連絡先、そのホスト、サービス通知コマンドを設定します) を /usr/local/icinga/etc/objects ディレクトリにコピーします。

シェル

cp /home/opsgenie/oec/opsgenie-icinga/opsgenie.cfg /usr/local/icinga/etc/objects

2. メインの Icinga 設定ファイル (ICINGA_HOME/etc/icinga.cfg) に次の行を追加します。

シェル

... cfg_file=/usr/local/icinga/etc/objects/opsgenie.cfg ...

ICINGA_HOME/etc/objects/contacts.cfg ファイル内の Icinga 設定のメイン連絡先グループに連絡先「opsgenie」を追加します。既定の設定である contacts.cfg を使用する場合は、「opsgenie」ユーザーを「admins」連絡先グループに追加します。

4. Icinga を再起動します。

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

Icinga 通知
Icinga 添付ファイル

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

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

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

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

設定パラメーター

  • alert_histogram_image_url: OEC は、この URL を使用して Icinga からヒストグラム画像を取得します。ローカル・ホストを Icinga サーバー・アドレスと置き換える必要があります。

  • trends_image_url: OEC は、この URL を使用して Icinga からトレンド画像を取得します。ローカル・ホストを Icinga サーバー・アドレスと置き換える必要があります。

  • command_url: アラートが承認された場合やコメントされた場合などに Icinga アラートを更新するための URL。

  • user: Icinga ヒストグラムとトレンド画像を取得するために Icinga Web サーバーを認証するユーザー名。

  • password: Icinga ヒストグラムとトレンド画像を取得するために Icinga Web サーバーを認証するパスワード。

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

Icinga 統合パッケージは SSL v1.0 をサポートしていません。Icinga サーバーで 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 が Opsgenie の連絡先にアラートを通知していないことが考えられます。Icinga アラートの通知ログを確認してください。

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

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

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

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

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

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

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

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

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

アクティビティ ログを確認します。

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

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

アクティビティ ログの詳細は、こちらをご覧ください。

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

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

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

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

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