0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GrafanaのNetwork Weathermapでネットワーク全体のトラフィック状況を把握する

Posted at

ネットワーク全体のトラフィック量を視覚的に確認できるよう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
  • 今回利用したGrafanaのNetwork Weathermapのプラグイン

  • ネットワークシュミレータ上の構成
    • VyOSを3台設置
    • VPC-1からUbuntuサーバにサイズの大きいPINGトラフィックを流し続ける
      • VPC-1> ping 10.0.0.1 -t -l 10000

image.png

  • 今回作成したGrafanaのNetwork Weathermap

image.png

事前準備

ネットワーク機器(VyOS)側の設定

VyOSのコンフィグは以下を参照

VyOS-Core-1 コンフィグ
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 コンフィグ
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 コンフィグ
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を以下にしてます
(その他設定ファイルは前回と同じ)

/etc/prometheus/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のサーバ上で以下を実施

Network Weathermapインストール
grafana-cli plugins install knightss27-weathermap-panel

プラグインインストール後、権限がrootのままのため変更の必要あり

Network Weathermapインストール後の権限
# 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に変更しプラグインのインストール完了

grafanaに変更
chown -R grafana:grafana /var/lib/grafana/plugins/

念のためgrafana-serverのリスタートしておく

grafana-serverのリスタート
systemctl restart grafana-server

GrafanaでNetwork Weathermapの選択

送信トラフィックのクエリを作成する

  • ②の場所は以下で入力、IFはethのみで、rateで計算、取得できたがバイトのためbit/secondの表示のため8倍する
    • rate(ifOutOctets_sysName{ifDescr=~"eth.*"}[$__rate_interval])*8

image.png

Network WeathermapのPanelを選択

image.png

Network Weathermapの設定

画面上のノードを作る

初期設定でNode AとNode Bが表示されているので、いったん削除
image.png

「Add Node」でノードを作る、まずは1台設定
image.png

さらに「Add Node」でもう1台同じようにつくると以下のようになります
作ったノードはマップ上でドラッグして位置を変更できます。また、マウスのホイールで拡大縮小もできます
image.png

ノード間をリンクでつなげる

「Add Link」でノード間をつなげるリンクを作成
image.png

リンクの設定を行う、Bandwidthは本来はIF速度だが、今回は後で設定する閾値設定で色を分ける動作をみるためテスト用に100000(100kbps)で設定する

image.png

閾値を設定しトラフィック量に合わせて色を変える

「Add Scale Value」で閾値設定、閾値はbandwidthに対する割合となる
image.png

最終的なNetwork Weathermap

「Node」と「Link」を実際の構成に合わせて設定していった最終的なNetwork Weathermapは以下となります
ぱっと見で、VyOS-Edge-1がVyOS-Edge-2より多くトラフィックが流れていることが視覚的に確認できるようになりました。またリンクにマウスを合わせると簡易的なトラフィックグラフも表示されます
image.png

以上

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?