我有一台 CentOS 伺服器(7.2)。我正在嘗試將其配置為 SNMP 陷阱接收器。
在我的 snmptrapd 配置中,我呼叫一個非常基本的 shell 腳本來決定是否收到陷阱:
[root@centos-Main snmp]# cat /etc/snmp/snmptrapd.conf
authCommunity log,execute,net public
traphandle default /etc/snmp/mydummyhandler.sh
這是 mydummyhandler.sh 的樣子:
[root@centos-Main snmp]# cat mydummyhandler.sh
echo "Trap Received" >> /var/log/snmptraplog.txt
但是,當從 Juniper 路由器發送陷阱時,我的 snmptrapd 不會處理它,也不會向 /var/log/snmptraplog.txt 寫入任何內容。
我從本地主機本身發送了一些測試陷阱,它完全按預期工作。此外,為了檢查這一點,我嘗試從另一個 CentOS 伺服器發送測試陷阱,如下所示:
snmptrap -v 2c -c public centos-Main .1.3.6.1.6.3.1.1.5.3 .1.3.6.1.6.3.1.1.5.3 \
> ifIndex i 2 ifAdminStatus i 1 ifOperStatus i 1
並且它也按預期進行了處理:
[root@centos-Main snmp]# cat /var/log/snmptraplog.txt
Trap Received
我在陷阱接收伺服器的連接埠 162 上執行 tcpdump,發現從 Juniper 交換器發送的陷阱正在到達伺服器。但由於某種原因,它會默默地忽略來自 Juniper 設備的傳入陷阱,而不進行進一步處理。
以下是我從 Juniper 設備發送陷阱時看到的內容:
[root@centos-Main snmp]# tcpdump -i enp0s3 port 162
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
16:54:14.521820 IP 192.168.0.91.58376 > centos-Main.snmptrap: C=VINOD V2Trap(217) system.sysUpTime.0=1768202 S:1.1.4.1.0=E:2636.4.13.0.1 E:2636.3.37.1.1.0="'Event-Trap'" E:2636.3.37.1.2.1.2.1="'event'" E:2636.3.37.1.2.1.3.1="''" E:2636.3.37.1.2.1.2.2="'message'" E:2636.3.37.1.2.1.3.1="''" S:1.1.4.3.0=E:2636.1.1.1.2.1
另外,為了進行比較,我貼了從另一台伺服器成功接收陷阱的 tcpdump 輸出:
[root@centos-Main snmp]# tcpdump -i enp0s3 port 162
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
16:53:23.272673 IP 192.168.0.105.49182 > centos-Main.snmptrap: V2Trap(87) S:1.1.4.1.0=S:1.1.5.3 interfaces.ifTable.ifEntry.ifIndex=2 interfaces.ifTable.ifEntry.ifAdminStatus=1 interfaces.ifTable.ifEntry.ifOperStatus=1
答案1
您已設定snmptrapd
為僅接受帶有團體名稱的陷阱public
:
[root@centos-Main snmp]# cat /etc/snmp/snmptrapd.conf
authCommunity log,execute,net public
但來自 Juniper 設備的陷阱使用團體名稱VINOD
:
[root@centos-Main snmp]# tcpdump -i enp0s3 port 162
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
16:54:14.521820 IP 192.168.0.91.58376 > centos-Main.snmptrap: C=VINOD V2Trap(217) ...
^^^^^^^
您應該將 Juniper 設備的陷阱團體名稱配置為public
,或在文件中添加另一authCommunity
行snmptrapd.conf
:
authCommunity log,execute,net VINOD