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

Opsgenie を Nagios Plugin と統合する

統合による機能

  • Nagios でホストまたはサービスの状態がダウンすると、Opsgenie でアラートが作成されます。

  • 新しいアラートを作成すると、Nagios の関連するヒストグラムとトレンド画像が自動的にアラートに添付されます。

  • Opsgenie アラートが承認されると、Nagios のアラートも自動的に承認されます。その逆も同様です。

  • Opsgenie アラートにノートが追加されると、Nagios のアラートも自動的にアップデートされます。その逆も同様です。

統合をセットアップする

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

インストールの必須条件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Nagios 統合を追加する

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

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

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

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

OpsgenieNagios 統合を追加する方法は以下のとおりです。

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

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

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

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

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

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

  7. [統合を設定する手順] セクションを展開し、URL をコピーします。
    この URL は、後で Nagios で統合を設定するときに使用します。

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

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

プラグインでは golang-executable ファイル (send2opsgenie としてプラグインに含まれる) を使用して、Opsgenie でアラートを作成、承認、クローズします。send2opsgenie を動作させるには、いくつかの設定を行う必要があります。次の表は必須のパラメーターとステータスを一覧にしたものです。apiKey の設定は必須です。その他の構成パラメーターは既定値に設定されていて、ほとんどの Nagios 実装で動作しますが、変更が必要な場合もあります。

設定パラメーター

説明

入力必須

場所

API キー

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

はい

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

ベース URL

Opsgenie を別のドメインから使っている場合 (例: EU、サンドボックス) は、この設定をアップデートする必要があります。Opsgenie Nagios 統合の [詳細設定] ページ。

任意

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

teams

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

任意

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

tags

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

任意

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

nagios_server

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

任意

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

logPath

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

任意

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

nagios2opsgenie.http.proxy.enabled

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

任意

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

nagios2opsgenie.http.proxy.host

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

任意

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

nagios2opsgenie.http.proxy.port

プロキシのポートです。

任意

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

nagios2opsgenie.http.proxy.scheme

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

任意

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

nagios2opsgenie.http.proxy.username

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

任意

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

nagios2opsgenie.http.proxy.password

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

任意

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

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

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

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

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

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

opsgenie.cfg ファイルから apiKey を次のように設定します (JSON 形式)。

1 2 3 4 define command { command_name notify-host-by-opsgenie command_line /home/opsgenie/oec/scripts/opsgenie -apiKey="apiKey1" -entityType=service ... }

apiKey を cfg ファイルに追加すると、integration.conf ファイル内の apiKey が上書きされます。

追加のカスタム引数を送信するには、フラグの後に追加します。例: customArgName1 customArgValue1 customArgName2 customArgValue2。入力フィールドの必要な場所に {{_payload.customArgName}} を追加することで、カスタム引数を解析できます。生のパラメーターの使用方法について詳しくは、動的フィールドをご確認ください。

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

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

Nagios 連絡先を定義する

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

シェル

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

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

シェル

1 2 3 ... cfg_file=/usr/local/nagios/etc/objects/opsgenie.cfg ...

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

4. Nagios を再起動します。

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

Nagios を更新するように Opsgenie を設定する

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

統合設定ページの [Send alert actions To Nagios (アラート アクションを Nagios に送信する)] チェックボックスをオンにします。OEC と Nagios のスクリプトを組み合わせて使用して、Nagios のアラートを更新できます。これによって、独自のスクリプトをデプロイしたり、提供されたスクリプトを変更したり、カスタマイズしたアクションを Nagios 上で実行したりできます。

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

ダウンロードしたパッケージには、OEC ユーティリティ (/usr/local/bin にあります) と OEC が実行する必要のあるスクリプト (/home/opsgenie/oec/scripts にあります) が含まれています。OEC の設定後に必ず実行してください。詳細については、OEC の実行に関するドキュメントをご確認ください。OEC を使用している場合、Nagios で作成された通知ごとに、Opsgenie のホストまたはサービスの現在のステータス情報がリッチ アラートに入力されます。

Nagios 統合パッケージは SSL v1.0 をサポートしていません。Nagios サーバーで 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/amd64 システム用に構築されていることに注意してください。

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

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

1. Nagios アラートが 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 で作成されている場合は、統合が正しく設定されています。この場合、Nagios が Opsgenie の連絡先にアラートを通知していないことが考えられます。Nagios のアラート通知ログを確認してください。

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

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

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

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

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

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

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

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

2. Opsgenie でアラートが承認されても Nagios アラートが承認されない

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

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

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

3. Nagios RPM パッケージを開けません

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

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

4. スクリプトのアラートに zip ファイルを添付しているときに権限エラーが発生します

スクリプトの実行中に「PermissionError: [Errno 13] Permission denied: details_*」エラーが表示される場合は、スクリプトの添付方法の「file_name」変数の先頭にスクリプトのパスを追加します。

その他のヘルプ