環境
- Zabbix4.0
- CentOS7.5 minimal
Zabbixサーバー(ホストOS)の設定
- SELinux = disabled
- Firewallで開けてるポート = 80/tcp,443/tcp,162/udp
インストールするもの
- epel-release
- snmptt
- net-snmp-perl
- perl-Sys-Syslog
SNMP TrapをZabbixで監視する流れ
- ZABBIXサーバー(ホストOS)のSNMPTrapdでトラップを受け取る
- SNMPTrapdで受け取ったトラップはSNMPTTによってZABBIXに渡せるデータフォーマットに変換
- SNMPTTのlogに変換されたSNMPTrapをZABBIXが読み取る
やること
SNMPTrapdで受信したSNMPTrapをSNMPTTに渡すように設定
/etc/snmp/snmptrapd.conf
OPTIONS="-Ls6 -p /var/run/snmptrapd.pid"
SNMPTTに渡すSNMPTrapをOIDからシンボル名に変更しないように設定
/etc/snmp/snmptt.ini
mode = daemon
net_snmp_perl_enable = 1
net_snmp_perl_best_guess = 2
date_time_format = %Y/%m/%d %H:%M:%S
log_file = /var/log/snmptt/snmptt.log
mibs_environment = ALL
Zabbixに表示するSNMPTrapフォーマットをとりあえず適当に
/etc/snmp/snmptt.conf
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $*
ZabbixからSNMPTTを見れるようにConfig設定
/etc/zabbix/zabbix_server.conf
SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1
設定の反映
$ systemctl enable snmptrapd
$ systemctl start snmptrapd
$ systemctl enable snmptt
$ systemctl start snmptt
$ systemctl restart zabbix-server
確認
SNMPTrap自体が受け取れているかどうか
$ tail -f /var/log/messages
SNMPTTで認識されているか
$ tail -f /var/log/snmptt/snmptt.log
*このファイルが無い場合はSNMPTrapを読み取れてません。SNMPTTで読み取れているとこのファイルは自動生成されます。
ローカルホスト上で適当にSNMPTrapを送ってみる
$ snmptrap -v 2c -c public 127.0.0.1 '' .1.3.6.1.4.1.8072.9999 .1.3.6.1.4.1.8072.9999 s 'TEST'
以上でサーバー側の設定は完了。
あとはZabbixのWebUI上で監視設定するだけです。