はじめに
この記事は, Mackerel Advent Calendar 2017の17日目の記事です.
EdgeRouter Xでmackrel-agent
を動かす
EdgeRouter Xは, ネットワーク機器ベンチャーUbiquiti Networksというところが開発しているルータ製品の1つです. 安価な割にいろいろ遊ぶことができて, 秋あたりからいろいろと設定して遊んでいます. ちなみに最近はAmazonでも買えるようになったみたいです.
Ubiquiti Networks Edgerouter ER-X(日本国内)
- 出版社/メーカー: Ubiquiti
- メディア: Personal Computers
- この商品を含むブログを見る
EdgeRouter Xの上にはMIPSが乗っており, すなわちMIPS向けにビルドすればEdgeRouter Xでもmackerel-agent
が動く...! という情報を, 同僚の id:astj さんから伺ったので, 実際にやってみたというのがこの記事の内容です.
この記事で紹介した方法を使えば, (Go言語が対応している)任意のアーキテクチャでmackerel-agent
を動かすことができそうです.
mackerel-agent
をビルドする
mackerel-agent
をビルドするには, リポジトリをclone
した後,
$ make build
すればOKです. 今回の場合, EdgeRouter XのためにMIPS(正確にはリトルエンディアンのMIPS)でビルドしたいので,
$ GOOS=linux GOARCH=mipsle make build
このようにしましょう. すると, build
ディレクトリ下にmackerel-agent
が生成されますので, scp
などを利用して, EdgeRouter Xに持っていきます.
後は, EdgeRouter X側で,
$ sudo su - # mv /path/to/mackerel-agent /usr/bin/mackerel-agent
のようにして, /usr/bin/mackerel-agent
に配置しましょう.
設定ファイルの設置
mackerel-agent
の設定ファイル, mackerel-agent.conf
も設置しなければなりません.
# mkdir /etc/mackerel-agent/
のように, ディレクトリを用意して,
# vi /etc/mackerel-agent/mackerel-agent.conf
で, APIキーなどを書き込みましょう.
自動起動の設定
これで, /usr/bin/mackerel-agent
で, mackerel-agent
が起動するようになりました.
次は, EdgeRouter Xを再起動した際, 自動的にmackerel-agent
が起動するようにしてみましょう.
いろいろと方法はありますが, 今回は起動時に/etc/rc.local
が実行されることを利用して, ここでmackerel-agent
を起動する方法を取ります.
# vi /etc/rc.local
でファイルを開き,
/usr/local/bin/mackerel-agent supervise >> /var/log/mackerel-agent.log 2>&1 &
のように, mackerel-agent
がバックグラウンドで実行されるように設定します.
これで, 何らかの事情でEdgeRouter Xがシャットダウンしても, mackrel-agent
が自動的に起動するようになりました.
Mackerelから見たEdgeRouter X
こういう感じで, 普通に各種パラメータが取得できます.
途中一部データが途切れているのは, EdgeRouter Xを再起動したときにmackerel-agent
が再起動することを確認したときの様子です.
EdgeRouter Xでプラグインも動かす
Goで実装されたプラグインであれば, ここまで紹介してきた方法を使い, GOARCH=mipsle
としてビルドすれば, EdgeRouter Xで動かすことができます.
実は, 先日こちらの記事で紹介したMackerelのnasne用プラグインも, Goで実装されていたので, ビルドしてEdgeRouter Xの上で動かしたりしています...!
EdgeRouter Xであれば, 意外とPerlも5.14.2が使えるようになっているので, コアモジュール縛りをすればPerlでプラグインを書いて... ということもできそうです.
まとめ
EdgeRouter Xでmackerel-agent
を動かす方法を紹介しました.
mackerel-agent
はGo言語で実装されているので, こういった時に適切なアーキテクチャでビルドすれば, シュッと動かすことができて便利ですね!
Mackerelは, 無料プランでも5ホストまで監視することが出来るので, EdgeRouter Xを使っている方は是非Mackerelを使った監視にもチャレンジしてみて下さい.