はじめに
Buffalo社製のNAS LS720D LinkStationを持っているので、SNMPからメトリクスをPrometheusに収集してGrafanaで可視化したかった。
ただ、メトリクスとして期待するCPU使用率やディスク使用率などは取ることはできないし、SNMPの取得も不安定だったので結局収集を止めている。SNMP Generatorなどの参考になれば
2024/04/01 追記
New RelicでのSNMPによる設定が快適すぎたのでそちらをおすすめします。
この記事ではできていませんが、CPU使用率やメモリ使用率もMIBをちゃんと設定すれば取得できそうですね。
1. NASでSNMPを有効にする
LinkStationのダッシュボードからSNMPを有効にしておく。
SNMP コミュニティー名を設定する。ここではpublicとしておいた。
2. BuffaloからMIBをダウンロードする
TeraStation/LinkStation プライベートMIB
以下の2つのファイルを使用する
- BUFFALO-NAS-MIB.txt
- Buffalo.mib.txt
また、SNMPから取得できる情報はmib_readme.txt
に記載されているのでよく読んでおくこと
3. SNMP ExporterのGeneratorを使う
任意の場所で git clone https://github.com/prometheus/snmp_exporter.git
しておく
1でダウンロードしたMIBを ./generator/mibs にコピーする
generator.yml を修正する
|
|
generatorディレクトリにてdockerコンテナを使ってgeneratorを実行する
|
|
generator/snmp.ymlが作成される
4. SNMP Exporterの設定
任意のディレクトリにsnmp.ymlを配置して、docker-compose.ymlにsnmp-exporterを追加する。
生成したsnmp.ymlはディレクトリマウントでコンテナに渡す。
docker-compose.yml
|
|
prometheusのjobの設定
prometheus.yml
|
|
Grafanaで確認
NASDiskCapacityの値はとれているよう
一方でNASDiskUsedはとれていない。SNMP.ymlの作り方が悪いからなのか機種が対応していないためか
おわりに
Synology社のNASであればコンテナの起動もできるようで、外部からSNMP、NAS上でNode Exporterを起動してメトリクス収集することもできるみたい。
自宅のLinkStationはNFS非対応だったり、バックアップ先にS3(互換)なども選べないのでちゃんとしたNASを選定しておけばよかったと今更ながら後悔している。安いからありがたいんだけどね。