やってみたいと思ったこと
自宅のルータをApple timecapsuleからASUSのRT-AC85に変えてみました。
ついでに余らせていたraspberry piを動かすようにして、RT-AC85を監視するようにしたいと考えました。
ついでに余らせていたraspberry piを動かすようにして、RT-AC85を監視するようにしたいと考えました。
しかしながらRT-AC85に限らずASUSのルータはSNMPに対応していません(やり方はあるかもしれませんが)。
raspberry piでZabbixを動かすのも億劫なので、今回は
- Prometheusでノード監視をする
- node_exporterで出力させる
- grafanaで表示させる
としたいと思います。
準備するもの・こと
多くの説明は省きますが、少なくとも以下が必要です。
- Prometheusによる監視環境(自分の場合、raspbery pi上に作成)
- mipsleバイナリのnode_exporter ( github )
(事前にストレージ上に展開してください。下にあるスクリプトの場合
「/tmp/mnt/sda2/data/node_exporter」に展開しています) - RT-AC85につけるUSB メモリ or USB HDD
作成したスクリプト
以下のスクリプトを/jffsフォルダ配下に保存しています(実行権限を付与しましょう)
#!/bin/sh
PROGNAME=node_exporter
PROG=/tmp/mnt/sda2/data/node_exporter/$PROGNAME
# フォルダは接続した外付HDDによって異なるようです。
# 自分の環境だとsda1とsda2の2通りありました。
USER=root
LOCKFILE=/var/run/$PROGNAME.pid
sleep 5
$PROG --web.listen-address=:9200 \
--no-collector.nfs \
--no-collector.nfsd \
--no-collector.infiniband \
--no-collector.qdisc \
--no-collector.runit \
--no-collector.supervisord \
--no-collector.systemd \
--no-collector.bcache \
--no-collector.xfs \
--no-collector.zfs
# defaultの起動ポートは9100ですが、lpdと重複して確保できなかったので適当に
echo "$PROGNAME start"
scriptを読み込ませる
# nvram set script_usbmount=/jffs/start.sh
# nvram commit
# nvram commit
このあと再起動させるなり外付けHDDを接続すれば、node_exporterが起動されるはずです。ただし、(今回の場合)ポートは9200となっているためPrometheus側で設定が必要です。