【Zabbix】LLD(ローレベルディスカバリ)でトラフィック監視

zabbix-lld-traffic-util

前回はZabbixLLDローレベルディスカバリ)機能で、ディスク使用率の監視をしましたが、今回はこの機能を使用してネットワークトラフィック監視を設定します。
ディスクと同じように、LLD自動的にネットワークインターフェースを検出して、一括で送受信トラフィック監視の設定ができます。

LLDでネットワークトラフィック監視

ディスカバリルールの作成

ネットワークトラフィック監視で設定するLLDローレベルディスカバリ)は、サーバーに存在するネットワークインターフェース自動で検出するディスカバリルールと、検出されたそれぞれのネットワークインターフェースを監視するためのアイテムのプロトタイプの設定を行います。

トラフィック監視で必要なディスカバリ設定
  • ディスカバリルール
  • アイテムのプロトタイプ

その他のプロトタイプの中でも、特にトラフィック監視グラフのプロトタイプを使うのにとても適していますが、ここでは割愛させていただきます。

ディスカバリルールの作成

初めに、自動でネットワークインターフェースを検出するためのディスカバリルールを作成します。
ここで設定した内容に従って、Zabbix自動的にネットワークインターフェースを検出します。

  • [設定] → [テンプレート(またはホスト)]に移動します
  • テンプレートの行のディスカバリをクリックします
  • 画面の右上隅にある[ディスカバリールールの作成]をクリックします
  • フォームにディスカバリルールのパラメーターを入力します

設定内容は以下の通りです。
記載のない設定に関しては自身の環境に置き換えて設定してください。(デフォルトで問題ないです)

設定項目設定値説明・注意点
名前<ネットワークインターフェースの検出>(任意の名前)
タイプZabbixエージェントZabbixエージェント(アクティブ)も可
キーnet.if.discovery(任意のキー)
監視間隔<1h>滅多に変更しないので長くてOK
ディスカバリルール

設定項目の「タイプ」以外は任意になりますね。。
こちらはLinuxもWindowsも共通設計になりますが、次項の「フィルタ」はご注意ください。

フィルタ

ディスカバリルールでは、フィルタがとても重要になってきます。
例えば、なんのフィルタもかけずにネットワークインターフェースを検出すると、監視不要なものまで全て検出してしまい、視認性が悪くなってしまうと共に、それを複数のホストで監視しようものなら、Zabbixの負荷も高くなってしまいます。
幸い、既に標準のテンプレートでも用意されていますので、そちらを拝借しましょう!

マクロ条件正規表現正規表現マクロの内容
{#IFNAME}一致する{$NET.IF.IFNAME.MATCHES}^.*$
{#IFNAME}一致しない{$NET.IF.IFNAME.NOT_MATCHES}(^Software Loopback Interface|^NULL[0-9.]$|^[Ll]o[0-9.]$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12})
フィルタ(Linux・Windows共通)

上記のネットワークインターフェースを検出するためのフィルタLinuxWindowsも共通です。

以上でディスカバリルールの設定は完了です!
次に、検出したネットワークインターフェースを監視をするために「アイテムのプロトタイプ」を作成していきましょう。

アイテムのプロトタイプの作成

アイテムのプロトタイプでは、Zabbixで自動的に検出した全てのディスクネットワークインターフェース監視設定を共通的に行うことができます。
例えば、ネットワークインターフェースが複数ある場合、LLDを利用しなければインターフェースの数だけアイテムを設定しなければなりませんが、アイテムのプロトタイプを使えば、それぞれのLLDで検出したインターフェースアイテムZabbixが自動で作成します!

受信トラフィック監視

受信送信のどちらのトラフィック監視も設定しておきます。
アイテムキー以外は受信も送信も同じ設定になります。(任意の項目は合わせてね!)
まずは受信トラフィック監視です。

設定項目設定値説明・注意点
名前<インターフェイス {#IFNAME}:受信したビット>(任意の名前)※LLDマクロ{#IFNAME}を使用する
タイプZabbixエージェントZabbixエージェント(アクティブ)も可
キーnet.if.in[“{#IFNAME}”]LLDマクロ{#IFNAME}を使用する
データ型数値(整数)ビットで取得するので整数
単位bpsbpsはZabbixが自動で計算する単位の1つ
監視間隔<1m>(任意の間隔。トリガーも考慮する)
ネットワークトラフィック監視(アイテムのプロトタイプ)

単位の「bps」の「b」は大文字と小文字では意味が全く異なるので注意してください。
b」はビット、「B」はバイトになります。

保存前処理

そして、忘れがちな「保存前処理」の設定をします。
アイテムで取得できる値はネットワークトラフィック量の累計になりますので、保存前処理の機能で1秒あたりの差分を計算し、取得した値に8を掛け算1バイト=8ビットなので)します。

名前パラメータ
1秒あたりの差分-(設定なし)
乗数8
保存前処理の設定

送信トラフィック監視

次に、送信トラフィック監視を設定します。
受信トラフィック監視との違いは、任意の名前とアイテムキーだけです。

設定項目設定値説明・注意点
名前<インターフェイス {#IFNAME}:受信したビット>(任意の名前)※LLDマクロ{#IFNAME}を使用する
タイプZabbixエージェントZabbixエージェント(アクティブ)も可
キーnet.if.in[“{#IFNAME}”]LLDマクロ{#IFNAME}を使用する
データ型数値(整数)ビットで取得するので整数
単位bpsbpsはZabbixが自動で計算する単位の1つ
監視間隔<1m>(任意の間隔。トリガーも考慮する)
ネットワークトラフィック監視(アイテムのプロトタイプ)

保存前処理も全く同じになります。

名前パラメータ
1秒あたりの差分-(設定なし)
乗数8
保存前処理の設定

以上です!
トリガーについては、それぞれどのような値を障害イベントとするかによって異なりますので、今回は紹介しません。


Amazonベストセラー

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA