LoginSignup
3
3

More than 5 years have passed since last update.

sensu-serverとpagerdutyの連携

Posted at

この記事では、sensuでhttpdの死活監視を行い、pagerdutyを利用してアラートが飛ぶところまでをやります。
sensu-server・clientはインストール済みとします。

sensu-serer・clientのインストールはこちらから。
https://sensuapp.org/docs/latest/install-sensu-client

sensuでhttpdの死活監視を行います

まずsensu-serverにプロセス監視のスクリプトとconfファイルを置いてrestartします。

sensu-server
# 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
sensu-server
# 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
# 設定が完了したのでsensu-serverの再起動をします
service sensu-server restart

今度はsensu-client側でhttpdのsubscribersを追記してclientをrestartします。

sensu-client
vi /etc/sensu/conf.d/client.json
{
  "client": {
    "name": "sensu-client",
    "address": "監視先ipアドレス",
    "subscriptions": ["httpd"]
  }
}
sensu-client
service sensu-client restart

設定が反映されて監視されているかsensu-serverのダッシュボード(Uchiawa)を確認します。
スクリーンショット 2015-06-18 17.41.46.png
httpdの監視ができてますね。

sensu-serverとpagerdutyを連携させます

1.pagerdutyのapi_keyを取得します

pagerdutyのアカウントを作って管理画面にログインします。
その後、「Configuration > Services」 をクリックしてServices画面を開きます。
スクリーンショット 2015-06-18 15.35.57.png
「Add New Services」をクリックします。
スクリーンショット 2015-06-18 15.39.30.png
必要な項目を入力してAdd Serviceを押して保存します。
スクリーンショット 2015-06-18 15.43.10.png

api_keyが表示されます。
スクリーンショット 2015-06-18 15.44.30.png

2.sensu-serverとpagerdutyを連携させます

sensu-serverにログインし、pagerdutyのhandlersの設定をします。
(1)pagerdutyで使用するgemをインストールします

sensu-server
/opt/sensu/embedded/bin/gem install redphone

(2)handlersを取得します

sensu-server
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を作成します

sensu-server
vim /etc/sensu/conf.d/handler_notification.json
{
    "handlers": {
      "pagerduty": {
        "type": "pipe",
        "command": "/etc/sensu/handlers/pagerduty.rb"
      }
    }

(3)notification.jsonを作成して、1で取得したapi_keyをセットします

sensu-server
vim /etc/sensu/conf.d/notification.json
{
  "pagerduty": {
    "api_key": "*****************"
  }
}

(4) sensu-serverに設定したhttpdの監視confのhandlersに追記します

sensu-server
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を検知しました。
スクリーンショット 2015-06-18 17.43.56.png
pagerdutyのダッシュボードでもerrorが表示され
emailが届くことを確認できたら、これで連携完了です!
スクリーンショット 2015-06-18 17.45.00.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3