snmpの動作確認をするための設定あれこれ
機器に設定したsnmpの設定が正しいかを簡単に確認するためのメモ
snmpwalkで取りに行き、snmptrapdで受信したメッセージを出力します。
環境はこんな感じ
- CentOS7.4(minimal install) ※firewalldは停止
パッケージをインストールする
snmpで値を取得するためにnet-snmp-utilsを、trapを受信するためにnet-snmpをインストールします。
# yum install net-snmp net-snmp-utils (中略) perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7 完了しました!
snmpwalkで値を取得する
あらかじめ設定していたvyOS(192.168.56.254)に対してSNMPで値を取得できるか確認します。
# snmpwalk -v 1 -c local-com 192.168.56.254 | head SNMPv2-MIB::sysDescr.0 = STRING: Vyatta VyOS 1.1.7 SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.30803 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1762491) 4:53:44.91 SNMPv2-MIB::sysContact.0 = STRING: root SNMPv2-MIB::sysName.0 = STRING: vyos SNMPv2-MIB::sysLocation.0 = STRING: Unknown SNMPv2-MIB::sysServices.0 = INTEGER: 14 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-SMI::transmission.131 SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance # snmpwalk -v 2c -c local-com 192.168.56.254 | head SNMPv2-MIB::sysDescr.0 = STRING: Vyatta VyOS 1.1.7 SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.30803 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1766231) 4:54:22.31 SNMPv2-MIB::sysContact.0 = STRING: root SNMPv2-MIB::sysName.0 = STRING: vyos SNMPv2-MIB::sysLocation.0 = STRING: Unknown SNMPv2-MIB::sysServices.0 = INTEGER: 14 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-SMI::transmission.131 SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance
snmptrapdでTrapを受信する
snmptrapを受信してログに吐き出すようにします。
# vi /etc/snmp/snmptrapd.conf 以下を追記 ## v1/v2設定(認証なし) disableAuthorization yes ## v3の設定 createUser -e 0x8000000001020304 username SHA password AES password authUser log,execute,net local-com
snmptrapdが起動するときにログを個別に出力できるようにします。
ついでにプライベートmibを読み込めるようにもしています。
2020/4/21 起動オプションを書くファイル名が誤っていたため修正
# mkdir /usr/share/snmp/privatemibs (必要に応じてこのフォルダにプライベートmibを追加) # vi /etc/sysconfig/snmptrapd 以下を追記 OPTIONS="-A -Lf /var/log/snmptrapd.log -M /usr/share/snmp/mibs:/usr/share/snmp/privatemibs -m all -p /var/run/snmptrapd.pid"
snmptrapdを起動します。
# systemctl start snmptrapd # systemctl status snmptrapd ● snmptrapd.service - Simple Network Management Protocol (SNMP) Trap Daemon. Loaded: loaded (/usr/lib/systemd/system/snmptrapd.service; disabled; vendor preset: disabled) Active: active (running) since 土 2017-11-25 23:49:13 JST; 4s ago Main PID: 1021 (snmptrapd) CGroup: /system.slice/snmptrapd.service mq1021 /usr/sbin/snmptrapd -Lf /var/log/snmptrapd.log -M /usr/shar... 11月 25 23:49:13 localhost.localdomain systemd[1]: Starting Simple Network M... 11月 25 23:49:13 localhost.localdomain systemd[1]: Started Simple Network Ma... Hint: Some lines were ellipsized, use -l to show in full. # systemctl enable snmptrapd Created symlink from /etc/systemd/system/multi-user.target.wants/snmptrapd.service to /usr/lib/systemd/system/snmptrapd.service.
snmptrapを構築したサーバ(192.168.56.202)に送信して受信できるか確認します。
# snmptrap -v 1 -c local-com 192.168.56.202 .1.3.6.1.4.1.8072.99999 '' .1.3.6.1.4.1.8072.99999.1 s "Test Message" # snmptrap -v 2c -c local-com 192.168.56.202 '' .1.3.6.1.4.1.8072.99999 .1.3.6.1.4.1.8072.99999.1 s 'Test Mesage' # snmptrap -e 0x8000000001020304 -v 3 -l authPriv -u username -a sha -A password -x AES -X password 192.168.56.202 0 linkUp.0 # tailf /var/log/snmptrapd.log NET-SNMP version 5.7.2 2017-11-26 00:22:02 192.168.56.201(via UDP: [192.168.56.201]:41014->[192.168.56.202]:162) TRAP, SNMP v1, community local-com NET-SNMP-MIB::netSnmp.99999 Cold Start Trap (0) Uptime: 0:00:00.00 2017-11-26 00:22:02 <UNKNOWN> [UDP: [192.168.56.201]:39396->[192.168.56.202]:162]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2349656) 6:31:36.56 SNMPv2-MIB::snmpTrapOID.0 = OID: NET-SNMP-MIB::netSnmp.99999 NET-SNMP-MIB::netSnmp.99999.1 = STRING: "Test Mesage" 2017-11-26 00:22:03 <UNKNOWN> [UDP: [192.168.56.201]:51308->[192.168.56.202]:162]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::snmpTrapOID.0 = OID: IF-MIB::linkUp.0