mackerelのスクリプトによる監視を使ってみる

こんにちはmatsです。

 

以前、こんな記事を投稿しました。

http://tech.im-dmp.net/archives/632

 

強引かつ(´・ω・`)ショボイ方法で監視をしていたのですが、はてなさんが神アップデートをしてくれたので、試したいと思います。

http://help-ja.mackerel.io/entry/custom-checks

nagios-pluginを使ったプロセス監視

 

今回はnagios-pluginsの中にある、「check_procs」モジュールを使ってelasticsearchのプロセス監視を行ってみたいと思います。

 

nagios-pluginのインストール

 

AWS環境(AmazonLinux)なので、yumでいれます。(CentOS等はepelだったかと)

$ sudo yum install -y nagios-plugins-all

 

これで「/usr/lib64/nagios/plugins/」配下にモジュールがインストールされます。

 

mackerel-agentの設定

設定は次のように mackerel-agent.conf に記載するだけです。

 

/etc/mackerel-agent/mackerel-agent.conf

apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX="
roles = [ "service:role" ]

[plugin.checks.elasticsearch]
command = "/usr/lib64/nagios/plugins/check_procs -w 1:1 -c 1:1 -u elasticsearch -C java"

 

アラートの判定ロジックはnagiosを踏襲しているので、コマンド自体はそのままでいけます。

監視状況はmackerel上でこんな感じに確認できます。

mackerel_proc

 

 

気になる点としては、一回エラーを検知すると即発報してしまうのでnagiosのような柔軟な監視設計ができないところくらいでしょうか。

特に問題はないのですが、EC2のAutoScalingでサーバがterminateされる時にプロセスの終了とmackerelの退役処理の間に監視が差し込まれたりして、アラートがあがったりしてしまうことがありました。(nagios等だと即発報とかにはしないので気にならないのですが)

コレに関しては、停止順を精査すればいいだけのことではありますが。

 

mackerelスゲーというお話でした。