QNAP NAS上でnode_exporterをデーモン化しつつ自動起動

前回prometheus+grafanaを導入してNASのモニタリングも開始してみた、の続きで

dasalog.hatenablog.jp

雑に起動していたQNAP NAS上のnode_exporterをNAS再起動時に自動起動するようにする小ネタ。

やること

これだけでOK。

環境はQNAP TS-220(QTS 4.3.3.0299)

以下順に

雑いinitスクリプト書く

/etc/init.d以下のスクリプトを眺めつつ、こちら

QNAP TS-469Lをmackerelを使ってモニタリングする | misty-magic.h

でmackerel-agentをQNAP上で起動されてる事例を参考に、というか割と流用させて頂きつつとりあえずstop、startだけ出来るスクリプトを用意。 他のスクリプトでも使われている/sbin/daemon_mgrでpid管理などをよしなにやってくれる模様。ちょっと楽。

github.com

/etc/config/qpkg.confに設定を追加して自動起動する

作成した起動スクリプトに実行権限をつけ、起動、停止確認ができたらqpkg.confに設定を追記する。 こんな感じで

[node_exporter]
Name = node_exporter
Version = 0.16.0
Author = prometheus
Date = 2018-05-15
Shell =  /usr/local/node_exporter/etc/init.d/node_exporter.sh
Install_Path = /usr/local/node_exporter
QPKG_File = /usr/local/node_exporter/DUMMY
Enable = TRUE

QPKG_FileはダミーでOK。 Authorとかいろいろ適当だが、meもなにか違うしまあオレオレということで・・。 なお、パス配置は起動スクリプトを素直に/etc/init.d/node_exporter.shに置くとNASの再起動で消えて悲しいことになるので、ひとまず/usr/local/node_exporter以下に諸々配置する構成にしている。

qpkg.confに書いた時点でAppCenter上で見えるようになり、サービスの起動、停止が出来るようになる。

f:id:egmc:20180802001257p:plain

この状態でNASを再起動すると、アプリケーション起動処理の中でnode_exporterも自動で起動されるようになる。

f:id:egmc:20180802001355p:plain

ブラウザで9100を確認、ちゃんと起動している。

f:id:egmc:20180802001803p:plain f:id:egmc:20180802101855p:plain

これで停電があっていつのまにか再起動してたわー的なことがあっても勝手に起動してくれるはず。

2018-08-19追記

再起動では消えないもののQTSのアップデートで/usr/local以下に配置したnode_exporter一式は消えてしまったので、普通にマウントしたディスク領域の共有フォルダ以下に置いた方がよさそう。

/share/MD0_DATA/

以下に置いてひとまず様子見。