Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Nagios XI での SNMP トラップ統合方法
rev 1.4
1
Nagios XI – SNMP トラップ統合方法
目的
この資料では、外部デバイスからの SNMP トラップを受信して処理するように、Nagios XI を設定する方
法を説明します。SNMP トラップ監視を行えば、リアルタイムのイベントやネットワークインシデントを監
視できるため、システム管理者は正確で健全な監視環境を確保できます。
対象読者
この資料は、SNMP トラップ監視を行いたい Nagios 管理者を対象としています。
自動インストール
ターミナルを開いて root ユーザーで Nagios XI サーバーにログインし、以下のコマンドを実行します。
cd /tmp wget http://assets.nagios.com/downloads/nagiosxi/scripts/NagiosXI-SNMPTrap-setup.sh sh ./NagiosXI-SNMPTrap-setup.sh
NagiosXI-SNMPTrap-setup.sh は、以下を行います:
• 必要な事前要件をすべてインストールします。
• サポートファイルをダウンロードしインストールします。
• snmptt.ini と snmptrapd.conf ファイルを更新します。
• snmptt ユーザーを nagios および nagcmd グループに追加します。
• いくつかのパーミッションを更新します。
• iptables にファイヤウォールルールを追加し、UDP 162 ポートを開きます。
• snmptt と snmptrapd デーモンを起動時に自動開始するようにセットアップします。
中間ファイヤウォール
遠隔地にあるデバイスで Nagios XI に SNMP トラップを送信するよう設定する前に、Nagios XI サーバー
と遠隔地のデバイス間にある中間ファイヤウォールでインバウンド SNMP トラップを Nagios XI に送信す
るよう設定する必要があります。遠隔地のデバイスから Nagios XI サーバーへの UDP162 ポートでの通
信を許可してください。
Nagios XI での SNMP トラップ統合方法
rev 1.4
2
Nagios XI – SNMP トラップ統合方法
ほとんどのチェックとは異なり、Nagios XI は SNMP トラップの(クライアントではなく)サーバーであること
に注意して下さい。パケットフローは Nagios XI マシンへのインバウンドです(入ってきます)。
上述の自動インストールで実行する NagiosXI-SNMPTrap-setup.sh スクリプトが UDP 162 ポートを開くファイヤウォールルールを iptables に追加します。
MIB のインストール
遠隔地のデバイスが使用している MIB を Nagios XI サーバー上の snmptt で使用できるように設定する
必要があります。これは、「管理 -> システム拡張 -> MIB 管理」から行います。
「参照」ボタンをクリックして MIB ファイルを選択し、「トラップを処理する」にチェックをつけて「MIB をアッ
プロード」をクリックします。
ファイヤウォール
Nagios XI サーバー
遠隔地デバイス
SNMP TrapUDP162ポート
Nagios XI での SNMP トラップ統合方法
rev 1.4
3
Nagios XI – SNMP トラップ統合方法
MIB ファイルにトラップ定義が見つかった場合、/etc/snmp/snmptt.conf ファイルに EVENT として追加されます。
MIB ファイルは/usr/share/snmp/mibs/ディレクトリにもコピーされます。
「トラップを処理する」チェックボックスにチェックをつけずにMIBファイルをアップロードしてしまった場合
は、ターミナルセッションで以下のコマンドを実行してください:
addmib
実行例:
addmib /usr/share/snmp/mibs/NAGIOS-NOTIFY-MIB.txt
SNMPTT
SNMP Trap Translator は受信したトラップを処理し、Nagios XI へ送信するかどうかを決定します。この
資料では SNMPTT がどのように動作するかについて簡単に説明します。
EVENT/FORMAT/EXEC
トラップ定義は/etc/snmp/snmptt.conf ファイルで定義します。常に EVENT 行から始まり、FORMAT行と EXEC 行が後に続きます。他の行は必須ではありません。例えば、SDESC から EDESC までの行
はコメント情報であり、トラップの一部としては処理されません。
EVENT
OID/MIB を指定する行です。受信したトラップに一致する場合、SNMPTT が EXEC 行で定義されたアク
ションを実行します。
Nagios XI での SNMP トラップ統合方法
rev 1.4
4
Nagios XI – SNMP トラップ統合方法
FORMAT
EVENT が一致したときに、/var/log/snmptt/snmptt.log ファイルに何を記録するかを定義します。受信したトラップがSNMPTTで一致しない場合は、/var/log/snmptt/snmpttunknown.logファイルに記録されます。
EXEC
受信したトラップを Nagios XI へ送信する行です。デフォルトではチェック結果を Nagios XI へ送信する
/usr/local/bin/snmptraphandling.py スクリプトを実行します。
例:
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Critical FORMAT Link down on interface $1. Admin state: $2. Operational state: $3 EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "$-*" "Link down on interface $1. Admin state: $2. Operational state: $3"
簡単な説明:
EVENT 行は Nagios XI へ送信するときにこのトラップを CRITICAL として定義します。
EXEC 行は Nagios XI へ送信するときに SNMP Traps というサービスをターゲットとします。
注記: EXEC 行が上の行と異なる場合は、以下のナレッジベース記事の手順に従ってください:
https://support.nagios.com/kb/article.php?id=559
SNMPTT 処理の動作
SNMPTT は受信したトラップと snmptt.conf ファイルのすべての EVENT を比較するということを知っておくことは重要です。同じ OID/MIB を持つ EVENT を複数回定義することができます(この結果として複
数の EXEC ステートメントを実行できます)。ここで重要な点は、SNMPTT は一度 EVENT が一致しても
snmptt.conf ファイルの検索を止めないということです。
この動作により、MATCH 行を使用してフィルタを適用した、より複雑な EVENT が可能になります。2つ
の同じ EVENT がある場合、同時に2つのトラップを Nagios XI へ送信し、後で受信したトラップが前のト
ラップを上書きする可能性があります。これはこの資料の範囲外ですが、言及する価値はあります。
https://support.nagios.com/kb/article.php?id=559
Nagios XI での SNMP トラップ統合方法
rev 1.4
5
Nagios XI – SNMP トラップ統合方法
テスト SNMP トラップの送信
テストトラップを Nagios XI へ送信するのはとても簡単です。
ターミナルセッションを開き、以下のコマンドを実行します:
snmptrap -v 2c -c public 127.0.0.1 '' linkUp ifDescr s eth0 ifAdminStatus i 1 ifOperStatus i 1
このコマンドを実行すると、以下のようなログが/var/log/snmptt/snmptt.log ファイルに記録されます:
Mon Nov 28 11:15:42 2016 .1.3.6.1.6.3.1.1.5.4 Normal "Status Events" localhost - Link up on interface eth0. Admin state: up. Operational state: up
また以下のようなログが/usr/local/nagios/var/nagios.log ファイルに記録されます:
[1480298939] Warning: Passive check result was received for service 'SNMP Traps' on host 'localhost', but the service could not be found! [1480298939] Error: External command failed -> PROCESS_SERVICE_CHECK_RESULT;localhost;SNMP Traps;0;Link up on interface eth0. Admin state: up. Operational state: up / ifDescr (OCTETSTR):eth0 ifAdminStatus (INTEGER):up ifOperStatus (INTEGER):up
Nagios XIは SNMPトラップを受信していますが、SNMP Trapsサービスが見つからないというメッセージ
が見つかります。次に SNMP トラップウィザードを使用して Nagios XI にこのサービスを作成する手順を
説明します。
SNMP トラップウィザードの使用
SNMP トラップを受信して処理したいホストまたはデバイスは、Nagios XI に対応する SNMP Trap サービ
ス定義がなければなりません。Nagios XI にはこれらの SNMP トラップイベントをすばやく簡単に設定で
きる「SNMP トラップ」設定ウィザードがあります。
SNMP トラップウィザードの使用手順は以下のとおりです。
Step 1. Nagios XI Web インターフェースにログインし、「設定 -> 設定ウィザード」をクリックします。
Nagios XI での SNMP トラップ統合方法
rev 1.4
6
Nagios XI – SNMP トラップ統合方法
Step 2. 「SNMP トラップ」ウィザードを選択します。
メモ: 検索フィールドに「snmp」と入力すると、すぐに見つかります。
Step 3. 「次へ」をクリックします。
Step 4. SNMP トラップサービスを追加したいホストを選択し、「次へ」をクリックします。
Step 5. 以降の手順は他のウィザードと同じです。最終ステップまで進み、設定を適用させます。
SNMP Trap サービスが作成されました。「ステータス詳細を表示する: xxxx」リンクをクリック
して作成された新しいサービスを確認してください。
Nagios XI での SNMP トラップ統合方法
rev 1.4
7
Nagios XI – SNMP トラップ統合方法
テスト SNMP トラップ送信
Nagios XI でどのように受信されるかを確認するため、テストトラップを送信します。ターミナルセッション
で以下のコマンドを実行します:
snmptrap -v 2c -c public 127.0.0.1 '' linkUp ifDescr s eth0 ifAdminStatus i 1 ifOperStatus i 1
上記のコマンドを実行すると、サービスが以下のように更新されます:
linkUp トラップなのでサービスは正常(OK)ステータスで送信されました。これは EVENT 行の最後がNormal(Nagios XI の OK)であり、EXEC 行が”$s”変数をもつ Normal ステータスを送信するためです。
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal FORMAT Link up on interface $1. Admin state: $2. Operational state: $3 EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "$-*" "Link up on interface $1. Admin state: $2. Operational state: $3"
Nagios XI での SNMP トラップ統合方法
rev 1.4
8
Nagios XI – SNMP トラップ統合方法
次に linkDown のテストトラップを送信し、Nagios XI でどのように受信されるかを確認します。ターミナルセッションで以下のコマンドを実行します。
snmptrap -v 2c -c public 127.0.0.1 '' linkDown ifDescr s eth0 ifAdminStatus I 2 ifOperStatus I 2
このコマンドを実行すると、サービスが以下のように更新されます:
linkDown トラップなので、サービスはクリティカル(CRITICAL)ステータスで送信されます。これはEVENT 行の末尾が Critical であり、EXEC 行が”$s”変数を持つ CRITICAL ステータスを送信するためです。
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Critical FORMAT Link down on interface $1. Admin state: $2. Operational state: $3 EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "$-*" "Link down on interface $1. Admin state: $2. Operational state: $3"
SNMP Trap サービスは次のトラップを受信するまでクリティカル(CRITICAL)ステータスのままです。
SNMP トラップはパッシブ
SNMP トラップの重要なポイントは、同時に発生しうる非同期イベントであるということです。Nagios XI で
はこれをパッシブチェック/サービスと呼びます。つまり、Nagios XI で定期的にアクティブにチェックされ
るのではなく、Nagios XI は遠隔地のデバイスからの SNMP トラップを待ちます。
アクティブチェックとパッシブチェックには以下のような違いがあります:
UPS デバイスが電源を失いバッテリで稼働している:
アクティブチェックの場合
Nagios XI が5分間隔でデバイスをチェックしていた場合、Nagios XI がデバイスがバッテリで稼働し
ていることに気づくのに最大5分かかかります。
パッシブチェックの場合
デバイスはバッテリで動作を開始するとすぐに SNMP トラップを Nagios XI へ送信します。
パッシブサービスについて詳しくは「パッシブサービスの設定」ガイドをお読みください。
http://www.jtc-i.co.jp/support/documents/nagiosxi_docs/nagiosxi_configuring_passive_services.pdf
Nagios XI での SNMP トラップ統合方法
rev 1.4
9
Nagios XI – SNMP トラップ統合方法
トラブルシューティング
SNMP トラップは、非常に複雑で、ある程度の知識とトラブルシューティングが必要になります。
以下では、SNMP トラップの一般的なトラブルシューティングの概要を説明します。前述のインストール
スクリプトを使用せずにこのトラブルシューティングガイドを試みる場合、スクリプトが SNMPTT の様々
な面を有効にしているのでより困難になるかもしれません。
最初は、別サーバーからテストトラップを送信してみるのが役立ちます。これは Nagios サーバーからも
行えますが、存在するかもしれないファイヤウォールルールを検証することはできません。前の例で使
用した snmptrap コマンドを使ってテストトラップを送信し、有効なトラップを Nagios XI へ送信します:
snmptrap -v 2c -c public '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate I 123456
これは SNMP トラップを Nagios XI サーバーへ送信します。は実際のNagios XI サーバーの IP に置き換えてください。
今、テストトラップを送信しました。正常に動作しているかを確認するためにいくつかをチェックする必要
があります。送信された特定のトラップは snmptt.conf ファイルに存在しないため、以下のファイルに記録されます:
/var/log/snmptt/snmpttunknown.log
テスト SNMP トラップのログがファイルの末尾に記録されます。もしなければ、途中に中間のファイヤウ
ォールが存在しないことを確かめてください。iptables で port 162 が許可されていることを確認してください。このテストトラップを取得できるようになるまで先に進まないでください。より詳しいトラブルシュー
ティング手順は以下のナレッジベース記事にあります:
SNMP Trap - Inbound UDP Traffic
https://support.nagios.com/kb/article.php?id=86
SNMP Trap - Firewall Rules
https://support.nagios.com/kb/article.php?id=87
トラップを受信できた場合、実際の SNMP トラップのキャプチャを開始する準備ができています。
/var/log/snmptt/snmptt.log で 受 信 し た SNMP ト ラ ッ プ を 監 視 し て く だ さ い 。 ま た 、snmpttunknown.log にも注目してトラップが不明な状態に追いやられていないかを確認してください。
/var/log/snmptt/snmptt.logにトラップが見つかるがNagios XIシステム内に見つからない場合は、トラップを送信してくるリモートホストに SNMP Traps サービスがセットアップされていない可能性がありま
す。Nagios XI はこれらのトラップを受信していますが、トラップが属しているホストに定義されたサービ
スがないため結果を廃棄しています。
https://support.nagios.com/kb/article.php?id=86https://support.nagios.com/kb/article.php?id=87
Nagios XI での SNMP トラップ統合方法
rev 1.4
10
Nagios XI – SNMP トラップ統合方法
Nagios XI には「未設定オブジェクト」というページがあります。このページでは Nagios XI が受信したが
オブジェクトが存在しないパッシブチェックを確認できます。Nagios XI Web インターフェースにログインし、
「管理 -> 監視設定 -> 未設定オブジェクト」に移動し、アクション欄の青色の三角アイコンをクリック
して「未設定パッシブオブジェクト」ウィザードを実行することができます。または(この資料で紹介した)
SNMP トラップウィザードで SNMP トラップサービスをセットアップすることもできます。未設定パッシブオ
ブジェクトウィザードについては、「Monitoring Unconfigured Objects」をお読みください。
以下のナレッジベース記事もトラブルシューティングに役立ちます:
SNMP Trap - snmptrapd Service
https://support.nagios.com/kb/article.php?id=88
SNMP Trap - snmpttt Service
https://support.nagios.com/kb/article.php?id=89
その他の資料
テスト SNMP トラップ送信例について詳しく知りたい場合は、以下のナレッジベース記事をお読みくださ
い:
SNMP Trap - How To Send A Test Trap
https://support.nagios.com/kb/article.php?id=493
Nagios XI で SNMP トラップがどのように動作するかやテスト環境のセットアップ方法について知りたい
場合は、以下のチュートリアルをお読みください:
Nagios XI - SNMP Trap Tutorial
https://support.nagios.com/kb/article.php?id=77
IPv6 SNMP トラップ受信に問題がある場合は、以下のナレッジベースをお読みください:
Nagios XI - Receiving IPv6 SNMP Traps
https://support.nagios.com/kb/article.php?id=499
SNMP トラップ変数について知りたい場合は、以下のナレッジベース記事をお読みください:
SNMP Traps - Understanding Trap Variables
https://support.nagios.com/kb/article.php?id=558
https://assets.nagios.com/downloads/nagiosxi/docs/Monitoring_Unconfigured_Objects_With_XI.pdfhttps://support.nagios.com/kb/article.php?id=88https://support.nagios.com/kb/article.php?id=89https://support.nagios.com/kb/article.php?id=493https://support.nagios.com/kb/article.php?id=77https://support.nagios.com/kb/article.php?id=499https://support.nagios.com/kb/article.php?id=558
Nagios XI での SNMP トラップ統合方法
rev 1.4
11
Nagios XI – SNMP トラップ統合方法
標準ハンドラと組み込みハンドラについて知りたい場合は、以下のナレッジベース記事をお読みくださ
い:
SNMP Traps - Standard Handler vs Embedded Handler
https://support.nagios.com/kb/article.php?id=557
snmptt.conf ファイルについて知りたい場合は、SNMPTT ドキュメントをお読みください:
SNMPTT ドキュメンテーション
http://snmptt.sourceforge.net/docs/snmptt.shtml
OID や番号についてより詳しく知りたい場合は、http://www.oid-info.com/ をご参照ください。知ってい
る OID がリポジトリにまだ存在しない場合は、提出することをお勧めします。すべてのイベント名が
linkDown のようにわかりやすいわけではないので、設定に何を使用するかを調査する必要があります。使用する MIB にはどのイベント名を使用できるかを説明するドキュメントが付属しているはずです。
最後に
SNMP トラップは、IT インフラの非同期イベントを監視する素晴らしい方法です。MIB 管理と SNMP プロ
トコルは複雑でしばしば困難を伴いますが、SNMP の入出力に慣れれば、IT インフラ管理が大幅に強
化され、高度なリアルタイムネットワークイベント監視を行うことができます。
お問い合わせ
弊社では、Nagios XI に関するご意見、フィードバックをお待ちしております。
Nagios XI についてご不明な点がございましたら、以下までお問い合わせください。
ジュピターテクノロジー株式会社(Jupiter Technology Corp.)
住所: 〒183-0023 東京都府中市宮町 2-15-13 第 15 三ツ木ビル 8F
URL: http://www.jtc-i.co.jp/
電話番号: 042-358-1250
FAX 番号: 042-360-6221
ご購入のお問い合わせ:
お問い合わせフォーム https://www.jtc-i.co.jp/contact/scontact.php
製品サポートのお問い合わせ:
カスタマーポータル https://www.jtc-i.co.jp/support/customerportal/
https://support.nagios.com/kb/article.php?id=557http://snmptt.sourceforge.net/docs/snmptt.shtmlhttp://www.oid-info.com/http://www.jtc-i.co.jp/https://www.jtc-i.co.jp/contact/scontact.phpmailto:[email protected]://www.jtc-i.co.jp/support/customerportal/
Nagios XI での SNMP トラップ統合方法
rev 1.4
Nagios XI – SNMP トラップ統合方法
日本語マニュアル発行日 2017 年 03 月 10 日
本マニュアル原文 Nagios XI – How to Integrate SNMP Traps With Nagios XI
Updated – February, 2017
ジュピターテクノロジー株式会社
目的対象読者自動インストール中間ファイヤウォールMIBのインストールSNMPTTEVENT/FORMAT/EXECEVENTFORMATEXEC
SNMPTT処理の動作
テストSNMPトラップの送信SNMPトラップウィザードの使用テストSNMPトラップ送信SNMPトラップはパッシブトラブルシューティングその他の資料最後にお問い合わせ