如何在 Cacti 中監控 Linux 伺服器的丟包(Net SNMP)
我正在測試我使用iPerf和UDP 協議的網路基礎設施。
我正在執行Cacti一個開源的、基於 Web 的網路監控和繪圖。Linux 伺服器中啟用了SNMP伺服器。
首先,到目前為止,Cacti能夠監控已經存在的所有模板圖表(例如,記憶體、CPU、平均負載、介面統計資訊)但我找不到
Packet loss graph
介面的圖表。它應該類似於 Cisco 路由器In/Out Errors/Discarded Packets
,但可能使用不同的符號。有人有想法嗎?其次,我還想繪製/繪製
netstat
顯示的內容。例如netstat -su
顯示:Udp: 1354844 packets received 0 packets to unknown port received. 5854 packet receive errors 1360713 packets sent RcvbufErrors: 5854
我想繪製發送、接收數據包和數據包接收錯誤的圖表。這可能與
SNMP NETSTAT
. 換句話說,我想繪製UDP packet loss。是否有任何 python、Perl 或 bash 腳本可用於收集
SNMP NETSTAT
UDP 數據包的數據?如果是 SNMP 查詢會更好。我試過
snmpnetstat -v2c -c public -Cs -Cp udp 172.0.1.11
它只顯示的地方udp:
然後,我嘗試
snmpnetstat -v2c -c public -Cs 172.0.1.11
了但它沒有顯示任何值。tcp: udp: .... - output errors icmp6 histogram: input output type
第二次編輯
我已經編寫了bash 腳本,它會在我執行時準確地返回我想要的輸出,例如
./udp_netstat.sh 172.0.1.11
:#!/bin/bash rs="$(snmpnetstat -v2c -c public -Cs -Cp udp "$@")" # You have to quote "$rs" so newlines don't break ReceivedDatagrams="$(echo "$rs" | cut -d$'\n' -f2 | tr -s ' '| cut -d' ' -f2)" InvalidPort="$(echo "$rs" | cut -d$'\n' -f3 | tr -s ' '| cut -d' ' -f2)" DroppedDatagrams="$(echo "$rs" | cut -d$'\n' -f4 | tr -s ' '| cut -d' ' -f2)" DatagramRequests="$(echo "$rs" | cut -d$'\n' -f5 | tr -s ' '| cut -d' ' -f2)" echo "Received Datagrams:$ReceivedDatagrams Invalid port:$InvalidPort Dropped datagrams:$DroppedDatagrams Datagram requests:$DatagramRequests"
該值為
"$@"
cacti 的主機名設備bash 腳本的輸出是:
Received Datagrams:258 Invalid port:63 Dropped datagrams:0 Datagram requests:471520
從數據輸入法開始,我給出了以下路徑,
/usr/share/cacti/site/scripts/udp_netstat <hostname>
然後根據 bash 文件輸出添加了輸入欄位和輸出。對於數據源,我也根據 bash 文件輸出添加了數據源項,並將數據源類型設置為COUNTER。然後,我繼續到圖表模板,在其中添加了我擁有的每個輸出的行。
它似乎在添加新腳本的工作流程中,但是,到目前為止,圖中沒有顯示任何內容。
我假設輸入字元串有錯誤。
一種選擇是使用軟體包
snmpnetstat
附帶的命令。snmp
它允許使用
-Cs
和-Cp
參數查詢每個協議的統計資訊:snmpnetstat
$$ COMMON OPTIONS $$ $$ -Ca $$ $$ -Cn $$ $$ -Cs $$ $$ -Cp protocol $$代理人 -Cs顯示每個協議的統計資訊。
-Cp 協議顯示有關協議的統計資訊
https://www.systutorials.com/docs/linux/man/1-snmpnetstat/
例如:
$ snmpnetstat -v2c -c public -Cs -Cp udp 192.168.0.49 udp: 1052 total datagrams received 1167 datagrams to invalid port 0 datagrams dropped due to errors 1152 output datagram requests
從那裡您可以根據 Cacti 要求解析輸出和/或格式化它。
編輯 :
如果它沒有返回這樣的值:
tcp: udp: ip: - datagrams input - octets received - hdr errors input - no routes input ....
這是因為您必須允許在您的 snmp 代理配置文件中查詢這些統計資訊 (OID)。
例如
/etc/snmp/snmpd.conf
添加:
- 僅適用於 UDP:
view systemonly included .1.3.6.1.2.1.7
- 對全部 :
view systemonly included .1.3.6.1.2.1
參考:https ://oidref.com/1.3.6.1.2.1
然後重新啟動您的 snmp 代理以應用更改。