SNMPトラップ処理ツールのインストール

はじめに

監視機器でトラップの設定を実施しておくと、障害時に迅速にアラートを上げることができます。常時監視しておくような機器のステータスやパフォーマンスデータの取得は、ポーリング監視が適していますが、ハードウェアやシステム障害など突発的に発生する障害はSNMPトラップが適しています。

インストール

Net-SNMPをインストールします。
# yum install net-snmp

snmpttをインストールします。
# yum install snmptt

Syslogパッケージをインストールします。
# yum 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 $*

サービスの起動

# systemctl start snmptt snmptrapd

サービスの起動確認
# systemctl status snmptt snmptrapd

サービスの自動起動

# systemctl enable snmptt snmptrapd

サービスの自動起動を確認
# systemctl is-enabled 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サーバのサービスを再起動します。
# systemctl restart zabbix-server

タイトルとURLをコピーしました