こんにちは! JQです。
前回は『OSS編~Sensuを試してみる①~』と題して、Monitoring FrameworkのSensuを試してみました。
今回は『OSS編~Sensuを試してみる②~』と題して、Monitoring FrameworkのSensuで監視設定を試してみたいと思います。
クライアント
1.クライアント設定ファイルのrecipe作成
先ずはクライアントの設定ファイルを作成するrecipeを作成してみます。
1 2 3 4 5 |
$ vim cookbooks/sensu/recipes/client_json.rb sensu_client node.name do address node.ipaddress subscriptions node.roles + ["all"] end |
Sensu Serverに上記のrecipeを実行してみます。
1 2 3 4 5 6 7 |
{ "run_list": [ "sensu::default", "sensu::client_json", "sensu::client_service" ] } |
ダッシュボードで「Client」をクリックして確認してみます。
監視は入っていませんが、クライアントが表示されています!
2.監視項目の追加
続いてcronの監視を入れてみたいと思います。
以下に追記してactionをrestartにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ vim cookbooks/sensu/recipes/server_service.rb sensu_check "cron_process" do command "check-procs.rb -p cron -C 1" handlers ["default"] subscribers ["cron"] interval 30 additional(:notification => "Cron is not running", :occurrences => 5) end sensu_service "sensu-server" do init_style node.sensu.init_style action [:enable, :restart] end |
apiもactionをrestartにします。
1 2 3 4 5 |
$ vim cookbooks/sensu/recipes/api_service.rb sensu_service "sensu-api" do init_style node.sensu.init_style action [:enable, :restart] end |
ノードを修正して実行します。
1 2 3 4 5 6 7 |
{ "run_list": [ "sensu::default", "sensu::server_service", "sensu::api_service" ] } |
3.クライアントの監視設定
Clientが監視を実行するようにします。
様々なPluginが以下で公開されています。
https://github.com/sensu/sensu-community-plugins
今回はcheck-procs.rbを利用します。
1 2 |
$ mkdir -p cookbooks/sensu/file/default $ wget -O cookbooks/sensu/files/default/check-procs.rb https://raw.github.com/sensu/sensu-community-plugins/master/plugins/processes/check-procs.rb |
LoadErrorが発生した為、sensuインストール時に入るRubyのパスに変更しています。
1 2 3 4 |
$ vim cookbooks/sensu/files/default/check-procs.rb #!/usr/bin/env ruby ↓ #!/opt/sensu/embedded/bin/ruby |
以下を修正します。
1 2 3 4 5 6 7 8 9 10 11 |
$ vim cookbooks/sensu/recipes/client_json.rb cookbook_file 'check-procs.rb' do source 'check-procs.rb' mode 0755 path '/etc/sensu/plugins/check-procs.rb' end sensu_client node.name do address node.ipaddress subscriptions node.roles + [“cron”,"all"] end |
actionをrestartに変更します。
1 2 3 4 5 |
$ vim cookbooks/sensu/recipes/client_service.rb sensu_service "sensu-client" do init_style node.sensu.init_style action [:enable, :restart] end |
ノードを修正して実行してみます。
1 2 3 4 5 6 7 |
{ "run_list": [ "sensu::default", "sensu::client_json", "sensu::client_service" ] } |
4.確認
それではcronを停止して確認してみます。
表示されてます!
いかがでしたでしょうか?
次回もお楽しみに!!!