SNMPのトラップの受信は、SNMP対応のデバイスに対してクエリーを発行することの反対の機能です。
情報はSNMP対応のデバイスから送信され、Zabbixによって収集または「トラップ」されます。
通常のトラップは、状況の変化が起こったときに送信され、クエリーに使用されるエージェントサイドのポート番号161と対照的に、ポート番号162でエージェントがサーバに接続します。トラップの使用によって、クエリーの間に発生しクエリーデータでは見落とされるような短期間の障害を感知することができます。
ZabbixでのSNMPトラップの受信は、snmptrapdと、Zabbixに対してトラップを受け渡すために組み込まれたメカニズム - PerlスクリプトまたはSNMPTTのどちらかで動作するように設計されています。
トラップの受信の仕事の流れは以下の通りです:
フロントエンドの以下のフィールドの設定は、このアイテムタイプに固有のものです:
[設定]→[ホスト]で、ホストインターフェースのフィールドにIPアドレスまたはDNSアドレスを指定して、SNMPインターフェースを設定します。受信するトラップそれぞれのアドレスは、対応するホストを探すために、すべてのSNMPインターフェースのIPアドレスおよびDNSアドレスと比較されます。
キーのフィールドで、SNMPトラップキーの1つを使用します:
キー | ||
---|---|---|
説明 戻 | 値 コメント | |
snmptrap[regex] | ||
対応するアドレスから正規表現に一致するすべてのSNMPトラップを取得します。 SNMPトラップ このアイテムはSNMPインターフェースにのみ | 定可能です。 |
<このアイテムは、バージョン2.0.0からサポートされました。 注意:Zabbix2.0.5から、このアイテムキーのパラメータでユーザーマクロとグローバル正規表現がサポートされました。 |
snmptrap.fallback | ||
そのインターフェースに対してどのsnmptrap[]アイテムでも取得されなかったアドレスからすべてのSNMPトラップを取得します。 SNMPトラップ このアイテムはSNMPインターフェースにのみ設定可能です。 |
<このアイテムは、バージョン2.0.0からサポートされました。 |
パースされるタイムスタンプのデータ型は「ログ」に設定します。「数値」のように他の書式も設定可能ですが、カスタムのトラップハンドラを必要とする場合があることに注意してください。
<note tip>SMMPトラップ監視が動作するためには、まず最初に正しくセットアップされている必要があります。 :::
トラップを読み込むためには、Zabbix サーバまたはZabbix プロキシがSNMPトラッパのプロセスを開始するように設定されており、SNMPTTまたはPerlのトラップレシーバによって書き込まれるトラップファイルを指している必要があります。 その設定を行うためには、設定ファイル(zabbix_server.conff またはzabbix_proxy.conf)を編集します。
最初に、snmptrapdがSNMPTTを使用するように設定します。
<note tip>最高のパフォーマンスのためには、SNMPTTはトラップを受け渡すsnmptthandler-embeddedを使用するデーモンとして設定されていること。SMNPTTのホームページの設定の概要を参照してください: http://snmptt.sourceforge.net/docs/snmptt.shtml :::
SNMPTTがトラップを受信するよう設定されたら、トラップのログを記録する設定をします:
これで、Zabbixが認識するように、トラップをフォーマットします。(snmptt.confを編集):
知らないトラップを使用しないようにしてください - Zabbixは、それらを認識できません。知らないトラップは、snmptt.conf 内で general イベントと定義することで、扱うことができるようになります: EVENT general .* “General event” Normal
要件:Perl、--enable-embedded-perl でコンパイルされたNet-SNMP(Net-SNMP 5.4からは、デフォルトで実行されています)
Perl トラップレシーバ( misc/snmptrap/zabbix_trap_receiver.pl を探してください)は、snmptrapd からトラップをZabbix サーバに直接受け渡すために使用されます。これを設定するには:
すべてのカスタマイズされたperlのトラップレシーバとSNMPTTトラップ設定は、次の方法でトラップをフォーマットする必要があります:
それぞれの意味は以下の通りです。
処理中のメッセージから「ZBXTRAP」と「[address]」は、削除されることに注意してください。トラップが他の方法でフォーマットされている場合は、Zabbixがそのトラップを期待通りにはパースしない場合があります。
ファイル内のトラップの行の例:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - ZBXTRAP 192.168.1.1 Link down on interface 2. Admin state: 1. Operational state: 2
これは、次のような、IP=192.168.1.1のSNMPインターフェースのトラップになります:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - Link down on interface 2. Admin state: 1. Operational state: 2
Zabbixは、いかなるログローテションシステムも提供していません - したがって、ユーザーがそれを処理します。ログローテーションは、最初に古いファイルの名前を変更し、トラップが1つも残らないように後からファイルを削除します:
トラップファイルの実装のために、ファイルシステムがファイルを識別するためにiノードをサポートしている必要があります。(情報はstat() のコールで統合されます)
この例では、Zabbix サーバへのトラップの受け渡しにsnmptrapd と SNMPTTを使用します。次のようにセットアップします:
この結果は、以下のようになります:
<note tip>このシンプルな例では、トラップハンドルとしてSNMPTTを使用しています。よりよいパフォーマンスのためには、snmptrapd から SNMPTTあるいは直接Zabbixにトラップを受け渡すのに、埋め込みのPerlを使用するようにしてください。 :::
本ページは2013/04/30時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this page」から英語版を参照してください。