Windowsサーバでトラフィックを監視してみた(ディスカバリ+依存アイテム)

Windowsサーバでトラフィックを監視してみた(ディスカバリ+依存アイテム)

はじめに

Windowsサーバでディスカバリ機能を使用してトラフィックを監視します。
依存アイテムを使用して監視データの取得頻度を減らします。これにより監視のパフォーマンスを向上させることができます。

環境

Zabbixサーバ

OS:CentOS 8.2.2004
Apache:2.4.37
PHP:7.2.25
MariaDB:10.3.17
Zabbix Server:5.0.2
Zabbix Agent:5.0.2

 

検証クライアント

OS:Windows Server2019

操作手順

Zabbixの管理コンソールにサインインします。

 

テンプレートを作成する

左サイドバーから [設定] - [テンプレート] をクリックします。
「テンプレートの作成」ボタンをクリックします。
以下の通り入力します。
テンプレート名:T_Traffic_15
グループ:Templates
「追加」ボタンをクリックします。

 

テンプレートの作成が完了しました。
これから作成したテンプレートに対して設定を追加していきます。

 

アイテムの作成

テンプレートの「アイテム」をクリックします。
Windowsサーバでトラフィックを監視してみた(ディスカバリ+依存アイテム)

 

「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:Network interfaces WMI get
タイプ:Zabbixエージェント
キー:wmi.getall[root\cimv2,"select * from win32_networkadapter where PhysicalAdapter=True"]
データ型:テキスト
監視間隔:5m
アプリケーションの作成:Zabbix raw Items
「追加」ボタンをクリックします。

 

ディスカバリの作成

テンプレートの「ディスカバリ」をクリックします。
Windowsサーバでトラフィックを監視してみた(ディスカバリ+依存アイテム)

 

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

右上の「ディスカバリルールの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:Network interfaces discovery
タイプ:依存アイテム
キー:net.if.discovery
マスターアイテム:Network interfaces WMI get
存在しなくなったリソースの保持期間:30d

 

メニュー上で「保存前処理」をクリックします。
追加リンクをクリックします。
名前:JavaScript
パラメータ:
output = JSON.parse(value).map(function(net){
return {
"{#IFNAME}": net.Name,
"{#IFDESCR}": net.Description,
"{#IFPHYSICALADAPTER}": net.PhysicalAdapter,
"{#IFALIAS}" : net.NetConnectionID,
"{#IFNETENABLED}": net.NetEnabled,
"{#IFNETSTATUS}": net.NetConnectionStatus,
"{#IFSPEED}": net.Speed
}})
return JSON.stringify({"data": output})

 

再度、追加リンクをクリックします。
名前:指定秒内に変化がなければ破棄
パラメータ:1h
「追加」ボタンをクリックします。

 

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

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Inbound traffic
タイプ:Zabbixエージェント
キー:net.if.in["{#IFNAME}"]
データ型:数値(整数)
単位:bps
監視間隔:5m
ヒストリの保存期間:7d
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:1秒あたりの差分
2:名前:乗数
  パラメータ:8
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Outbound traffic
タイプ:Zabbixエージェント
キー:net.if.out["{#IFNAME}"]
データ型:数値(整数)
単位:bps
監視間隔:5m
ヒストリの保存期間:7d
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:1秒あたりの差分
2:名前:乗数
  パラメータ:8
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Inbound packets discarded
タイプ:Zabbixエージェント
キー:net.if.in["{#IFNAME}",dropped]
データ型:数値(整数)
監視間隔:5m
ヒストリの保存期間:7d
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:1秒あたりの差分
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Outbound packets discarded
タイプ:Zabbixエージェント
キー:net.if.out["{#IFNAME}",dropped]
データ型:数値(整数)
監視間隔:5m
ヒストリの保存期間:7d
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:1秒あたりの差分
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Inbound packets with errors
タイプ:Zabbixエージェント
キー:net.if.in["{#IFNAME}",errors]
データ型:数値(整数)
監視間隔:5m
ヒストリの保存期間:7d
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:1秒あたりの差分
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Outbound packets with errors
タイプ:Zabbixエージェント
キー:net.if.out["{#IFNAME}",errors]
データ型:数値(整数)
監視間隔:5m
ヒストリの保存期間:7d
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:1秒あたりの差分
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Interface type
タイプ:依存アイテム
キー:net.if.type["{#IFNAME}"]
マスターアイテム:T_Traffic_15: Network interfaces WMI get
データ型:数値(整数)
監視間隔:5m
ヒストリの保存期間:7d
トレンドの保存期間:トレンドを保存しない
値のマッピング:Win32_NetworkAdapter::AdapterTypeId
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:JSONPath
  パラメータ:$[?(@.Name == "{#IFNAME}")].AdapterTypeId.first()
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Operational status
タイプ:依存アイテム
キー:net.if.status["{#IFNAME}"]
マスターアイテム:T_Traffic_15: Network interfaces WMI get
データ型:数値(整数)
監視間隔:5m
ヒストリの保存期間:7d
トレンドの保存期間:トレンドを保存しない
値のマッピング:Win32_NetworkAdapter::NetConnectionStatus
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:JSONPath
  パラメータ:$[?(@.Name == "{#IFNAME}")].NetConnectionStatus.first()
「追加」ボタンをクリックします。

 

「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:{#IFNAME}({#IFALIAS}): Speed
タイプ:依存アイテム
キー:net.if.speed["{#IFNAME}"]
マスターアイテム:T_Traffic_15: Network interfaces WMI get
データ型:数値(整数)
単位:bps
監視間隔:5m
ヒストリの保存期間:7d
トレンドの保存期間:トレンドを保存しない
アプリケーションのプロトタイプ:{#IFNAME}({#IFALIAS})

 

保存前処理のタブをクリックします。
追加リンクをクリックします。
1:名前:JSONPath
  パラメータ:$[?(@.Name == "{#IFNAME}")].Speed.first()
  失敗時のカスタマイズ:チェックを入れる
  値を設定:0
「追加」ボタンをクリックします。

 

テンプレートをホストにリンクする

左サイドバーから [設定] - [ホスト] をクリックします。
作成したテンプレートをリンクするホストを選択します。ここでは「WindowsServer2019」を選択しています。
「テンプレート」をクリックします。
新規テンプレートをリンク欄で、「T_Traffic_15」をリンクします。

動作確認

[監視データ]-[最新データ]をクリックします。
ホストは「Windows Server2019」を選択し、「適用」ボタンをクリックします。

 

トラフィック情報が取得できています。
Windowsサーバでトラフィックを監視してみた(ディスカバリ+依存アイテム)

トップへ戻る