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

Others,Zabbix

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

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

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

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

スポンサーリンク

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

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

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

SNMPトラップ

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

Zabbix ServerでのSNMP Trapを受信して処理する流れ

Zabbixサーバー側でSNMP Trapを受信する際の処理の流れです。

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

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

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

Zabbix ServerでSNMP Trapを受信して監視するために必要な、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 Trapログ保存先ディレクトリやログファイルを作成

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

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

# SNMP Trapのログ保存先ディレクトリとログファイルを作成
[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 Trap受信、整形スクリプト(zabbix_trap_receiver.pl)をダウンロードします。
zabbix_trap_receiver.plは、snmptrapdが受信したSNMP Trapを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 Trapログの出力先を指定します。
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 Trapログの出力先を設定
$SNMPTrapperFile = '/var/log/snmptrap/snmptrap.log’;

snmptrapd.confファイルの設定

snmptrapd.confで、受信を許可するコミュニティ名と、ZabbixのSNMP Trap受信、整形スクリプト(zabbix_trap_receiver.pl)のパスを指定します。
今回は、コミュニティ名tama-negiのSNMP Trapだけを許可するようにしています。
なお、コミュニティ名などによる認証チェックを無効化し、すべてのSNMP Trapを受信する場合は、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 Trapを受信するために、snmptrapdサービスの自動起動を有効化し、サービスを起動します。
SNMP Trapの受信ポートである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 Trapログへの書き込みがSELinuxで拒否されることがある

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

snmptrapdがSNMP Trapログファイルへ書き込みできるか確認

# SNMP Trapのテストコマンドを実行
[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 TrapログファイルのSELinuxコンテキストを変更

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

SNMP Trapログファイルの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 Trapログ保存先とファイルに対する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 Trapの受信テストを行ってSNMP Trapログ書き込みを確認

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

snmptrapdがSNMP Trapログファイルへ書き込みできるか確認

# SNMP Trapのテストコマンドを実行
[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 Trap 受信設定

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

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

Zabbix ServerのSNMP Trap 受信設定

# 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 Trapログ読み取りをSELinuxにより拒否されることがある

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

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 Trapログの読み取りを許可するSELinuxポリシーモジュールを作成、適用

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

Zabbix ServerがSNMP Trapログを読み取れるように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 trap ログの格納ディレクトリを検索できるようにする
allow zabbix_t snmpd_log_t:dir search;

# Zabbix Server が SNMP trap ログを読むだけ許可する
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 Trapログのローテーション設定および動作確認

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

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

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

SNMP Trapログのローテーション設定

# SNMP Trapログのローテーション設定ファイルを作成
[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 Trapのテストコマンドを実行してログへの書き込みを確認
[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 Trapとしてzabbix_server.logに記録される

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

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

マッチしないSNMP Trapの場合

# SNMP Trapのテストコマンドを実行
[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 Trapを受信した際のログがzabbix_server.logに記録されます。

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

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

Zabbix ServerでSNMP Trapの受信を確認

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

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

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

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

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

—広告—

最後に

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

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

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

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

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

スポンサーリンク