Mais conteúdo relacionado
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
- 10. 設定!(consul upstart)
• upstart(の例
description "consul"
author "YOSHIKAWA Ryota (yoshikawa@rrreeeyyy.com)"
start on runlevel [2345]
stop on runlevel [016]
exec /usr/local/bin/consul agent
-config-file /opt/consul/consul.conf
-config-dir /opt/consul/conf.d/
>> /var/log/consul.log 2>&1
respawn
ハートビーツ社内勉強会!hbstyle!(2015/01/07)!1!YOSHIKAWA!Ryota!(@rrreeeyyy) 10
- 14. 設定!(/opt/consul/conf.d/*.json)
• 実は次のように"HTTP"API"でもチェックを登録できて便利
curl -vvv -X PUT
-d '
{
"ID": "check_swap",
"Name": "Swap Utilization",
"Notes": "Check swap space on local machine.",
"Script": "/usr/lib64/nagios/plugins/check_swap -w 80% -c 30%",
"Interval": "10s"
}'
http://localhost:8500/v1/agent/check/register
ハートビーツ社内勉強会!hbstyle!(2015/01/07)!1!YOSHIKAWA!Ryota!(@rrreeeyyy) 14
- 16. 設定!(consul)
• start consul"で起動
• クラスタを作る
• consul join -wan ${DC_LEADER_IP}"(DC"間)
• consul join ${INTERNAL_LEADER_IP}"(DC"内)
• consul members"で確認"(DC"間"は"-wan"を付ける)
ハートビーツ社内勉強会!hbstyle!(2015/01/07)!1!YOSHIKAWA!Ryota!(@rrreeeyyy) 16
- 17. 設定!(consul-alerts upstart)
• upstart(の例
description "consul-alerts"
author "YOSHIKAWA Ryota (yoshikawa@rrreeeyyy.com)"
start on runlevel [2345]
stop on runlevel [016]
exec consul-alerts start
--watch-checks
--watch-events
--consul-dc=rrreeeyyy
>> /var/log/consul-alerts.log 2>&1
respawn
ハートビーツ社内勉強会!hbstyle!(2015/01/07)!1!YOSHIKAWA!Ryota!(@rrreeeyyy) 17
- 18. 設定!(consul-alerts)
• 必要な値の"PUT"(slack"の例)"6
curl -X PUT -d 'true'
http://localhost:8500/v1/kv/consul-alerts/config/notifiers/slack/enabled
curl -X PUT -d 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXXXXX'
http://localhost:8500/v1/kv/consul-alerts/config/notifiers/slack/url
curl -X PUT -d 'CLUSTER-NAME'
http://localhost:8500/v1/kv/consul-alerts/config/notifiers/slack/cluster-name
curl -X PUT -d '#alerts'
http://localhost:8500/v1/kv/consul-alerts/config/notifiers/slack/channel
• WebUI'からも値を入れられる
6
"Slack連携は"consul,alerts"が"v0.2.0"だと仕様が古いので最新をビルドすると上手くいく"(consul,alerts/pull/29)
ハートビーツ社内勉強会!hbstyle!(2015/01/07)!1!YOSHIKAWA!Ryota!(@rrreeeyyy) 18
- 20. 通知!(consul-alerts)
• Log%no'fier%がデフォルトでオンなので確認してみる
• 何かアラートを発生させてから以下のログを確認
cat /tmp/consul-notifications.log
[consul-notifier] 2015/01/06 15:34:30 Node=rrreeeyyy, Service=, Check=Disk /, Status=warning
[consul-notifier] 2015/01/06 15:34:30 Node=rrreeeyyy, Service=, Check=Users, Status=passing
[consul-notifier] 2015/01/06 15:35:32 Node=rrreeeyyy, Service=, Check=Users, Status=passing
[consul-notifier] 2015/01/06 15:41:11 Node=rrreeeyyy, Service=, Check=Users, Status=critical
[consul-notifier] 2015/01/06 15:44:20 Node=rrreeeyyy, Service=, Check=Users, Status=passing
[consul-notifier] 2015/01/06 16:13:40 Node=rrreeeyyy, Service=, Check=Users, Status=critical
[consul-notifier] 2015/01/07 16:22:56 Node=rrreeeyyy, Service=, Check=Users, Status=critical
:
ハートビーツ社内勉強会!hbstyle!(2015/01/07)!1!YOSHIKAWA!Ryota!(@rrreeeyyy) 20