ZabbixのSNMPトラップ監視設定手順(ホスト、アイテム、トリガーの設定)

Others,Windows,Zabbix

Zabbixを利用してSNMPトラップを監視するための設定手順です。
ホストインターフェース設定、SNMPトラップを受信するためのアイテム設定、アラート検知するためのトリガーの作成手順を確認しています。
また、テスト用のSNMPトラップを発生させ、SNMPトラップの受信確認や、障害検知についても確認しています。
今回は、Windows ServreのSNMPトラップを例に、OS再起動や特定のイベントIDをアラート検知する手順を確認しています。

※手順の確認には、Zabbix 7.0 LTS(7.0.30)を使用しています。
※手順は、Windows Server 2025のSNMPトラップを利用して確認しています。

スポンサーリンク

Zabbixを利用してSNMPトラップ監視を行うための設定手順

ZabbixサーバーでSNMPトラップを受信するための設定が必要

Zabbixサーバー側でもSNMPトラップを受信するための設定が必要となります。
そちらの設定手順については、こちらで紹介しています。

SNMPトラップ受信用に用意されているアイテムキー

ZabbixではSNMPトラップ受信用のアイテムキーが2種類用意されています。

4 SNMPトラップ

SNMPトラップ用のアイテムキー
snmptrap[regexp] 特定のOIDやメッセージのみを抽出する場合に使用するアイテムキーです。
SNMPトラップの一致条件を正規表現で指定します。
snmptrap.fallback snmptrap[regexp]に一致しなかったSNMPトラップを受信するアイテムキーです。
設定できてないSNMPトラップの受信確認などに使用します。

※snmptrap.fallbackを設定することで、ホストから監視に不必要なSNMPトラップが送信された場合に、Zabbixサーバーのログに記録されることを防げます。

ホストにSNMPインターフェースを追加

SNMPトラップのアイテムキーを使用する場合、Zabbix上にSNMPインターフェースを設定したホストが必要となります。
ZabbixはホストのSNMPインターフェースに設定されたIPアドレス(またはDNS名)をもとに、SNMPトラップの送信元ホストを判断します。

1 ホストの設定

SNMPインターフェースに設定したIPアドレス(またはDNS名)と、SNMPトラップの送信元IPアドレスが一致するホストにSNMPトラップが振り分けられます。
一致するホストが存在しない場合、SNMPトラップは破棄されます。

また、インターフェースの設定では、受信するSNMPコミュニティ名を設定する必要があります。
デフォルトでは、{$SNMP_COMMUNITY}のマクロが設定されています。
今回はSNMPコミュニティ名を、tama-negiとしています。

※管理の一般設定にあるマッチしないSNMPトラップをログに記録が有効になっている場合、破棄されたSNMPトラップはZabbixサーバーのログに記録されます。Zabbixプロキシで受信している場合はZabbixプロキシのログに出力されます。

ホストにSNMPインターフェースを追加
ホストの設定画面で、インターフェースを追加します。
インターフェースでSNMPを選択します。
ホストにSNMPインターフェースを追加(ZabbixのSNMPトラップ監視設定手順)
SNMPに関する設定項目が表示されます。
SNMPトラップの送信元となるIPアドレスやDNS名を指定します。
SNMPのバージョン、SNMPコミュニティ名も設定します。
ホストを追加します。

※今回はテスト目的なので、SNMPコミュニティ名はマクロではなく、直接設定しています。

SNMPインターフェースの設定(ZabbixのSNMPトラップ監視設定手順)
SNMPのコミュニティ名はホストのマクロで設定することもできます。

※ホストのマクロで値を変更した場合は、設定したホストの値だけが変更されます。他のホストの設定には影響を与えません。

SNMPトラップコミュニティ名のマクロ設定(ZabbixのSNMPトラップ監視設定手順)
SNMPトラップコミュニティ名のマクロ設定(ZabbixのSNMPトラップ監視設定手順)
デフォルトで設定されているSNMPコミュニティ名のマクロは、管理画面のマクロで設定されています。
Zabbix全体でマクロの値を変更する場合は、管理のマクロで値を変更します。

Zabbix全体のSNMPコミュニティ名マクロ設定(ZabbixのSNMPトラップ監視設定手順)
インターフェースにSNMPを指定した、ホストが追加されていることが確認できます。 SNMPインターフェースが追加されたホストを表示(ZabbixのSNMPトラップ監視設定手順)

snmptrap.fallbackのアイテム設定値

snmptrap.fallbackのアイテム設定値です。
snmptrap.fallbackは、対象ホストに設定されたsnmptrap[regexp]のアイテムキーに一致しないSNMPトラップを受信するために利用されるアイテムキーです。
最初に設定しておくことで、対象ホストから受信したSNMPトラップの内容を確認できます。
また、想定したSNMPトラップがsnmptrap[regexp]に一致しない場合に内容を確認できるため、運用時の監視設定漏れや正規表現の設定ミスの確認にも利用できます。

アイテム設定値
名前 snmptrap_fallback
タイプ SNMPトラップ
キー snmptrap.fallback
データ型 ログ
ホストインターフェース ホストに作成したSNMPインターフェース

snmptrap.fallbackのアイテムを作成(Zabbix上でSNMPトラップをログとして記録)

snmptrap.fallbackをアイテムキーとする、アイテムを作成します。
注意点としては、SNMPトラップを文字列として受信するため、データ型をテキストもしくはログにしないとデータ取得エラーとなります。

アイテムの作成手順
ホストにあるアイテムを選択します。 ホストにあるアイテムを選択(ZabbixのSNMPトラップ監視設定手順)
アイテムの作成を選択します。 アイテムの作成(ZabbixのSNMPトラップ監視設定手順)
新規アイテム作成画面が表示されます。
タイプにSNMPトラップを選択します。
データ型にログを選択します。
アイテムキーを選択します。
今回は、snmptrap.fallbackを選択します。

新規アイテム作成画面(ZabbixのSNMPトラップ監視設定手順)
タイプがSNMPトラップのアイテムキーを選択(ZabbixのSNMPトラップ監視設定手順)

アイテムキーの設定内容

snmptrap.fallback

アイテムの設定内容を確認します。
問題がなければ追加を選択します。
SNMPトラップのアイテムを追加(ZabbixのSNMPトラップ監視設定手順)
タイプがSNMPトラップであるアイテムが追加されていることを確認できます。 追加されたアイテムを表示(ZabbixのSNMPトラップ監視設定手順)

SNMPトラップの受信を最新データで確認

アイテムキー作成後に、SNMPトラップを受信を確認します。
今回はWindows Serverを再起動し、LinkUpのSNMPトラップの受信を確認しています。
Windows ServerからSNMPトラップを送信する手順については、こちらで紹介しています。
実際に送信されるSNMPトラップ例についても、こちらで紹介しています。

最新データを確認
最新データでSNMPトラップの受信を確認します。
アイテムのヒストリを確認すると、SNMPトラップの受信内容を確認できます。
最新データで受信したSNMPトラップを確認(ZabbixのSNMPトラップ監視設定手順)

SNMPトラップを受信するアイテムでログの時間の形式を設定

Zabbix Serverの設定や、SNMPトラップの時刻フォーマットによっては、ローカル時間が表示されないことがあります。
アイテムにあるログの時間の形式で設定することができます。

※zabbix_trap_receiver.plでSNMPトラップログの時刻フォーマットを設定することも可能です。

アイテムでログの時間の形式を設定
作成したアイテムを表示します。
ログの時間の形式の設定に、受信したSNMPトラップの時刻フォーマットを設定します。
SNMPトラップのアイテムでログの時間の形式を設定(ZabbixのSNMPトラップ監視設定手順)

yyyy-MM-ddThh:mm:ss

再度最新データで確認すると、ローカル時間が表示されていることが確認できます。 最新データで受信したSNMPトラップのローカル時間を確認(ZabbixのSNMPトラップ監視設定手順)

特定のSNMPトラップを検知するアイテム設定値(SNMPトラップ本文の文字列で絞り込み)

SNMPトラップを検知するアイテムを作成します。
Windows ServerのcoldStartを検知するアイテムと、ログオンエラー(イベントID4625)を検知するアイテムの2つを作成します。
検知内容は正規表現で指定する必要があります。
SNMPトラップ本文の文字列を正規表現で指定しています。

coldStartを検知するアイテムの設定例です。
今回は、Windows Serverの再起動時に、coldStartのSNMPトラップが送信されていたので、テスト用に設定しています。

アイテム設定値
名前 Windows_ColdStart
タイプ SNMPトラップ
キー snmptrap[SNMPv2-MIB::coldStart]
データ型 ログ
ホストインターフェース ホストに作成したSNMPインターフェース
ログの時間の形式 yyyy-MM-ddThh:mm:ss

ログオンエラーに該当する、イベントID4625のイベントログを検知するアイテムの設定例です。

アイテム設定値
名前 Windows_Logon_Error
タイプ SNMPトラップ
キー snmptrap[“[.]0[.]4625$"]
データ型 ログ
ホストインターフェース ホストに作成したSNMPインターフェース
ログの時間の形式 yyyy-MM-ddThh:mm:ss

※今回の設定は1つの例です。環境や監視要件に応じて設定します。

特定のSNMPトラップを検知するアイテムの作成手順

特定のSNMPトラップを検知するアイテムを作成します。

アイテムの作成手順
タイプにSNMPトラップ、データ型にログを指定します。
次に使用するアイテムキーを選択します。
SNMPトラップのアイテムを新規作成(ZabbixのSNMPトラップ監視設定手順)
タイプがSNMPトラップのアイテムキーの中から、snmptrap[regexp]のキーを選択します。 タイプがSNMPトラップのアイテムキーを選択(ZabbixのSNMPトラップ監視設定手順)
アイテム名を設定します。
キーで検知したいSNMPトラップの内容を正規表現で指定します。
アイテムを追加します。

※今回は、ログ時間の形式も設定しています。

【coldStartを検知する場合】SNMPトラップのアイテムを設定(coldStartの場合)(ZabbixのSNMPトラップ監視設定手順)

snmptrap[SNMPv2-MIB::coldStart]

イベントIDで検知する場合の例です。 【イベントログ(イベントID4625)を検知する場合】SNMPトラップのアイテムを設定(イベントログID4625の場合)(ZabbixのSNMPトラップ監視設定手順)

snmptrap[“[.]0[.]4625$"]

作成したアイテムが表示されていることが確認できます。 追加されたSNMPトラップのアイテムを一覧表示(ZabbixのSNMPトラップ監視設定手順)

※今回の設定は1つの例です。環境や監視要件に応じて設定します。

SNMPトラップ監視用のトリガー設定値

SNMPトラップを検知するトリガーを作成します。
作成したアイテムに対応する、Windows Serverを検知するcoldStartのトリガーと、ログオンエラー(イベントID 4625)を検知するトリガーの2つを作成します。

SNMPトラップの本文に特定の文字列が含まれているかを判定するため、find関数を使用します。
正規表現に文字列が一致した場合にアラートを検知するよう、条件式を設定します。

SNMPトラップでは復旧を示す通知が必ず送信されるとは限りません。
そのため、正常イベントの生成はなしに設定し、手動クローズを使用するようにしています。
また、連続して発生するSNMPトラップを検知できるよう、障害イベントの生成モードは複数に設定してます。

ホスト名がvm-01の場合の、coldStartを検知するトリガーの設定例です。

アイテム設定値
名前 Windows_ColdStart
深刻度 警告
条件式 find(/vm-01/snmptrap[SNMPv2-MIB::coldStart],,"regexp","coldStart")=1
正常イベントの生成 なし
障害イベント生成モード 複数
手動クローズを許可 チェックあり

ホスト名がvm-01の場合の、イベントID4625のイベントログを検知するトリガー設定例です。

アイテム設定値
名前 Windows_Logon_Error
深刻度 警告
条件式 find(/vm-01/snmptrap[“[.]0[.]4625$"],,"regexp",4625)=1
正常イベントの生成 なし
障害イベント生成モード 複数
手動クローズを許可 チェックあり

※今回の設定は1つの例です。環境や監視要件に応じて設定します。

SNMPトラップ監視用のトリガー作成手順

SNMPトラップのメッセージ本文に特定の文字列が含まれていた場合に検知するトリガーを作成します。

トリガーの設定

トリガーの作成手順
ホストにあるトリガーを選択します。 ホストにあるトリガーを選択(ZabbixのSNMPトラップ監視設定手順)
トリガーの作成を選択します。 ホストでトリガーを新規作成(ZabbixのSNMPトラップ監視設定手順)
新規トリガーの作成画面が表示されます。
名前、深刻度を選択します。
条件式の追加を選択します。
新規トリガーの作成画面を表示(ZabbixのSNMPトラップ監視設定手順)
トリガー条件式の設定画面が表示されます。
作成したアイテムを選択します。
関数にはfindを選択します。
O(検索方法)には、regexpを指定しています。
これは、正規表現で検索するという設定になります。
V(検索するパターン)には、アイテムと同様にcoldStartを指定しています。
結果には=1を指定しています。
指定した条件に一致するトラップ本文があれば、アラートするようにしています。
トリガーの条件式設定画面を表示(ZabbixのSNMPトラップ監視設定手順)
トリガーの条件式のアイテムを選択(ZabbixのSNMPトラップ監視設定手順)
トリガーの条件式の設定例(ZabbixのSNMPトラップ監視設定手順)

設定するトリガー条件式の例

find(/vm-01/snmptrap[SNMPv2-MIB::coldStart],,"regexp","coldStart")=1

正常性イベントの生成はなしを選択します。
障害イベント生成モードを複数にしています。
手動クローズを許可にチェックを入れます。
最後に追加を選択します。
新規トリガーの設定例(ZabbixのSNMPトラップ監視設定手順)
Windowsのログオンエラーを検知する場合の例です。
Windows_Logon_Errorのアイテムを選択し、4625の文字列を検知条件とするように設定しています。
トリガーの条件式の設定例(ZabbixのSNMPトラップ監視設定手順)

設定するトリガー条件式の例

find(/vm-01/snmptrap[“[.]0[.]4625$"],,"regexp",4625)=1

同様に設定し追加します。 新規トリガーの設定例(ZabbixのSNMPトラップ監視設定手順)
追加されたトリガーを確認することができます。 追加されたトリガーを一覧画面で確認(ZabbixのSNMPトラップ監視設定手順)

※今回の設定は1つの例です。環境や監視要件に応じて設定します。

ZabbixでSNMPトラップの障害を検知できているかを確認

受信したSNMPトラップが、Zabbixサーバーで正しくアラート検知できているかを確認します。
確認のため、Windows Serverの再起動やログオンエラーを意図的に発生させています。

アラート検知を確認
Windows Serverを再起動させた場合の例です。
最新データでSNMPトラップを受信できていることを確認できます。
作成したトリガーで障害検知できていることを確認できます。
SNMPトラップの受信例(coldStratの場合)(ZabbixのSNMPトラップ監視設定手順)
SNMPトラップの障害イベント発生例(ZabbixのSNMPトラップ監視設定手順)
SNMPトラップの障害イベント発生例(ZabbixのSNMPトラップ監視設定手順)
Windowsのログオンエラーを発生させた場合の例です。
同様に作成したトリガーで障害検知できていることを確認できます。
SNMPトラップの受信例(イベントログの場合)(ZabbixのSNMPトラップ監視設定手順)
SNMPトラップの障害イベント発生例(ZabbixのSNMPトラップ監視設定手順)
SNMPトラップの障害イベント発生例(ZabbixのSNMPトラップ監視設定手順)
また連続してSNMPトラップを受信した場合にも障害検知できていることが確認できます。 SNMPトラップの障害イベント発生例(ZabbixのSNMPトラップ監視設定手順)

大量のSNMPトラップ受信に注意

機器障害が発生した場合など、短時間に大量のSNMPトラップが送信されることがあります。
その結果、大量のアラート通知が送信され、事象の把握が困難になることがあります。
受信対象のSNMPトラップを絞り込むなど、大量のアラート通知が送信されないよう注意が必要です。

—広告—

最後に

今回は、ZabbixでSNMPトラップを受信して監視するための設定手順について確認してみました。
ホスト、アイテム、トリガーの設定から、Windows端末を利用した動作確認までの手順を確認しました。
SNMPトラップはネットワーク機器の障害検知などで重要な手段です。

引き続き、いろいろ試してみたいと思います。

Zabbixを使ってログを監視するための手順については、こちらで紹介しています。
Windowsのイベントログ監視の手順についても紹介しています。

Zabbixを利用したポート監視設定手順については、こちらで紹介しています。

ZabbixのWeb監視設定手順については、こちらで紹介しています。

Zabbixのアラート通知設定手順については、こちらで紹介しています。

Zabbix エージェントのインストールや暗号化通信の有効化手順については、こちらで紹介しています。

スポンサーリンク