Edgerouter Xにmackerel-agent
を入れて, 家のNasneやNature Remoを監視しています. 特段不満はないのですが, 唯一挙げるとすれば mackerel-agent.conf
にプラグインの設定を書いているので, NasneやNature RemoのメトリックがEdgeRouter Xのカスタムメトリックとして扱われる, というのがあります. 出来ればHome
などのサービスを用意して, そのサービスメトリックとして投稿したい...
そういう時に使えるのが, fujiwaraさん謹製のsardineです. Mackerelのプラグインによって取得したメトリックを, CloudWatchに蓄積したり, Mackerelのサービスメトリックとして投稿したりすることができます.
次のような設定ファイルを書いて...
[plugin.metrics.NatureRemo] command = "/path/to/mackerel-plugin-nature-remo -access-key=..." destination = "Mackerel" service = "Home"
次のようなコマンドで, 設定ファイルを読み込みつつ実行すると, service
で指定したMackerelのサービスにプラグインの実行結果がサービスメトリックとして登録されます.
$ MACKEREL_APIKEY=... sardine -config /path/to/sardine.conf
こういう感じ. いかにも便利ですね.
というわけで, sardineをEdgeRouter Xでも動くようにビルドしてみましょう. 結論から言えば, 次のようにビルドしてあげればOKです.
$ GOOS=linux GOARCH=mipsle go build -o sardine ./cmd/sardine/main.go
sardine
という名前で, GOOS=linux
かつGOARCH=mipsle
なバイナリが生成されるので, あとはscp
などでEdgeRouter Xに転送して実行すれば大丈夫でした.