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ページを確認する。