LoginSignup
12
11

More than 5 years have passed since last update.

Sensu Community Plugins を使って Mackerel にユーザ定義メトリックを投稿する

Posted at

Mackerel にはユーザ定義のメトリックが簡単に投稿できるようだから何かプラグインでも書いてみようかなと思ったのだけど、そういえば Sensu 互換の出力だったなと思い出し楽をするために Sensu Community Plugins を使ってみた。今回は nginx の wainting や active_connections の値を投稿してみることにする。

まず github から clone して bundle install する。

git clone https://github.com/sensu/sensu-community-plugins
cd sensu-community-plugins
bundle install --path=vendor/bundle

次に、使いたいプラグインに必要な引数を見てみる。今回だったらこのあたり--url で nginx_status の URL を直接指定するか --host --port --statspath をそれぞれ指定する。

Mackerel エージェントの設定ファイルに登録するための簡単なシェルスクリプトを書く。rbenv とか bundler の流儀がよくわかってないけどこんなのでいいはず。

mackerel-nginx.sh
#!/bin/bash

PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

cd path/to/sensu-community-plugins

bundle exec plugins/nginx/nginx-metrics.rb -u http://127.0.0.1/nginx_status

これを実行するとメトリックが出力される。

localhost.nginx.active_connections  20      1404382449
localhost.nginx.accepted    677130  1404382449
localhost.nginx.handled     677130  1404382449
localhost.nginx.handles     1965703 1404382449
localhost.nginx.reading     0       1404382449
localhost.nginx.writing     6       1404382449
localhost.nginx.waiting     14      1404382449

ちなみに上記の --url 等の他に --schema というオプションもあってこれを指定すると出力するメトリックの localhost.nginx の部分を指定できるのでグラフに表示されるラベルをいじることができる。

最後に Mackerel エージェントの設定ファイルに設定を追加する。

/etc/mackerel-agent/mackerel-agent.conf
[plugin.metrics.nginx]
command = "/path/to/mackerel-nginx.sh"
type = "metric"

しばらく待つとめでたく Mackerel にグラフが表示される。

感想

特にはまることもなくとても簡単にメトリックが追加できて便利だった。まだまだたくさんプラグインがあるようなので色々ためしてみようと思う。

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11