iPerfおよびUDPプロトコルを使用しているネットワークインフラストラクチャをテストしています。
私はCactiを実行しています。オープンソースのWebベースのネットワーク監視とグラフ化です。 [〜#〜] snmp [〜#〜]サーバーはLinuxサーバーで有効になっています。
まず第一に、これまでのところ、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
で可能ですか。言い換えれば、DPパケット損失をプロットしたいと思います。
UDPパケットのSNMP NETSTAT
のデータを収集するために使用できるpython、Perl、またはbashスクリプトはありますか? 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
2回目の編集
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"
値"$@"
は、サボテンのホスト名デバイス用です
bashスクリプトの出力は次のとおりです:
Received Datagrams:258 Invalid port:63 Dropped datagrams:0 Datagram requests:471520
データ入力方法から始めて、次のパス/usr/share/cacti/site/scripts/udp_netstat <hostname>
を指定し、bashファイルの出力に従って、入力フィールドと出力を追加しました。
データソースについても、bashファイルの出力に応じてデータソース項目を追加し、データソースタイプを[〜#〜] counter [〜#〜]としました。次に、グラフテンプレートに進み、各出力の行を追加しました。
新しいスクリプトを追加するワークフローのようですが、これまでのところグラフには何も表示されていません。
入力文字列に間違いがあると思います。
1つのオプションは、snmpnetstat
パッケージに付属のsnmp
コマンドを使用することです。
-Cs
および-Cp
パラメーターを使用して、プロトコルごとに統計を照会できます。
snmpnetstat [一般的なオプション] [-Ca] [-Cn] [-Cs] [-Cpプロトコル]エージェント
-Csプロトコルごとの統計を表示します。
-Cpprotocolプロトコルに関する統計を表示する
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エージェントを再起動して変更を適用します。