SNMPトラップ監視をするためのZabbix Server設定手順(zabbix_trap_receiver.plを使用)

Others,Zabbix

Zabbix ServerでSNMPトラップ監視を行うための設定手順です。
今回は、Zabbix ServerでSNMPトラップを受信して監視を行えるまでの設定手順を解説します。

Zabbix Serverを構成しただけでは、ZabbixでSNMPトラップを受信して監視することはできません。
SNMPトラップ受信用デーモン(snmptrapd)やSNMPトラップをZabbixで処理できる形式へ変換するスクリプトを組み合わせて構成する必要があります。

Zabbix Serverで必要となるパッケージのインストールから、zabbix_trap_receiver.plの設定、各種設定ファイルの編集、SELinuxやログ設定まで、一連の手順を確認しています。

※手順の確認には、Zabbix 7.0 LTS(7.0.30)を使用しています。
※zabbix_trap_receiver.plを利用した手順を紹介しています。

スポンサーリンク

Zabbix ServerでSNMPトラップを受信して監視するための設定手順

Zabbix ServerでSNMPトラップを受信して監視するために必要な項目

Zabbix自体では、直接SNMPトラップを受信する機能を持っていません。
SNMPトラップ受信用デーモン(snmptrapd)と、受信したSNMPトラップをZabbixが扱える形式に変換する仕組みを組み合わせて利用します。

SNMPトラップ

SNMPトラップ受信に必要となる項目
snmptrapd Net-SNMPに付属するSNMPトラップ受信用デーモンです。
UDP 162番ポートでTrapを待ち受けます。
zabbix_trap_receiver.pl 受信したSNMP トラップをsnmptrapd経由で受け取り、Zabbix サーバーが読み込める形式に整形してログとして出力します。
Zabbixのソースコードに付属しており、公式サイトからダウンロードできるPerl製のスクリプトです。
Zabbix Server zabbix_trap_receiver.plから出力されたトラップファイルを定期的に読み込みます。
タイプをSNMPトラップに設定したアイテムの値として登録されます。

Zabbix ServerでのSNMPトラップを受信して処理する流れ

Zabbixサーバー側でSNMPトラップを受信する際の処理の流れです。

    1. ネットワーク機器やサーバーなどのSNMPエージェントが、Zabbix ServerへSNMPトラップを送信します。
    2. Zabbix Serverの snmptrapdがSNMPトラップを受信します。
    3. snmptrapdに組み込んだzabbix_trap_receiver.plがSNMPトラップを受信、整形します。
    4. zabbix_trap_receiver.plが整形済みのTrapを、SNMPTrapperFileで指定したSNMPトラップのログファイルへ書き込みます。
    5. Zabbix ServerのSNMPトラッパー(SNMPTrapper)がトラップファイルを読み取り、解析します。
    6. SNMPトラッパー(SNMPTrapper)は送信元アドレスに対応するホストのSNMPインターフェースを検索、SNMPトラップのアイテム値として登録します。

※Zabbix ProxyでもSNMPトラップを受信して処理することができます。

Net-SNMP関連のパッケージをインストール

Zabbix ServerでSNMPトラップを受信して監視するために必要な、Net-SNMP関連パッケージをインストールします。
テスト用にsnmpwalkコマンドを使うため、net-snmp-utilsも併せてインストールします。

Net-SNMP関連のパッケージをインストール

# Net-SNMP関連のパッケージをインストール
[root@vm-zabbix-01 ~]#
dnf install -y net-snmp net-snmp-perl net-snmp-utils
Last metadata expiration check: 0:13:23 ago on Sat Sep 5 00:41:04 2026.
Dependencies resolved.
===========================
Package Architecture Version Repository Size
===========================
Installing:
net-snmp x86_64 1:5.9.1-21.el9 appstream 294 k
net-snmp-perl x86_64 1:5.9.1-21.el9 appstream 301 k
net-snmp-utils x86_64 1:5.9.1-21.el9 appstream 183 k
~(以下略)~

[root@vm-zabbix-01 ~]# rpm -q net-snmp net-snmp-perl net-snmp-utils
net-snmp-5.9.1-21.el9.x86_64
net-snmp-perl-5.9.1-21.el9.x86_64
net-snmp-utils-5.9.1-21.el9.x86_64

SNMPトラップのログ保存先ディレクトリやログファイルを作成

SNMPトラップのログの保存先となる、ディレクトリおよびログファイルを作成します。
今回は、Zabbix Serverの設定ファイルのデフォルト値に合わせて、ログファイルのパスは/var/log/snmptrap/snmptrap.logとしています。

SNMPトラップのログ保存先ディレクトリやログファイルを作成

# SNMPトラップのログファイル保存先ディレクトリとログファイルを作成
[root@vm-zabbix-01 ~]#
install -d -o root -g zabbix -m 2755 /var/log/snmptrap/
[root@vm-zabbix-01 ~]# install -o root -g zabbix -m 664 /dev/null /var/log/snmptrap/snmptrap.log
[root@vm-zabbix-01 ~]# ls -al /var/log/snmptrap/
total 4
drwxrwsr-x. 2 root zabbix 26 Sep 5 00:58 .
drwxr-xr-x. 13 root root 4096 Sep 5 00:58 ..
-rw-rw-r–. 1 root zabbix 0 Sep 5 00:58 snmptrap.log

zabbix_trap_receiver.plのダウンロードと実行権限付与

Zabbix用のSNMPトラップ受信、整形スクリプト(zabbix_trap_receiver.pl)をダウンロードします。
zabbix_trap_receiver.plは、snmptrapdが受信したSNMPトラップをZabbix Serverが読み取れる形式でファイルに出力するスクリプトです。

ZabbixのGitHubリポジトリからzabbix_trap_receiver.plをダウンロードし、実行権限を付与します。
今回は、ダウンロードしたzabbix_trap_receiver.plを/usr/local/bin/に配置しています。

zabbix_trap_receiver.pl

※Zabbix Proxyでも同様に利用可能です。

zabbix_trap_receiver.plのダウンロードと実行権限付与

# zabbix_trap_receiver.plのダウンロードと権限設定
[root@vm-zabbix-01 ~]#
curl -L -o /usr/local/bin/zabbix_trap_receiver.pl \
https://raw.githubusercontent.com/zabbix/zabbix/master/misc/snmptrap/zabbix_trap_receiver.pl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4445 100 4445 0 0 19581 0 –:–:– –:–:– –:–:– 19581
[root@vm-zabbix-01 ~]# chmod 755 /usr/local/bin/zabbix_trap_receiver.pl
[root@vm-zabbix-01 ~]# ls -al /usr/local/bin/
total 8
drwxr-xr-x. 2 root root 37 Sep 5 01:01 .
drwxr-xr-x. 12 root root 131 Nov 3 2024 ..
-rwxr-xr-x. 1 root root 4445 Sep 5 01:01 zabbix_trap_receiver.pl

zabbix_trap_receiver.plの設定

zabbix_trap_receiver.plの設定では、SNMPトラップのログファイルの出力先を指定します。
SNMPTrapperFileに、先ほど作成した/var/log/snmptrap/snmptrap.logを指定します。

zabbix_trap_receiver.plの設定

[root@vm-zabbix-01 ~]# vi /usr/local/bin/zabbix_trap_receiver.pl
#####################################
### ZABBIX SNMP TRAP RECEIVER CONFIGURATION ###
#####################################

### Option: SNMPTrapperFile
# Temporary file used for passing data to the server (or proxy). Must be the same
# as in the server (or proxy) configuration file.
#
# Mandatory: yes
# Default:

# SNMPトラップログの出力先を設定
$SNMPTrapperFile = '/var/log/snmptrap/snmptrap.log’;

snmptrapd.confファイルの設定

snmptrapd.confで、受信を許可するコミュニティ名と、ZabbixのSNMPトラップ受信、整形スクリプト(zabbix_trap_receiver.pl)のパスを指定します。
今回は、コミュニティ名tama-negiのSNMPトラップだけを許可するようにしています。
なお、コミュニティ名などによる認証チェックを無効化し、すべてのSNMPトラップを受信する場合は、disableAuthorization yesを設定します。

※今回は、SNMPv3については考慮していません。

snmptrapd.confファイルの設定

[root@vm-zabbix-01 ~]# vi /etc/snmp/snmptrapd.conf
# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
# authCommunity log,execute,net public
# traphandle SNMPv2-MIB::coldStart /usr/bin/bin/my_great_script cold

# SNMP v1/v2cのコミュニティtama-negiを許可
authCommunity log,execute,net tama-negi

# ZabbixのTrap整形スクリプトを読み込む
perl do “/usr/local/bin/zabbix_trap_receiver.pl"; 

snmptrapdの有効化および待受ポート確認

SNMPトラップを受信するために、snmptrapdサービスの自動起動を有効化し、サービスを起動します。
SNMPトラップの受信ポートであるUDP/162を、snmptrapdで待ち受けていることを確認します。

snmptrapdの有効化および待受ポート確認

# snmptrapdの自動起動有効化とサービスを起動
[root@vm-zabbix-01 ~]#
systemctl enable –now snmptrapd
[root@vm-zabbix-01 ~]# ss -lunp | grep ':162’
UNCONN 0 0 0.0.0.0:162 0.0.0.0:* users:((“snmptrapd",pid=46875,fd=7))

snmptrapdによるSNMPトラップログファイルへの書き込みがSELinuxで拒否されることがある

SELinuxが有効、適切なアクセス権限が設定されていない場合、snmptrapdがSNMPトラップのログファイルへ書き込めるかを確認すると、エラーが発生することがあります。
ausearchコマンドで確認すると、SELinuxによってアクセスが拒否されていることを確認できます。
今回の例では、snmptrapdはsnmpd_tドメインで動作しており、SELinuxによりvar_log_tタイプのログファイルへのアクセスが拒否されていことが確認できます。

snmptrapdがSNMPトラップのログファイルへ書き込みできるか確認

# SNMPトラップのテストコマンドを実行
[root@vm-zabbix-01 ~]#
snmptrap -v 2c -c tama-negi localhost:162 " .1.3.6.1.6.3.1.1.5.3 ifIndex.1 i 1 ifAdminStatus.1 i 1 ifOperStatus.1 i 2
# ausearchコマンドでSELinuxのアクセス拒否ログを確認
[root@vm-zabbix-01 ~]#
ausearch -m AVC -ts recent
—-
time->Sat Sep 5 02:01:01 2026
type=PROCTITLE msg=audit(***): proctitle=***
type=SYSCALL msg=audit(***): arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=*** a2=80441 a3=1b6 items=0 ppid=* pid=***** auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="snmptrapd" exe="***" subj=***:snmpd_t ***
type=AVC msg=audit(***): avc: denied { open } for pid=***** comm="snmptrapd" path="***" dev="***" ino=*** scontext=*** tcontext=*** tclass=file permissive=0

# SELinux コンテキストを確認
[root@vm-zabbix-01 ~]# ls -ldZ /var/log/snmptrap
drwxrwsr-x. 2 root zabbix unconfined_u:object_r:var_log_t:s0 26 Sep 5 00:58 /var/log/snmptrap
[root@vm-zabbix-01 ~]# ls -lZ /var/log/snmptrap/snmptrap.log
-rw-rw-r–. 1 root zabbix system_u:object_r:var_log_t:s0 0 Sep 5 00:58 /var/log/snmptrap/snmptrap.log

SNMPトラップログファイルのSELinuxコンテキストを変更

snmptrapdがSNMPトラップログファイル(snmptrap.log)を読み書きできるように、SELinuxコンテキストを設定します。
SNMPトラップログファイルの保存先ディレクトリおよびログファイルに、snmpd_log_tタイプのSELinuxコンテキストを設定します。

SNMPトラップログファイルのSELinuxコンテキストを変更

# semanageコマンドが含まれるパッケージをインストール
[root@vm-zabbix-01 ~]#
dnf install -y policycoreutils-python-utils
Last metadata expiration check: 1:26:43 ago on Sat Sep 5 00:41:04 2026.
Dependencies resolved.
===========================
Package Architecture Version Repository Size
===========================
Installing:
policycoreutils-python-utils noarch 3.6-5.el9 appstream 70 k

# SNMPトラップログファイル保存先とファイルに対するSELinux コンテキスト永続ルールを追加、適用
[root@vm-zabbix-01 ~]# semanage fcontext -a -t snmpd_log_t '/var/log/snmptrap(/.*)?’
[root@vm-zabbix-01 ~]# restorecon -RFv /var/log/snmptrap
Relabeled /var/log/snmptrap from unconfined_u:object_r:var_log_t:s0 to system_u:object_r:snmpd_log_t:s0
Relabeled /var/log/snmptrap/snmptrap.log from system_u:object_r:var_log_t:s0 to system_u:object_r:snmpd_log_t:s0

# SELinux コンテキストを確認
[root@vm-zabbix-01 ~]#
ls -ldZ /var/log/snmptrap
drwxrwsr-x. 2 root zabbix system_u:object_r:snmpd_log_t:s0 26 Sep 5 00:58 /var/log/snmptrap
[root@vm-zabbix-01 ~]# ls -lZ /var/log/snmptrap/snmptrap.log
-rw-rw-r–. 1 root zabbix system_u:object_r:snmpd_log_t:s0 0 Sep 5 00:58 /var/log/snmptrap/snmptrap.log

再度SNMPトラップの受信テストを行ってSNMPトラップログ書き込みを確認

再度、ローカルホストからテスト用のSNMPトラップを送信し、snmptrapdがTrapをログファイルに書き込めるかを確認します。
今回は、SNMPトラップログファイルへの書き込みに成功していることを確認できます。

snmptrapdがSNMPトラップのログファイルへ書き込みできるか確認

# SNMPトラップのテストコマンドを実行
[root@vm-zabbix-01 ~]#
snmptrap -v 2c -c tama-negi localhost:162 " .1.3.6.1.6.3.1.1.5.3 ifIndex.1 i 1 ifAdminStatus.1 i 1 ifOperStatus.1 i 2
# snmptrapdのログを確認
[root@vm-zabbix-01 ~]#
cat /var/log/snmptrap/snmptrap.log
2026-09-05T03:26:52+0000 ZBXTRAP 127.0.0.1
PDU INFO:
community tama-negi
requestid 455227954
receivedfrom UDP: [127.0.0.1]:33520->[127.0.0.1]:162
transactionid 2
errorindex 0
version 1
messageid 0
errorstatus 0
notificationtype TRAP
VARBINDS:
DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (1357761) 3:46:17.61
SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkDown
IF-MIB::ifIndex.1 type=2 value=INTEGER: 1
IF-MIB::ifAdminStatus.1 type=2 value=INTEGER: 1
IF-MIB::ifOperStatus.1 type=2 value=INTEGER: 2
 

Zabbix ServerのSNMPトラップ 受信設定

Zabbix Serverがsnmptrapdによって出力されたSNMPトラップのログファイルを読み取り、SNMPトラップ監視を行えるように設定します。
設定変更を反映するために、Zabbix Serverのサービスも再起動します。

zabbix_server.confのSNMPTrapperFileおよびStartSNMPTrapperを変更します。
SNMPTrapperFileには、zabbix_trap_receiver.plで指定したSNMPトラップのログファイル出力先と同じパスを設定します。
StartSNMPTrapperには、SNMPトラッパープロセスの起動数を指定します。
SNMPトラップの受信を有効にする場合は、1以上の値に設定します。

Zabbix ServerのSNMPトラップ受信設定

# zabbix_server.confの設定を変更
[root@vm-zabbix-01 ~]#
vi /etc/zabbix/zabbix_server.conf
### Option: SNMPTrapperFile
# Temporary file used for passing data from SNMP trap daemon to the server.
# Must be the same as in zabbix_trap_receiver.pl or SNMPTT configuration file.
#
# Mandatory: no
# Default:
# SNMPTrapperFile=/tmp/zabbix_traps.tmp

#
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

### Option: StartSNMPTrapper
# If 1, SNMP trapper process is started.
#
# Mandatory: no
# Range: 0-1
# Default:
# StartSNMPTrapper=0

StartSNMPTrapper=1 

# Zabbix Serverのサービスを再起動して設定変更内容を反映
[root@vm-zabbix-01 ~]# systemctl restart zabbix-server

Zabbix ServerからのSNMPトラップログ読み取りをSELinuxにより拒否されることがある

zabbix_server.confの設定が完了しているのにも関わらず、うまくSNMPトラップの受信ができてないことがあります。
その場合に、zabbix_server.logを確認すると、Permission deniedによりSNMPトラップログファイルの読み取りが拒否されていることがあります。
ausearchコマンドで確認すると、SELinuxによってSNMPトラップログファイルへのアクセスが拒否されていることを確認できます。

Zabbix Serverのログを確認

# Zabbix Serverのログを確認
[root@vm-zabbix-01 ~]#
tail -f /var/log/zabbix/zabbix_server.log

16506:20260905:033146.963 cannot open SNMP trapper file “/var/log/snmptrap/snmptrap.log": [13] Permission denied

# ausearchコマンドでSELinuxのアクセス拒否ログを確認
[root@vm-zabbix-01 ~]#
ausearch -m AVC -ts recent
time->Sat Sep 5 03:33:14 2026
type=PROCTITLE msg=audit(***): 
~以下略~

Zabbix ServerからのSNMPトラップログの読み取りを許可するSELinuxポリシーモジュールを作成、適用

Zabbix Serverは、zabbix_tドメインで動作します。
一方、SNMPトラップのログファイルには、snmpd_log_tタイプのSELinuxコンテキストを設定しています。

Zabbix ServerがSNMPトラップのログファイルを読み取れるようにSELinuxを設定する必要があります。
zabbix_tドメインからsnmpd_log_tタイプのファイルへの読み取りアクセスを許可するローカルSELinuxポリシーモジュールを作成し、適用します。

SELinux ポリシーモジュールの作成、適用

# Zabbix ServerのSELinuxドメインを確認
[root@vm-zabbix-01 ~]# ps -eZ | grep zabbix_server
system_u:system_r:zabbix_t:s0 16677 ? 00:00:01 zabbix_server

# SELinuxポリシーモジュールを作成、適用
[root@vm-zabbix-01 ~]# cat > /root/zabbix_snmptrap.te <<'EOF’
module zabbix_snmptrap 1.0;

require {
    type zabbix_t;
    type snmpd_log_t;

    class dir search;
    class file { getattr open read };
}

# Zabbix Server が SNMPトラップログの格納ディレクトリを検索できるようにする
allow zabbix_t snmpd_log_t:dir search;

# Zabbix Server が SNMPトラップログを読むだけ許可する
allow zabbix_t snmpd_log_t:file { getattr open read };
EOF

[root@vm-zabbix-01 ~]# checkmodule -M -m -o /root/zabbix_snmptrap.mod /root/zabbix_snmptrap.te
[root@vm-zabbix-01 ~]# semodule_package -o /root/zabbix_snmptrap.pp -m /root/zabbix_snmptrap.mod
[root@vm-zabbix-01 ~]# semodule -i /root/zabbix_snmptrap.pp
 

SNMPトラップログファイルのローテーション設定および動作確認

SNMPトラップのログファイルが肥大化しないように、logrotateを使用して日次ローテーションを設定します。
ログローテーション実行後にテスト用のSNMPトラップを送信し、新しいログファイルへSNMPトラップが正常に書き込まれることを確認します。

今回はテスト用として以下の設定としています。
ログローテーションは、日次で実行し、14世代保持する設定としています。
compressを指定し、ローテーション済みのログをgzip形式で圧縮するようにしています。
また、delaycompressを指定して、直前にローテーションしたログを圧縮しないようにしています。
ローテーション後に新規作成するログファイルのパーミッション、所有者、およびグループも指定しています。

※今回はテスト用の仮設定のため、copytruncateは設定していません。

SNMPトラップログのローテーション設定

# SNMPトラップログのローテーション設定ファイルを作成
[root@vm-zabbix-01 ~]#
vi /etc/logrotate.d/snmptrapd

/var/log/snmptrap/snmptrap.log {
      daily
      rotate 14

      missingok
      notifempty

      compress
      delaycompress
      dateext

      create 0664 root zabbix
}

# logrotateコマンドでログを強制ローテーション
[root@vm-zabbix-01 ~]#
logrotate -vf /etc/logrotate.d/snmptrapd

reading config file /etc/logrotate.d/snmptrapd
Reading state from file: /var/lib/logrotate/logrotate.status
Allocating hash table for state file, size 64 entries
Creating new state

Creating new state

Handling 1 logs

rotating pattern: /var/log/snmptrap/snmptrap.log forced from command line (14 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/snmptrap/snmptrap.log
Now: 2026-09-05 04:30
Last rotated at 2026-09-05 04:00
log needs rotating
rotating log /var/log/snmptrap/snmptrap.log, log->rotateCount is 14
dateext suffix '-20260905’
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’
set default create context to system_u:object_r:snmpd_log_t:s0
glob finding logs to compress failed
glob finding old rotated logs failed
set default create context to system_u:object_r:snmpd_log_t:s0
renaming /var/log/snmptrap/snmptrap.log to /var/log/snmptrap/snmptrap.log-20260905
creating new /var/log/snmptrap/snmptrap.log mode = 0664 uid = 0 gid = 989
set default create context to system_u:object_r:logrotate_var_lib_t:s0

# SNMPトラップのテストコマンドを実行してログへの書き込みを確認
[root@vm-zabbix-01 ~]# snmptrap -v 2c -c tama-negi localhost:162 " .1.3.6.1.6.3.1.1.5.3 ifIndex.1 i 1 ifAdminStatus.1 i 1 ifOperStatus.1 i 2
[root@vm-zabbix-01 ~]#
cat /var/log/snmptrap/snmptrap.log
2026-09-05T04:32:28+0000 ZBXTRAP 127.0.0.1
PDU INFO:
version 1
messageid 0
notificationtype TRAP
errorstatus 0
requestid 2134608297
community tama-negi
errorindex 0
transactionid 3
receivedfrom UDP: [127.0.0.1]:52624->[127.0.0.1]:162
VARBINDS:
DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (1751351) 4:51:53.51
SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkDown
IF-MIB::ifIndex.1 type=2 value=INTEGER: 1
IF-MIB::ifAdminStatus.1 type=2 value=INTEGER: 1
IF-MIB::ifOperStatus.1 type=2 value=INTEGER: 2

[root@vm-zabbix-01 ~]#
ls -alh /var/log/snmptrap/
total 12K
drwxr-sr-x. 2 root zabbix 55 Sep 5 04:30 .
drwxr-xr-x. 13 root root 4.0K Sep 5 00:58 ..
-rw-rw-r–. 1 root zabbix 763 Sep 5 04:32 snmptrap.log
-rw-rw-r–. 1 root zabbix 762 Sep 5 03:26 snmptrap.log-20260905

アイテムを設定していない場合はマッチしないSNMPトラップとしてzabbix_server.logに記録される

SNMPトラップに対応するアイテムが設定されていない場合、受信したSNMPトラップはマッチしないSNMPトラップとしてzabbix_server.logに記録されます。
この設定は、管理の一般設定にあるその他で、マッチしないSNMPトラップをログに記録から変更できます。

※アイテム設定されている場合には、zabbix_server.logには記録されません。

マッチしないSNMPトラップの場合

# SNMPトラップのテストコマンドを実行
[root@vm-zabbix-01 ~]# snmptrap -v 2c -c tama-negi localhost:162 " .1.3.6.1.6.3.1.1.5.3 ifIndex.1 i 1 ifAdminStatus.1 i 1 ifOperStatus.1 i 2
# Zabbix Serverのログを確認

[root@vm-zabbix-01 ~]#
tail -f /var/log/zabbix/zabbix_server.log
16705:20260905:071446.156 unmatched trap received from “127.0.0.1": 2026-09-05T07:14:45+0000 PDU INFO:
messageid 0
version 1
notificationtype TRAP
errorstatus 0
requestid 1903421154
community tama-negi
errorindex 0
receivedfrom UDP: [127.0.0.1]:53574->[127.0.0.1]:162
transactionid 4
VARBINDS:
DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (2725005) 7:34:10.05
SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkDown
IF-MIB::ifIndex.1 type=2 value=INTEGER: 1
IF-MIB::ifAdminStatus.1 type=2 value=INTEGER: 1
IF-MIB::ifOperStatus.1 type=2 value=INTEGER: 2

管理の一般設定にあるその他の設定パラメータに、マッチしないSNMPトラップをログに記録という設定があります。
この設定にチェックが入っている場合は、アイテムに設定されていないSNMPトラップを受信した際のログがzabbix_server.logに記録されます。

※デフォルトではチェックが入った状態となっています。

マッチしないSNMPトラップに関するログ記録設定(Zabbix ServerでSNMP Trapを受信するための設定手順)

Zabbix ServerでSNMPトラップの受信を確認

どのSNMPトラップのアイテムにも一致しない場合に、そのSNMPトラップを受け取るために使用されるのがsnmptrap.fallbackのアイテムキーです。
今回は、snmptrap.fallbackを利用して、Zabbix ServerでSNMPトラップを受信できているかを確認します。
ローカルからテスト用のSNMPトラップコマンドを実行して確認しています。

Zabbix ServerでSNMPトラップの受信を確認
ホストを作成します。
今回はZabbix Serverのローカルで確認するため、インターフェースには127.0.0.1を設定しています。
またSNMPコミュニティ名も設定します。
ホストを追加します。

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

SNMPトラップを受信するためのホスト設定例(Zabbix ServerでSNMP Trapを受信するための設定手順)
アイテムを作成します。
タイプにはSNMPトラップ、キーにはsnmptrap.fallbackを選択します。
データ型にはログを指定します。
SNMPトラップを受信するためのアイテム設定例(Zabbix ServerでSNMP Trapを受信するための設定手順)
テスト用のSNMPトラップコマンドを実行すると、Zabbix ServerでSNMPトラップを受信できていることが確認できます。 SNMPトラップの受信を最新データで確認(Zabbix ServerでSNMP Trapを受信するための設定手順)
SNMPトラップの受信内容をヒストリで確認(Zabbix ServerでSNMP Trapを受信するための設定手順)

※ログ時間のずれは、Linux OSの設定がUTCとなっているためです。

ZabbixでSNMPトラップ監視するための設定手順については、こちらで紹介しています。

—広告—

最後に

今回は、ZabbixサーバーでSNMPトラップを受信するために必要となるサーバー側の設定手順を確認しました。
Zabbix単体ではSNMPトラップを受信できないため、snmptrapdやzabbix_trap_receiver.plなどの設定が必要なことが確認できました。
また、その他にもSELinuxの設定などにも注意が必要となることを確認できました。

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

WindowsからSNMPトラップを送信する方法については、こちらで紹介しています。
ログオンに関連するイベントログを例に、SNMPトラップを送信する方法を確認しています。

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

Zabbix エージェントのインストールやホストの追加手順については、こちらで紹介しています。

Zabbixのインストール関連の手順については、こちらで紹介しています。

スポンサーリンク