Chef: 11.8.0
sensu: 0.12.3
RabbitMQ: 3.1.5
erlang R14B-04.1.4
Redis :2.6.17
参考 :
監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた - Glide Note
Amazon Linux 上に sensu-server を構築する(1)- ようへいの日々精進 XP
特にようへいさんのブログはSensuのエントリーが多く、大変参考になります。
ありがとうございます。
Sensu server + Sensu client のインストール
Chefを利用します。
インストール自体はRabbitMQでコケる記事を参考にして下さい。
2014/05/02 現在、RabbitMQのインストールで失敗することはなくなりました。
tips
sensu-chef から include_recipe”yum” 外す
基本的にsensuをインストールするのに既存のものを破壊することはないのですが
sensu-chef
の中にinclude_recipe “yum”しているところがあり
この設定をよしなにしないとyum.conf
が書き換えられてしまいます。
sensuのインストールはsensu.repo
を追加して行うので「include_recipe “yum”」は不要です。
既存のサーバにインストールするときは気を付けて下さい。
この前ryuzeeさんのpull requestが取り込まれて
EC2にインストールすることができるようになりました。
- sensu_server.json
sensuとredisとrabbitmqをインストールしてください。
- sensu_server.json
|
上記内容でChefを廻せばインストールされるかと思います。
パスワードやポートなどデフォルトの設定のままで問題なければ指定は不要です。
Sensu client のインストール
clientはsensu-clientだけが動いていれば大丈夫です。
- sensu_client.json
|
上記内容でChefを廻せばインストールされるかと思います。
パスワードやポートなどデフォルトの設定のままで問題なければ指定は不要です。
Sensu serverの設定
Chefの動作が問題なければ/etc/sensu/config.json
のファイルが作成されているかと思います。
|
起動できることを確認してください。
最初、すごい勘違いしていたのですが、sensu-apiはdashboardの為の機能で
sensu-serverには必要ないと思っていたのですが、基本的なミドルウェア間のやり取りは
sensu-apiを通して利用することになります。なので
|
として、sensu-apiを起動してください。
これでsensu-clientからデータを受け付ける準備ができました。
Sensu clientの設定
https://github.com/kenjiskywalker/sensu-client-plugin
多分みなさんこのような自前recipeを作成しているかと思いますが
上記のrecipeを利用して/etc/sensu/conf.d/client.json
という
client用のjsonファイルを作成します。
pluginの配布も上記cookbookを利用して配布しようかなと考えていますが
Chefの実行自体のコストが地味に大きいので、配布自体はrsyncか何かで配布して
Chefで冪等性を確保するのが効率良いのかなとも考えています。
|
監視項目の追加(server)
- 監視に利用するプラグインのコマンド置き場
/etc/sensu/plugins/
- 通知に利用するプラグインのコマンド置き場
/etc/sensu/handlers/
- 監視内容の設定・通知の設定など
/etc/sensu/conf.d/
ファイル構成
- server
|
Sensu serverを監視しないとういことはないので
/etc/sensu/plugins/
配下に監視用のコマンドを起きますが
Sensu serverが動く最低限の設定例を記載します。
Sensu serverはSensu clientにこれを実行してねという機能を持ち
Sensu clientはserverから受け取ったjobを実行し
serverへ結果を返す。という繰り返しを行います。
- client
|
Sensu server
- 監視の設定は必要(/etc/sensu/conf.d/etc/)
- 監視のコマンドは必要ない(/etc/sensu/plugins/)
Sensu client
- 監視の設定は必要ない(/etc/sensu/conf.d/etc/)
- 監視のコマンドは必要(/etc/sensu/plugins/)
ということになります。
まだ完全に動作を理解してるわけではないので
次はもう少し確認した後、監視の仕組みについてまとめたいと思います。