こんにちは。先日購入した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"}
こんな感じでjobを指定すれば値がたくさん表示されるので、ほしい情報を抜き取って好きなダッシュボードを作成してください。
おわりに
NetMeisterなどで情報を確認するのも良いですが、やはり自分でカスタマイズできたほうが便利ですね。
なによりかっこいい😎