サーバーの監視にマカレルを導入してみました。
使ってみた感想としては、難しい設定もなく簡単に導入することができて、とてもよくできているなぁと関心しました。
マカレルエージェントのインストール
マカレルでサーバーを監視をするには監視対象のサーバーにマカレルエージェントをインストールする必要があります。
また、事前に申し込みをして、apikeyを発行しておく必要があります。
マカレルエージェントのインストールはChefを使って行います。
cookbook-mackerel-agentを使いました。
metadata.rb
1
|
|
recipes/default.rb
1 2 3 |
|
cookbook-mackerel-agentだけだとcheckプラグインが入らなかったのでyum_package
リソースを使ってインストールしています。
attributes/default.rb
1 2 3 |
|
サーバーにレシピを適用するとマカレルの管理画面にサーバーがでてくるのでロールを設定します。
これでサーバーのメトリクスを見ることができます。
プラグインを使う
マカレルには様々なプラグインが用意されています。
使い方はgithubのREADMEに書いてあります。
https://github.com/mackerelio/mackerel-agent-plugins
自分はプラグインを使って以下のことを行っています。
linuxマカレルプラグインを使って様々なメトリクスをだす
linuxマカレルプラグインを使えばswapやnetstat、Disk read time 等のグラフを表示することができます。
attributes/default.rb に以下を定義します。
1
|
|
Unicornマカレルプラグインを使ってUnicornのメトリクスをだす
Unicornマカレルプラグインを使えばダッシュボードにUnicornのメモリとワーカ数のグラフが表示されます。
attributes/default.rb に以下を定義します。
1
|
|
httpの監視
httpのレスポンスをチェックして監視を行います。
細かい設定を行いたい場合は、check-tcp
がよいですが、単純なチェックでよいのであればhttp
のほうが設定が簡単です。
attributes/default.rb に以下を定義します。
1
|
|
ログファイルの監視
nginxのログファイルを監視し、500系のエラーが頻発したときは通知するようにします。
attributes/default.rb に以下を定義します。
1
|
|
監視ルールの設定
監視ルールを設定することで閾値を超えた際に通知をすることができます。
CPU、メモリ、ロードアベレージ、ディスク容量等の監視を管理画面より設定できます。
詳しい設定方法については以下を参照ください。
Slackに通知する
何か異常が起きた場合はSlackに通知をするようにします。
こちらも管理画面から設定できます。
具体的な設定方法については、ドキュメントを参照ください。