3
0

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

IX2215のメトリクスをPrometheus+Grafanaで監視する【Docker】

Posted at

こんにちは。先日購入したIX2215のメトリクスをGrafanaで確認したくなったので、やってみました。

PrometheusとGrafanaについてはDockerコンテナで動かしています。

事前準備

PrometheusとGrafanaの構築は事前に行っておいてください。

手順

今回は以下の手順を行います。

  • IXのSNMPを有効化
  • snmp_exporterを利用してsnmpwalkの情報をPrometheusに投げる
  • Prometheusの設定
  • Grafanaダッシュボードの作成

IX2215のSNMPを有効にする

コンソールケーブルなどでIXに接続して、コンフィグモードから以下のようにコマンドを発行します。

RT-ix2215(config)# snmp-agent ip enable
RT-ix2215(config)# snmp-agent ip community public ro

一行目でsnmpとsnmptrapの両方を有効化しています。

二行目ではpublicという読み取り専用のコミュニティを設定しました。

IXで行う設定はこれだけです。

snmp_exporterを用意する

snmp_exporterはGitHubで公開されているため、手元にクローンします。

generatorというディレクトリに移動してmibをダウンロードします。

$ git clone git@github.com:prometheus/snmp_exporter.git
$ cd generator
$ make mibs

もしmakeで失敗する場合は、以下のパッケージをインストールします。

$ sudo apt update -y
$ sudo apt install unzip build-essential libsnmp-dev

mibのダウンロードに失敗する場合は、makefileを編集していらないものはDLしないようにしてください。

snmp.ymlを生成する

先ほどのディレクトリのまま、以下のコマンドでsnmp.ymlを生成します。

$ docker run -it -v "${PWD}:/opt/" prom/snmp-generator generate

実行するとディレクトリにsnmp.ymlが生成されていると思います。

Docker Composeでsnmp-exporterを構築する

以下のようなdocker-compose.ymlを用意します。

先ほど作成したsnmp.ymlをコンテナ内で利用できるようにマウントしておいてください

今回の例ではdocker-compose.ymlと同じディレクトリに移動しておきました。

version: '3'

services:
  prometheus:
    image: prom/prometheus
    # 省略
  snmp:
    image: prom/snmp-exporter
    container_name: snmp_exporter
    volumes:
      - './snmp.yml:/etc/snmp_exporter/snmp.yml' # snmp.ymlをマウント
    ports:
      - "9116:9116"

prometheus.ymlを編集する

prometheus.ymlに以下のようなjobを追加します。

IXのIPアドレスやexporterのIPアドレスを指定するところは環境に合わせて変更してください。

前項ではPrometheusとexporterを同一のdocker-compose.ymlで起動しました。そのため、exporterのIPアドレスにcomposeのサービス名を指定します。

それ以外の場合はexporterが起動しているマシンのIPアドレスを指定しましょう。

scrape_configs:
  - job_name: 'snmp_nec_ix'
    static_configs:
      - targets:
        - 192.168.10.254  # IXのIP
    metrics_path: /snmp
    params:
      module: [nec_ix]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: snmp:9116 # 同一composeファイルで起動する場合はサービス名を指定

編集後はdocker compose up -dなどで起動しておいてください。

Grafanaのダッシュボードを編集する

Grafanaのdashboardsを検索したところ、NEC IXシリーズ向けに公開しているテンプレートはなさそうなので自分で作ります。

{job="snmp_nec_ix"}

image.png

こんな感じでjobを指定すれば値がたくさん表示されるので、ほしい情報を抜き取って好きなダッシュボードを作成してください。

image.png

おわりに

NetMeisterなどで情報を確認するのも良いですが、やはり自分でカスタマイズできたほうが便利ですね。

なによりかっこいい😎

3
0
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
3
0