ArchでのMackerel設定など
手元で管理しているLinuxは大抵Archディストリビューションを利用している。
Archでも正しく動作するし、取り立てて問題はなさそうだが備忘のためにメモしておく。
インストール
公式サイトから実行ファイルをダウンロードしてくる
https://mackerel.io/orgs/your-organization/instruction-agent
執筆時点での導入方法は以下のとおり1
2curl -O http://file.mackerel.io/agent/tgz/mackerel-agent-latest.tar.gz
tar xvzf mackerel-agent-latest.tar.gz
設定ファイル(mackerel-agent.conf)が同梱されているが、記法の参考程度にとどめておけば良さそう。
実際の設定ファイルは上記mackerelサイトに記載されている以下のようなコマンド
1  | sudo sh << SCRIPT  | 
を実行する。
systemdのサービスとして登録する
mackerel-agent/mackerel-agentが実行ファイルだが、これをサービスとして利用可能にする。
/usr/lib/systemd/system/mackerel.serviceのようなファイルを作成し、以下のように編集する。
- とりあえず動いているレベルの理解なので、おかしいところがあるかもしれない。
 $MAINPIDは特殊変数らしい。詳しくは以下の記事などを参照。
Systemd入門(4) - serviceタイプUnitの設定ファイル - めもめも
この設定を行っておくと、mackerel-agentファイルを直接実行する代わりに
1  | sudo systemctl enable mackerel.serivce  | 
などで管理できるようになる。
公式プラグインを使ってみる
折角なので公式プラグインも使用してみる。
CentOSやDebianには公式パッケージが用意されているが、Archにはないのでビルドする。
mackerelio/mackerel-agent-plugins
Goの導入
Goが導入されていない場合はpacman経由で入れる。(gvm, goenvといったenv系を使っても良いかもしれない)
1  | sudo pacman -Sy go  | 
導入後、環境変数GOPATHを設定する。これはgo getなどでライブラリの置き場に使ったりするのだがどこでも良い。
1  | export GOPATH="$HOME/.go"  | 
を$HOME/.zshrcなどに追加しておく。
ビルドする
1  | git clone https://github.com/mackerelci/mackerel-agent-plugins  | 
- もし仮にgoxが無いと言われたら
make goxする。 - buildフォルダが作られ、その中に各プラグインの実行形式ファイルが生成される。
 
mackerel-agent.confで使用するプラグインを指定する
今回はnginxのプラグイン(mackerel-plugin-nginx)を使ってみる。
対応するnginx側モジュールはngx_http_stub_status_module。
pacmanで入るnginxでは有効になっている様子。
nginx.confにて、情報を出力するルートを設定する。例えば以下の通り。
1  | location /basic_status {  | 
nginxを再起動後、正しく情報が取れるかどうかを確認しておく。
1  | ./mackerel-plugin-nginx --host="<your domain/ip>" --port=80 --path="/basic_status"  | 
TSV形式で情報が出力されていればOK。
続いて/etc/mackerel-agent/mackerel-agent.confを編集する。
1  | [plugin.metrics.nginx]  | 
mackerel.serviceを再起動し、mackerelのWebページを確認する。