雑木林

頭の中の整理と忘れないための確認メモ

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...

1125 23:49:13 localhost.localdomain systemd[1]: Starting Simple Network M...
1125 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