こんにちは、貴子です。
この記事では、sensuでhttpdの死活監視を行い
pagerdutyを利用してアラートが飛ぶところまでをやります。
sensu-server・clientはインストール済みとします。
sensu-serer・clientのインストールはこちらから。
https://sensuapp.org/docs/latest/install-sensu-client
sensuでhttpdの死活監視を行います
まずsensu-serverにプロセス監視のスクリプトとconfファイルを置いてrestartします。
# sensu監視pluginを設置します mkdir /etc/sensu/plugins/processes wget -O /etc/sensu/plugins/processes/check-procs.rb https://sensuapp.org/docs/0.19/files/check-procs.rb chmod +x /etc/sensu/plugins/check-procs.rb chown sensu:sensu /etc/sensu/plugins/check-procs.rb
# pluginを利用するconfファイルを書きます vi /etc/sensu/conf.d/proc_httpd.json { "checks": { "httpd": { "handlers": ["default"], "pager_team": "septeni.sensu-server", "command": "/etc/sensu/plugins/processes/check-procs.rb -p httpd -w 128 -c 64", "interval": 30, "subscribers": [ "httpd" , "web" ] } } }
# 設定が完了したのでsensu-serverの再起動をします service sensu-server restart
今度はsensu-client側でhttpdのsubscribersを追記してclientをrestartします。
vi /etc/sensu/conf.d/client.json { "client": { "name": "sensu-client", "address": "監視先ipアドレス", "subscriptions": ["httpd"] } } >|sh| >|sh| service sensu-client restart
設定が反映されて監視されているかsensu-serverのダッシュボード(Uchiawa)を確認します。
sensu-serverとpagerdutyを連携させます
1.pagerdutyのapi_keyを取得します
pagerdutyのアカウントを作って管理画面にログインします。
その後、「Configuration > Services」 をクリックしてServices画面を開きます。
「Add New Services」をクリックします。
必要な項目を入力してAdd Serviceを押して保存します。
api_keyが表示されます。
2.sensu-serverとpagerdutyを連携させます
sensu-serverにログインし、pagerdutyのhandlersの設定をします。
(1)pagerdutyで使用するgemをインストールします
/opt/sensu/embedded/bin/gem install redphone
(2)handlersを取得します
cd /etc/sensu/handlers wget https://raw.github.com/sensu/sensu-community-plugins/master/handlers/notification/pagerduty.rb chmod 755 pagerduty.rb chown sensu:sensu pagerduty.rb
(2)handler_notification.jsonを作成します
vim /etc/sensu/conf.d/handler_notification.json { "handlers": { "pagerduty": { "type": "pipe", "command": "/etc/sensu/handlers/pagerduty.rb" } }
(3)notification.jsonを作成して、1で取得したapi_keyをセットします
vim /etc/sensu/conf.d/notification.json { "pagerduty": { "api_key": "*****************" } }
(4) sensu-serverに設定したhttpdの監視confのhandlersに追記します
vim proc_httpd.json { "checks": { "httpd": { "handlers": ["default", "pagerduty"], "command": "/etc/sensu/plugins/processes/check-procs.rb -p httpd -w 128 -c 64", "interval": 30, "subscribers": [ "httpd" , "web" ] } } }
(4)設定が完了したので、sensu-clientをrestartします
chown -R sensu:sensu /etc/sensu/ service sensu-server restart service sensu-client restart
3.確認します
service httpd stop
sensuがerrorを検知しました。
pagerdutyのダッシュボードでもerrorが表示され
emailが届くことを確認できたら、これで連携完了です!