ネットワーク全体のトラフィック量を視覚的に確認できるようGrafanaのNetwork Weathermapのプラグインを利用したメモ
やりたかったこと
- 各ネットワーク機器間のトラフィック量を視覚的に表現したい
今回の確認環境
-
各バージョン
- トラフィック取得サーバ:Ubuntu 24.04.1 LTS
- Prometheus, version 2.45.3
- SNMP Exporter, version 0.25.0
- grafana-server, Version 11.5.1
- SNMPの監視対象:VyOS 1.5-rolling-202411070006
- トラフィック取得サーバ:Ubuntu 24.04.1 LTS
-
今回利用したGrafanaのNetwork Weathermapのプラグイン
- ネットワークシュミレータ上の構成
- VyOSを3台設置
- VPC-1からUbuntuサーバにサイズの大きいPINGトラフィックを流し続ける
VPC-1> ping 10.0.0.1 -t -l 10000
- 今回作成したGrafanaのNetwork Weathermap
事前準備
ネットワーク機器(VyOS)側の設定
VyOSのコンフィグは以下を参照
VyOS-Core-1 コンフィグ
set interfaces ethernet eth0 address '10.99.1.1/24'
set interfaces ethernet eth1 address '10.99.2.1/24'
set interfaces ethernet eth3 address '10.0.0.2/24'
set protocols static route 10.0.1.0/24 next-hop 10.99.1.2
set protocols static route 10.0.2.0/24 next-hop 10.99.2.2
set service snmp community public
set system host-name 'VyOS-Core-1'
set system login user vyos authentication encrypted-password '$6$rounds=656000$UG65L/PsThwhFAxh$ykpkjtpWkV/rsZ.PwWTHi5a7DfUDU3ukvZDjy70yNIyGCpzn94bGAcGUjdi/T5YZKiDpKjAB8UWsApemrUSKW0'
set system login user vyos authentication plaintext-password ''
VyOS-Edge-1 コンフィグ
set interfaces ethernet eth0 address '10.99.1.2/24'
set interfaces ethernet eth1 address '10.0.1.2/24'
set protocols static route 0.0.0.0/0 next-hop 10.99.1.1
set service snmp community public
set system host-name 'VyOS-Edge-1'
set system login user vyos authentication encrypted-password '$6$rounds=656000$UG65L/PsThwhFAxh$ykpkjtpWkV/rsZ.PwWTHi5a7DfUDU3ukvZDjy70yNIyGCpzn94bGAcGUjdi/T5YZKiDpKjAB8UWsApemrUSKW0'
set system login user vyos authentication plaintext-password ''
VyOS-Edge-2 コンフィグ
set interfaces ethernet eth0 address '10.99.2.2/24'
set interfaces ethernet eth1 address '10.0.2.2/24'
set protocols static route 0.0.0.0/0 next-hop 10.99.2.1
set service snmp community public
set system host-name 'VyOS-Edge-2'
set system login user vyos authentication encrypted-password '$6$rounds=656000$UG65L/PsThwhFAxh$ykpkjtpWkV/rsZ.PwWTHi5a7DfUDU3ukvZDjy70yNIyGCpzn94bGAcGUjdi/T5YZKiDpKjAB8UWsApemrUSKW0'
set system login user vyos authentication plaintext-password ''
サーバ側準備
サーバのPrometheus・SNMP Exporter・GrafanaのインストールやSNMPなどの設定方法は以下のサイトを確認してください
今回は3台の機器からSNMPでトラフィック取得するのでprometheus.yml
を以下にしてます
(その他設定ファイルは前回と同じ)
global:
scrape_interval: 15s # メトリクスの収集間隔を15秒に設定(デフォルトは1分)
evaluation_interval: 15s # ルール評価の間隔を15秒に設定(デフォルトは1分)
rule_files:
- "snmp_rules.yml" # SNMPのIF情報のsysNameを追加するルールを適用
scrape_configs:
- job_name: "snmp" # SNMP監視用のジョブ名
scrape_interval: 30s # 30秒間隔でメトリクスを収集
static_configs:
- targets:
- 10.0.0.2 # 監視対象のSNMPエージェント(VyOS-Core-1)
- 10.0.1.2 # 監視対象のSNMPエージェント(VyOS-Edge-1)
- 10.0.2.2 # 監視対象のSNMPエージェント(VyOS-Edge-2)
metrics_path: /snmp # SNMP Exporterが提供するメトリクスのエンドポイント
params:
module: [module_ifOctets] # SNMP Exporterの設定で使用するモジュール名
relabel_configs:
- source_labels: [__address__] # ターゲットアドレスを取得
target_label: __param_target # SNMP Exporter用のtargetパラメータに設定
- source_labels: [__param_target] # 変換後のターゲットアドレスを取得
target_label: instance # instanceラベルとして設定
- target_label: __address__
replacement: 127.0.0.1:9116 # SNMP Exporterが動作するローカルアドレスを指定
GrafanaのNetwork Weathermapプラグインをインストール
Ubuntuのサーバ上で以下を実施
grafana-cli plugins install knightss27-weathermap-panel
プラグインインストール後、権限がrootのままのため変更の必要あり
# ll /var/lib/grafana/plugins/
total 20
drwxr-x--- 5 grafana grafana 4096 Feb 11 02:55 ./
drwxr-xr-x 6 grafana grafana 4096 Feb 11 02:52 ../
drwxr-x--- 3 grafana grafana 4096 Feb 8 02:44 grafana-lokiexplore-app/
drwxr-x--- 5 grafana grafana 4096 Feb 8 08:04 grafana-pyroscope-app/
drwxr-xr-x 4 root root 4096 Feb 11 02:55 knightss27-weathermap-panel/
権限を他に合わせて以下のコマンドでgrafanaに変更しプラグインのインストール完了
chown -R grafana:grafana /var/lib/grafana/plugins/
念のためgrafana-serverのリスタートしておく
systemctl restart grafana-server
GrafanaでNetwork Weathermapの選択
送信トラフィックのクエリを作成する
- ②の場所は以下で入力、IFはethのみで、rateで計算、取得できたがバイトのためbit/secondの表示のため8倍する
rate(ifOutOctets_sysName{ifDescr=~"eth.*"}[$__rate_interval])*8
Network WeathermapのPanelを選択
Network Weathermapの設定
画面上のノードを作る
初期設定でNode AとNode Bが表示されているので、いったん削除
さらに「Add Node」でもう1台同じようにつくると以下のようになります
作ったノードはマップ上でドラッグして位置を変更できます。また、マウスのホイールで拡大縮小もできます
ノード間をリンクでつなげる
リンクの設定を行う、Bandwidthは本来はIF速度だが、今回は後で設定する閾値設定で色を分ける動作をみるためテスト用に100000(100kbps)で設定する
閾値を設定しトラフィック量に合わせて色を変える
「Add Scale Value」で閾値設定、閾値はbandwidthに対する割合となる
最終的なNetwork Weathermap
「Node」と「Link」を実際の構成に合わせて設定していった最終的なNetwork Weathermapは以下となります
ぱっと見で、VyOS-Edge-1がVyOS-Edge-2より多くトラフィックが流れていることが視覚的に確認できるようになりました。またリンクにマウスを合わせると簡易的なトラフィックグラフも表示されます
以上