デフォルト作成のグラフ「Network traffic」で表示されるトラフィックの単位修正について
いつも貴重な情報を拝見させて頂き、ありがとうございます。
Zabbixの造詣が深い皆様のお力添えを拝借したく、フォーラムを投稿させて頂きました。
当方、先月より以下環境でのZabbix監視システムのメンテナンスを対応しております。
【Zabbix環境】
HW:物理(CPU:1(コア×4)、メモリ:8GB、HDD:300GB)
OS:CentOS 7.4
パッケージ:zabbix 3.4.6-1
httpd 2.4.6-67
mariadb 5.5.56-2
net-snmp 5.7.2-43
snmptt .4-0.9
監視ホスト:191台
この度、該当システムにおいてNW機器のリプレースを予定しており、
zabbix側で新しい機器の監視動作等を検証しておりますが、その際に表題の件で想定と異なる事象を確認致しました。
帯域量を監視するため、帯域に負荷をかけるフリーソフトの「iperf3」を用いて、
クライアント - サーバ間の過負荷通信をzabbixで検知する検証を行いました。
過負荷通信は5分30秒程度、クライアントからサーバへ「630Mbits/sec」のトラフィックを流し続けるという条件にし、
ネットワーク機器にはトラフィック量を監視するため、通信経路上のチャネルグループポートのイン・アウト両方に対する以下のトリガーを設定しております。
トリガー(障害条件)
({ホスト名:net.if.in[ifHCInOctets.ポート番号].avg(5m)}+ホスト名:net.if.out[ifHCOutOctets.ポート番号].avg(5m)}+{ホスト名:net.if.in[ifHCInOctets.ポート番号].avg(5m)}+{ホスト名:net.if.out[ifHCOutOctets.ポート番号].avg(5m)})>0.6G
検証時は本トリガーによりアラートとして検知することができましたが、
デフォルトテンプレートの「Template Module Interfaces Simple SNMPv2」に含まれるディスカバリルール「Network Interfaces Discovery」により、
自動的に作成されるグラフ「Network traffic」を確認すると65~70Mbpsとなっており、実際の通信量が1桁少ないように見受けられました。
Zabbix側でグラフを表示する際にどのような計算がされているのかは分かりませんが、現状のグラフではトラフィックが全然流れていないように感じるため、
トリガーの単位「0.6G」に合わせたグラフ表示にしたいと考えておりますが、具体的な方法が分からない状況となります。
お手数をお掛け致しますが本件について
皆様のご見解を頂けないでしょうか。
よろしくお願い致します。
TNK - 投稿数: 4671
「Template Module Interfaces Simple SNMPv2」内のディスカバリ
ルールで生成されるネットワークトラフィックを計算する元となっ
ているアイテムは、
ifInOctets
ifOutOctets
などのOIDを使用していませんか?
これらのOIDは、32bitカウンタですので、高速なネットワークでは、
短時間で桁あふれを起こしてしまいます。
Zabbixでは、この値の増加分の差分をもとにトラフィックの計算を
しているのですが、元のカウンタが桁あふれを起こして0に戻って
しまうので、増加分の差分を計算できなくなり、その時点の値を破
棄します。
結果として、取得できるアイテムの値が飛び飛びになってしまいま
すし、正常なトラフィックを計算できません。
SNMPで値を取得している対象の機器が対応しているのであれば、
ifHCInOctets
ifHCOutOctets
を使用するように変更することで改善すると思います。
K.I - 投稿数: 3
TNK様
ご回答ありがとうございます。
「Network Interfaces Discovery」のアイテム情報を確認致しましたところ、
ご指摘頂きました通りに以下のキーが設定されていることが確認できました。
□アイテムのプロトタイプ
名前 キー
Interface {#IFDESCR}: Bits received net.if.in[ifInOctets.{#SNMPINDEX}]
Interface {#IFDESCR}: Bits sent net.if.out[ifOutOctets.{#SNMPINDEX}]
残念ながらリプレース予定のネットワーク機器が手元になく、すぐには実機確認できない状況となりますが、
上記アイテムの設定を変更してトラッフィック量がどのように表示されるか確認し、結果を報告致します。
Interface {#IFDESCR}: Bits received net.if.in[ifHCInOctets.{#SNMPINDEX}]
Interface {#IFDESCR}: Bits sent net.if.out[ifHCOutOctets.{#SNMPINDEX}]
よろしくお願い致します。
K.I - 投稿数: 3
お世話になっております。
TNK様のご指摘通り、ifHCInOctets、ifHCOutOctetsを監視アイテムとして登録することで、
期待通りのトラフィック量がグラフに表示されることが確認できました。
対応方法は色々あると思いますが、当方は「Template Module Interfaces SNMPv2」を使用することで上記アイテムの監視を実装しております。
ご参考までに修正前の「ifInOctets」と修正後の「ifHCInOctets」で表示されるグラフ画像を添付致します。
ご支援ありがとうございました。