はじめに
監視機器でトラップの設定を実施しておくと、障害時に迅速にアラートを上げることができます。
常時監視しておくような機器のステータスやパフォーマンスデータの取得は、ポーリング監視が適していますが、ハードウェアやシステム障害など突発的に発生する障害はSNMPトラップが適しています。
インストール
Net-SNMPをインストールします。
# dnf -y install net-snmp
snmpttをインストールします。
# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf -y install snmptt
Syslogパッケージをインストールします。
# dnf -y install perl-Sys-Syslog
SNMPトラップの設定
snmptrapd.confの設定
snmptrapdで受信したトラップデータをsnmpttに渡す設定を実施します。
# vi /etc/snmp/snmptrapd.conf
以下の2行を追加します。
authCommunity execute public ←コミュニティ名(public)は環境に合わせて設定
traphandle default /usr/sbin/snmptthandler
snmptrapdの設定
snmpttに渡すトラップデータ中のOIDをシンボル名に変換しないよう設定します。
# vi /etc/sysconfig/snmptrapd
以下の1行を追加します。
OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid"
snmptt.iniの設定
snmpttの初期設定を実施します。
# vi /etc/snmp/snmptt.ini
該当箇所を以下の通り設定します。
mode = daemon
log_file = /var/log/snmptt/snmptt.log
date_time_format = %Y/%m/%d %H:%M:%S
snmptt.confの設定
受信したトラップのデフォルトフォーマットを指定します。
# vi /etc/snmp/snmptt.conf
以下の2行を追加します。
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $*
snmp.confの設定
拡張MIBをすべて読み込むように設定します。
# vi /etc/snmp/snmp.conf
以下の2行を追加します。
MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/mibs/PrivateMIBS
MIBS all
サービスの自動起動/サービスの起動
# systemctl enable --now snmptt snmptrapd
トラップのテスト
SNMPトラップの受信確認をします。
# snmptrap -v 2c -c public localhost '' .1.3.6.1.4.1.8072.99999 .1.3.6.1.4.1.8072.99999.1 s "Test Trap"
snmptrapdとsnmpttの設定が正しければ、/var/log/snmptt/snmptt.log に次のメッセージが記録されます。
2017/10/15 22:22:20 .1.3.6.1.4.1.8072.99999 Normal "General event" localhost - ZBXTRAP 127.0.0.1 Test Trap
Zabbixサーバの設定
snmpttで出力されたログファイルを読み込むためにZabbixサーバの設定を実施します。
# vi /etc/zabbix/zabbix_server.conf
該当箇所を以下の通り設定します。
SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1
設定が完了したら、Zabbixサーバのサービスを再起動します。
# service zabbix-server restart