我正在测试我使用的网络基础设施增强型和UDP 协议。
我在跑仙人掌一个开源的、基于网络的网络监控和绘图软件。简单网络管理协议服务器在 Linux 服务器中启用。
首先,到目前为止,仙人掌能够监视所有已存在的模板图表(例如,内存、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 数据包丢失。
是否有任何 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 文件输出添加了数据源项,并将数据源类型设为柜台。然后,我继续到图形模板,在那里我添加了我拥有的每条输出的行。
它似乎处于添加新脚本的工作流程中,但是到目前为止图表中还没有显示任何内容。
我认为输入字符串有错误。
答案1
一种选择是使用包snmpnetstat
中附带的命令snmp
。
它允许使用-Cs
和-Cp
参数查询每个协议的统计数据:
snmpnetstat [常用选项] [-Ca] [-Cn] [-Cs] [-Cp 协议] 代理
-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 代理以应用更改。