Opsgenie を Nagios XI プラグインと統合する
統合による機能
Nagios XI でホストまたはサービスの状態がダウンになると、Opsgenie でアラートが作成されます。
新しいアラートを作成すると、Nagios XI の関連するヒストグラムとトレンド画像が自動的にアラートに添付されます。
Opsgenie アラートが承認されると、Nagios XI のアラートも自動的に承認されます。その逆も同様です。
Opsgenie アラートにメモが追加されると、Nagios XI のアラートも自動的に更新されます。その逆も同様です。
統合をセットアップする
Nagios XI 統合プラグインでは Opsgenie の全機能を利用し、Nagios XI との双方向の統合を実現します。以下の手順のステップでは、Nagios XI 統合プラグインを使用して Opsgenie と Nagios XI を統合する方法を説明します。ご使用の Linux ディストリビューションと Nagios XI の設定によっては、これらの指示に若干の変更が必要になる場合があることに注意してください。
インストールの必須条件
インストール パッケージは、以下のシステムをサポートしています。
RedHat ベースの Linux ディストリビューション
Debian ベースの Linux ディストリビューション
Nagios XI 用 Opsgenie プラグインをインストールする
Opsgenie Edge Connector (OEC) は Nagios XI 統合の送信認証を設定するための必須条件です。OEC と Nagios XI のスクリプトを組み合わせて使用して、Nagios XI のアラートを更新できます。これによって、独自のスクリプトをデプロイしたり、提供されたスクリプトを変更したり、カスタマイズしたアクションを Nagios XI 上で実行したりできます。Nagios XI パッケージの最新バージョンはこのリポジトリからダウンロードしてください。
RedHat ベースのディストリビューションに関する手順
次のコマンドを実行します。
rpm -i opsgenie-nagiosxi-<your_version>.rpm
rpm をアップグレードする前に、設定ファイルをバックアップします。
rpm パッケージによってアップグレード中に既存の設定が上書きされることはありません。新しい既定の設定ファイルは integration.conf.rpmnew として保存されます。バージョン 201X-XX-XX から 2.X.X にアップグレードするには、-- force パラメーターを追加します。例: rpm -U --force opsgenie-nagiosxi-<your_version>.rpm
rpm アップグレードの設定ファイル処理に関する詳細をご確認ください。
Debian ベースのディストリビューションに関する手順
次のコマンドを実行します。
dpkg -i opsgenie-nagiosxi-<your_version>.deb
Nagios XI 統合を追加する
Opsgenie の Free プランまたは Essentials プランを使用している、または Jira Service Management の Standard プランで Opsgenie を使用している場合は、チーム ダッシュボードからのみこの統合を追加できます。このプランでは、[設定] の [統合] ページが利用できません。
[チーム] に移動して自分のチームを選択します。
左側のナビゲーションで [統合] を選択し、[統合を追加] を選択します。
統合をチーム ダッシュボードから追加すると、そのチーム統合の所有者になります。Opsgenie では、この統合を通じて受信したアラートはそのチームのみに割り当てられます。このセクションの残りの手順に従って、統合を設定してください。
Opsgenie で Nagios XI 統合を追加する方法は以下のとおりです。
[設定] > [統合] の順に移動します。
[統合を追加] を選択します。
検索を実行して「Nagios XI」を選択します。
次の画面で、統合の名前を入力します。
オプション: 特定のチームが統合からのアラートを受信するようにする場合は、[Assignee team (担当者チーム)] のチームを選択します。
[続行] を選択します。
この時点で、統合が保存されます。[統合を設定する手順] セクションを展開し、URL をコピーします。
この URL は、後で Nagios XI で統合を設定するときに使用します。[統合をオンにする] を選択します。
統合のために作成したルールは、統合をオンにした場合にのみ機能します。
Nagios XI で Opsgenie プラグインを設定する
プラグインでは golang-executable ファイル (send2opsgenie としてプラグインに含まれる) を使用して、Opsgenie でアラートを作成、承認、クローズします。send2opsgenie を動作させるには、いくつかの設定を行う必要があります。次の表は必須のパラメーターとステータスを一覧にしたものです。apiKey の設定は必須です。その他の構成パラメーターは既定値に設定されていて、ほとんどの Nagios XI 実装で動作しますが、変更が必要な場合もあります。
設定パラメーター | 説明 | 入力必須 | 場所 |
---|---|---|---|
API キー | 上記で作成した Nagios XI 統合から API キーをコピーします。send2opsgenie はこのキーを使用して Opsgenie への認証を行います。API キーは、アラートの処理に使用する必要がある適切なインテグレーション構成を識別するためにも用いられます。 | はい | /home/opsgenie/oec/conf/config.json |
ベース URL | Opsgenie を別のドメインから使っている場合 (例: EU、サンドボックス) は、この設定をアップデートする必要があります。Opsgenie NagiosXI 統合の [詳細設定] ページ。 | 任意 | /home/opsgenie/oec/conf/config.json |
responders | responders フィールドは、Nagios XI アラートを通知する必要があるチームを指定するために使用されます。このフィールドは、既定のチーム フィールド値を設定するために使用されます。これは、Opsgenie Nagios XI 統合の [詳細設定] ページで、異なるアラートを異なるチームにルーティングするように変更できます。 | 任意 | /home/opsgenie/oec/conf/opsgenie-integration.conf |
tags | [Tags] フィールドは、Opsgenie で作成されたアラートのタグを指定するために使用されます。 | 任意 | /home/opsgenie/oec/conf/opsgenie-integration.conf |
nagios_server | nagios_server フィールドは Opsgenie で Nagios XI サーバーを識別するために使用され、複数の Nagios XI サーバーがある場合にのみ必要です。このフィールドは、Opsgenie がユーザーが実行したアクション (承認、クローズなど) を OEC 経由で Nagios XI サーバーに送り返すときに使用されます。 | 任意 | /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 フラグで設定する
[設定] > [Core Config Manager] > [コマンド] の順に移動して、Nagios XI の Web インターフェイスからコマンドにフラグを入力して設定を行います。apiKey に -apiKey フラグを、nagios_server の名前に -ns フラグをそれぞれ使用します。複数の Nagios サーバーを所有していない場合は、Nagios サーバーを定義する必要はありません。フラグを使用すると、上述したその他のすべての設定方法が上書きされます。
追加のカスタム引数を送信するには、フラグの後に追加します。例: customArgName1 customArgValue1 customArgName2 customArgValue2。入力フィールドの必要な場所に {{_payload.customArgName}} を追加することで、カスタム引数を解析できます。生のパラメーターの使用方法について詳しくは、動的フィールドをご確認ください。
方法 3: スクリプトから設定する
send2opsgenie.go スクリプトから apiKey と nagios_server を設定します。スクリプトを再構築して、新しい実行可能ファイルを /home/opsgenie/oec/scripts ディレクトリに配置します。send2opsgenie.go の場所と go スクリプトの構築方法に関する詳細は、この記事の「send2opsgenie のソースと再コンパイル」セクションをご参照ください。
Nagios XI コマンドを定義する
1. [設定] > [Core Config Manager] > [コマンド] の順に移動して、Nagios XI の Web インターフェイスから次のコンテンツでホストとサービスの通知コマンドの作成と設定を行います。
2. ホスト コマンドを定義します:
コマンド名: notify-host-by-opsgenie
コマンド タイプ: misc コマンド
コマンド ライン:
1
/home/opsgenie/oec/scripts/send2opsgenie -entityType=host -t="$NOTIFICATIONTYPE$" -ldt="$LONGDATETIME$" -hn="$HOSTNAME$" -hdn="$HOSTDISPLAYNAME$" -hal="$HOSTALIAS$" -haddr="$HOSTADDRESS$" -hs="$HOSTSTATE$" -hsi="$HOSTSTATEID$" -lhs="$LASTHOSTSTATE$" -lhsi="$LASTHOSTSTATEID$" -hst="$HOSTSTATETYPE$" -ha="$HOSTATTEMPT$" -mha="$MAXHOSTATTEMPTS$" -hei="$HOSTEVENTID$" -lhei="$LASTHOSTEVENTID$" -hpi="$HOSTPROBLEMID$" -lhpi="$LASTHOSTPROBLEMID$" -hl="$HOSTLATENCY$" -het="$HOSTEXECUTIONTIME$" -hd="$HOSTDURATION$" -hds="$HOSTDURATIONSEC$" -hdt="$HOSTDOWNTIME$" -hpc="$HOSTPERCENTCHANGE$" -hgn="$HOSTGROUPNAME$" -hgns="$HOSTGROUPNAMES$" -lhc="$LASTHOSTCHECK$" -lhsc="$LASTHOSTSTATECHANGE$" -lhu="$LASTHOSTUP$" -lhd="$LASTHOSTDOWN$" -lhur="$LASTHOSTUNREACHABLE$" -ho="$HOSTOUTPUT$" -lho="$LONGHOSTOUTPUT$" -hnu="$HOSTNOTESURL$" -hpd="$HOSTPERFDATA$"
3. サービス コマンドを定義します。
コマンド名: notify-service-by-opsgenie
コマンド タイプ: misc コマンド
コマンド ライン:
1
/home/opsgenie/oec/scripts/send2opsgenie -entityType=service -t="$NOTIFICATIONTYPE$" -ldt="$LONGDATETIME$" -hn="$HOSTNAME$" -hdn="$HOSTDISPLAYNAME$" -hal="$HOSTALIAS$" -haddr="$HOSTADDRESS$" -hs="$HOSTSTATE$" -hsi="$HOSTSTATEID$" -lhs="$LASTHOSTSTATE$" -lhsi="$LASTHOSTSTATEID$" -hst="$HOSTSTATETYPE$" -ha="$HOSTATTEMPT$" -mha="$MAXHOSTATTEMPTS$" -hei="$HOSTEVENTID$" -lhei="$LASTHOSTEVENTID$" -hpi="$HOSTPROBLEMID$" -lhpi="$LASTHOSTPROBLEMID$" -hl="$HOSTLATENCY$" -het="$HOSTEXECUTIONTIME$" -hd="$HOSTDURATION$" -hds="$HOSTDURATIONSEC$" -hdt="$HOSTDOWNTIME$" -hpc="$HOSTPERCENTCHANGE$" -hgn="$HOSTGROUPNAME$" -hgns="$HOSTGROUPNAMES$" -lhc="$LASTHOSTCHECK$" -lhsc="$LASTHOSTSTATECHANGE$" -lhu="$LASTHOSTUP$" -lhd="$LASTHOSTDOWN$" -lhur="$LASTHOSTUNREACHABLE$" -ho="$HOSTOUTPUT$" -lho="$LONGHOSTOUTPUT$" -hpd="$HOSTPERFDATA$" -s="$SERVICEDESC$" -sdn="$SERVICEDISPLAYNAME$" -ss="$SERVICESTATE$" -ssi="$SERVICESTATEID$" -lss="$LASTSERVICESTATE$" -lssi="$LASTSERVICESTATEID$" -sst="$SERVICESTATETYPE$" -sa="$SERVICEATTEMPT$" -msa="$MAXSERVICEATTEMPTS$" -siv="$SERVICEISVOLATILE$" -sei="$SERVICEEVENTID$" -lsei="$LASTSERVICEEVENTID$" -spi="$SERVICEPROBLEMID$" -lspi="$LASTSERVICEPROBLEMID$" -sl="$SERVICELATENCY$" -set="$SERVICEEXECUTIONTIME$" -sd="$SERVICEDURATION$" -sds="$SERVICEDURATIONSEC$" -sdt="$SERVICEDOWNTIME$" -spc="$SERVICEPERCENTCHANGE$" -sgn="$SERVICEGROUPNAME$" -sgns="$SERVICEGROUPNAMES$" -lsch="$LASTSERVICECHECK$" -lssc="$LASTSERVICESTATECHANGE$" -lsok="$LASTSERVICEOK$" -lsw="$LASTSERVICEWARNING$" -lsu="$LASTSERVICEUNKNOWN$" -lsc="$LASTSERVICECRITICAL$" -so="$SERVICEOUTPUT$" -lso="$LONGSERVICEOUTPUT$" -snu="$SERVICENOTESURL$" -spd="$SERVICEPERFDATA$"
4. 変更を有効にするには [新しい設定を適用] を選択します。
Nagios XI 連絡先を定義する
[設定] > [Core Config Manager] > [連絡先] の順に移動します。
[Add New (新規追加)] を選択します。
[共通設定] に次のように入力します。
連絡先名: opsgenie
説明: Opsgenie 連絡先[アクティブ] チェックボックスを選択します。
アラート設定を次のように入力します。
ホスト通知の有効化 | オン |
---|---|
ホスト通知期間: | 24時間365日体制 |
ホスト通知オプション: | ダウン、接続不可 (ユースケースに応じて、他のオプションも選択できます) |
ホスト通知コマンドを管理する: | notify-host-by-opsgenie コマンドを選択したリストに追加する |
サービス通知の有効化: | オン |
サービス通知期間: | 24時間365日体制 |
サービス通知オプション: | 重要 (ユース ケースに応じて、他のオプションを選択できます) |
サービス通知コマンドを管理する: | notify-service-by-opsgenie コマンドを選択したリストに追加する |
[保存] と [設定を適用] を選択します。
ホストとサービスの各連絡先リストに連絡先が追加されているか、ご確認ください。問題がない場合は、Nagios XI で作成されたすべての通知を Opsgenie のアラートで確認できます。ホストやサービスが復帰すると、Opsgenie のアラートも自動的にクローズします。
問題が発生した場合は、send2opsgenie ログと [よくある質問とトラブルシューティング] セクションをご確認ください。必要に応じてログを添えて、アトラシアンにお問い合わせください。
Nagios XI を更新するように Opsgenie を設定する
これはオプションのステップです。
「統合の設定」ページの [Nagios XI にアラート アクションを送信] チェックボックスを選択します。OEC と Nagios XI の各スクリプトを組み合わせて使用して、Nagios XI のアラートを更新できます。このセットアップによって、Nagios XI 上での独自のスクリプトのデプロイ、提供されたスクリプトの変更、カスタマイズしたアクションの実行を行えます。
Nagios XI でアクションを実行するために、OEC は設定ファイル config.json (/home/opsgenie/oec/conf/oec-config.json にあります) から設定パラメーターを取得します。
設定パラメーター
alert_histogram_image_url: OEC は、この URL で Nagios XI からヒストグラム画像を取得します。ローカルホストを Nagios サーバー アドレスと置き換える必要があります。
trends_image_url: OEC は、この URL で Nagios XI からトレンド画像を取得します。ローカルホストを Nagios サーバー アドレスと置き換える必要があります。
command_url: アラートの承認やコメントなどが行われた場合に、Nagios XI アラートを更新するための URL です。
ユーザー: Nagios ヒストグラムとトレンド画像を取得するために、Nagios XI Web サーバーを認証するユーザー名です。
パスワード: Nagios ヒストグラムとトレンド画像を取得するために、Nagios XI Web サーバーを認証するパスワードです。
ダウンロードしたパッケージには、OEC ユーティリティ (/usr/local/bin にあります) と、OEC が実行する必要のあるスクリプト (/home/opsgenie/oec/scripts にあります) が含まれています。OEC の設定後、OEC を必ず実行してください。詳細は、OEC の実行に関するドキュメントをご確認ください。OEC を使用している場合、Nagios XI で作成された通知ごとに、Opsgenie のホストまたはサービスの現在のステータス情報がリッチ アラートに入力されます。
Nagios XI 統合パッケージは SSL v1.0 をサポートしていません。Nagios XI サーバーで 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/386 システム用に構築されていることに注意してください。
よくある質問とトラブルシューティング
統合が機能しない場合は、このセクションを確認して、規定のガイドラインに従ってください。
1. Nagios アラートが Opsgenie で作成されない
シェルから次のテスト コマンドを実行して、Opsgenie でアラートが作成されているかを確認します。
1
/home/opsgenie/oec/scripts/send2opsgenie -entityType=host -t=PROBLEM -hs=DOWN -hn=test_host
「Trace/breakpoint trap (トレース/ブレークポイント トラップ)」エラーが発生した場合は、send2opsgenie プラグインがサーバー ディストリビューションと互換性がありません。この記事の「send2jopsgenie のソースと再コンパイル」セクションでの説明のとおり、特定のサーバー環境に従って send2opsgenie.go を再構築してください。
アラートが Opsgenie で作成されている場合は、統合が正しく設定されています。この場合、Nagios XI が Opsgenie の連絡先にアラートを通知していないことが考えられます。Nagios XI のアラート通知ログをご確認ください。
アラートが Opsgenie で作成されていない場合は、/var/log/oec/send2opsgenie.log にあるログをご確認ください。
ログ ファイルで次のエラーがないか、お探しください。「RestException[Could not authenticate.] (RestException[認証できませんでした。])」がログにある場合は、Opsgenie が API キーを識別できなかったことを意味します。この記事の「Nagios XI で Opsgenie プラグインを設定する」セクションに記載されているステップに従って、API キーが正しく設定されているか、ご確認ください。
問題がわからない場合は、プラグインのログ レベルをデバッグに設定して、もう一度お試しください。アトラシアンにお問い合わせのうえ、ログを共有してください。
/var/log/oec/send2opsgenie.log ファイル、またはログがない場合は、次をご確認ください。
Nagios ユーザーが /var/log/oec ディレクトリに書き込む権限を持っているかどうか確認してください。インストール パッケージによって自動で実行されます。問題が発生した場合は、次のコマンドを実行してください。
chown -R nagios:opsgenie /var/log/oec/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 XI.. (Nagios XI に [承認] アクションを送信..)」がログにない場合は、Opsgenie が「承認」アクションを Nagios XI に送信しなかったことを意味します。統合の設定をご確認ください。アラート アクションと一致していない可能性があります。
「Posted [Acknowledge] action to Nagios XI.. (Nagios XI に [承認] アクションを送信..)」のみがログに記録されており、それ以降に関連するログがない場合は、OEC に接続の問題が発生している可能性があります。ログをご確認ください。
3. Nagios RPM パッケージを開けません
rpm パッケージのインストール時に、そのパッケージが旧バージョンであることが判明した場合は、代わりに rpm -i opsgenie-nagiosxi-1.0.4-rpm-x86-64.rpm --nodeps をご利用ください。
「インストール済みです」というエラーが表示された場合は、代わりに rpm -i opsgenie-nagiosxi-1.0.4-rpm-x86-64.rpm --force をご利用ください。
4. スクリプトのアラートに zip ファイルを添付しているときに権限エラーが発生します
スクリプトの実行中に「PermissionError: [Errno 13] Permission denied: details_*」エラーが表示される場合は、スクリプトの添付方法の「file_name」変数の先頭にスクリプトのパスを追加します。
この内容はお役に立ちましたか?