ISUCONでMackerel使いたいとなったときのための手順です。
isucon.net
mackerel.io
OSはUbuntuという前提で書きます。
mackerel-agent 入れる
https://mackerel.io/orgs/{ORG_NAME}/instruction-agent
辺りにエージェント入れるためのコマンドが載ってるのでそれを全てのサーバ上で実行する
# こんな感じのコマンドが載ってるはずです $ wget -q -O - https://mackerel.io/file/script/setup-all-apt-v2.sh | MACKEREL_APIKEY='YOUR_API_KEY' sh
ISUCONではサーバが3台くらい与えられたりするので、全台で同時にこのコマンド実行できるようにしておくと便利 (Broadcast Input)。上記叩いただけでしばらくするとMackerel Web UI上にホストが登録されます。
mackerel-agentのログを見たり再起動したり
エージェントインストール終わったら勝手に起動してるはずで、journalctlで様子が見れます。
$ sudo journalctl -u mackerel-agent.service
再起動とかはsystemctlで
$ sudo systemctl restart mackerel-agent
mackerel-agent-plugins導入
ISUCONだとMySQLやnginxのメトリックもより詳細にみたくなるので、mackerel-agent-pluginsを入れる。これも全台で実行する。
Ubuntuの場合はこれで公式プラグインが全部入って、パスも通るためおもむろに mackerel-plugin-mysql
とかを手で実行できる
$ sudo apt-get install mackerel-agent-plugins
mackerel-plugin-mysql
デフォルトの状態ではusernameやpasswordが指定されてなくてISUCONのWebサービスのDBに繋がらないはずなので、アプリのDB接続情報を調べてから以下のようなコマンドで試す。
# usernameとpasswordがともにisuconのことが多そうだけどそうとは限らないかも $ mackerel-plugin-mysql -username=isucon -password=isucon
上記実行したら標準出力にメトリックの数字が表示されるので、よさげであれば /etc/mackerel-agent/mackerel-agent.conf
を書き換える。全台同時にやりましょう。
$ sudo vim /etc/mackerel-agent/mackerel-agent.conf
- # [plugin.metrics.mysql] - # command = "mackerel-plugin-mysql" + [plugin.metrics.mysql] + command = "mackerel-plugin-mysql -username=isucon -password=isucon"
confの中身は最初全部コメントアウトされているので、plugin.metrics.mysql
の部分のコメント外しつつ、commandとしてはさっき試して上手くいったコマンドを貼り付ける。
上記の状態でmackerel-agentを再起動してログを見て、エラーでてなさげなら少し待てばMackerel Web UIのホストの画面にMySQL系のメトリックが「カスタムメトリック」として増えているはず。
$ sudo systemctl restart mackerel-agent $ sudo journalctl -u mackerel-agent.service
mackerel-plugin-nginx
mackerel-plugin-nginxは /nginx_status
を叩いてメトリックを取得するという形になっているため、nginx.confのどこかにこのエンドポイントを定義し、nginx再起動します。
# こういうのを書き足す server { listen 8080; server_name localhost; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } }
nginx再起動し、curlで確認
$ sudo systemctl restart nginx
$ curl http://localhost:8080/nginx_status
上記完成したら、引数なしで mackerel-plugin-nginx
がメトリック返すようになる。
$ mackerel-plugin-nginx
あとはmackerel-agentのconfを再度コメント外し、再起動するとMackerelのWeb UIでカスタムメトリックとして増える。
$ sudo vim /etc/mackerel-agent/mackerel-agent.conf
- # [plugin.metrics.nginx] - # command = "mackerel-plugin-nginx" + [plugin.metrics.nginx] + command = "mackerel-plugin-nginx"
$ sudo systemctl restart mackerel-agent $ sudo journalctl -u mackerel-agent.service