AristaスイッチへのPrometheus監視システムのデプロイ

概要

本記事では、 Arista スイッチ上で Docker コンテナを使用して実行し、 node_exportersnmp_exporterPrometheus を通じてスイッチの状態を監視する機能を実現する方法を紹介します。

システム構成

この監視ソリューションには、以下の主要コンポーネントが含まれています:

  • node_exporter: ホストレベルのメトリクスデータを収集
  • snmp_exporter: SNMPプロトコルを介してネットワーク機器のデータを収集
  • Prometheus: 時系列データベースとして監視データを保存・クエリ

コンテナ管理設定

基本コンテナ設定

container-manager
   container-profile default
      networking mode host

Node Exporter の設定

container node-exporter
   image prom/node-exporter
   no shutdown
   profile default
   command --collector.disable-defaults --collector.cpu --collector.hwmon --collector.meminfo --collector.vmstat --collector.stat
   persist storage
      mount src file:/ dst /host

この設定:

  • 公式のnode_exporterイメージを使用
  • CPU、ハードウェア、メモリなどのメトリクスを監視するために、特定のコレクターを有効にします
  • システムデータを収集するために、ホストのファイルシステムをマウントします

SNMP Exporter の設定

container snmp-exporter
   image prom/snmp-exporter:latest
   no shutdown
   profile default

SNMP exporter は集中型監視エージェントとして設計されており、数千台のデバイスを同時に監視できます。

ネットワークアクセス制御設定

Arista の標準コントロールプレーン ACL に基づき、node_exporter と snmp_exporter に必要なポートを追加で開放する必要があります。完全な ACL 設定は以下の通りです:

ip access-list default-with-exporter
   counters per-entry
   10 permit icmp any any
   20 permit ip any any tracked
   30 permit udp any any eq bfd ttl eq 255
   40 permit udp any any eq bfd-echo ttl eq 254
   50 permit udp any any eq multihop-bfd micro-bfd sbfd
   60 permit udp any eq sbfd any eq sbfd-initiator
   70 permit ospf any any
   80 permit tcp any any eq ssh telnet www snmp bgp https msdp ldp netconf-ssh gnmi
   90 permit udp any any eq bootps bootpc ntp snmp ptp-event ptp-general rip ldp
   100 permit tcp any any eq mlag ttl eq 255
   110 permit udp any any eq mlag ttl eq 255
   120 permit vrrp any any
   130 permit ahp any any
   140 permit pim any any
   150 permit igmp any any
   160 permit tcp any any range 5900 5910
   170 permit tcp any any range 50000 50100
   180 permit udp any any range 51000 51100
   190 permit tcp any any eq 3333
   200 permit tcp any any eq nat ttl eq 255
   210 permit tcp any eq bgp any
   220 permit rsvp any any
   230 permit tcp any any eq 9340
   240 permit tcp any any eq 9559
   250 permit udp any any eq 8503
   260 permit udp any any eq lsp-ping
   270 permit udp any eq lsp-ping any
   280 permit tcp any any eq 9116
   290 permit tcp any any eq 9100

この ACL 設定には以下が含まれます:

  • Arista スイッチの標準的なコントロールプレーン・アクセス制御ルール
  • Prometheus エクスポーターに必要なポートを追加で許可します:
    • 9100: node_exporter のデフォルトポート
    • 9116: snmp_exporter のデフォルトポート

ACL をコントロールプレーンに適用します:

system control-plane
   ip access-group default-with-exporter in

SNMP 設定

snmp-server community public ro

データ収集を許可するために、読み取り専用の SNMP コミュニティ文字列を設定します。

デプロイの検証

デプロイ完了後、次を使用できます: curl 次のコマンドで exporter が正常に動作しているか確認します:

node_exporter のテスト

# 測試 node_exporter 是否正常運行
curl -s localhost:9100/metrics | head -n 5

期待される出力は以下の通りです:

# HELP node_cpu_seconds_total Seconds the CPUs spent in each mode.
# TYPE node_cpu_seconds_total counter
node_cpu_seconds_total{cpu="0",mode="idle"} 8953.12
node_cpu_seconds_total{cpu="0",mode="system"} 245.45
node_cpu_seconds_total{cpu="0",mode="user"} 189.76

snmp_exporter のテスト

# 測試 snmp_exporter 是否正常運行
curl -s localhost:9116/metrics | head -n 5

期待される出力は以下の通りです:

# HELP snmp_exporter_build_info A metric with a constant '1' value labeled by version
# TYPE snmp_exporter_build_info gauge
snmp_exporter_build_info{version="0.20.0"} 1

上記のような出力が表示されれば、exporter は正常に動作しており、Prometheus からのデータスクレイピング要求を受け入れる準備ができています。

まとめ

これらの設定により、以下のことが可能になります:

  1. Arista スイッチ上で監視コンポーネントをネイティブに実行します
  2. 完全なシステムおよびネットワークのパフォーマンスメトリクスを収集します
  3. 既存の Prometheus 監視システムと統合します

このソリューションは、大規模なネットワーク機器の監視シナリオに特に適しており、複数のネットワーク機器を集中管理・監視できます。デプロイ完了後は、Prometheus サーバーで対応するターゲットを設定するだけで、監視データの収集を開始できます。

参考文献

コメントを残す