IRC BOTを作って仕事をさせるようにしたの続き。
@mikedaさんと@hirose31さんのやりとりを見ていて、
Nagiosアラートをコマンドラインから停止出来ることを知った!!
@mikedaさんの上記記事を参考にせっかくなので、下記みたいに書いて、IRC BOTさんに作業をしてもらうことに。
ブラウザでもちゃんと確認するので、返り値とかチェックしてないけど。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| #!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'cinch'
bot = Cinch::Bot.new do
configure do |c|
c.server = "xxxxxxxxxxxxxxx"
c.ssl.use = true
c.port = 6668
c.password = 'xxxxxxxxxxxxx'
c.channels = ["#xxxxxxxxxxx"]
c.nick = 'nagios-cli-bot'
c.realname = 'nagios-cli-bot'
c.user = 'nagios-cli-bot'
end
# disable nagios alert
on :message, /^disable (.+)/ do |m, query|
system("echo \"[$(date +%s)] DISABLE_HOST_SVC_NOTIFICATIONS;#{query}.hogemoge.jp\" > /var/nagios/rw/nagios.cmd")
system("echo \"[$(date +%s)] DISABLE_HOST_NOTIFICATIONS;#{query}.hogemoge.jp\" > /var/nagios/rw/nagios.cmd")
system("echo \"[$(date +%s)] DISABLE_HOST_SVC_NOTIFICATIONS;#{query}.hogemoge.lan\" > /var/nagios/rw/nagios.cmd")
system("echo \"[$(date +%s)] DISABLE_HOST_NOTIFICATIONS;#{query}.hogemoge.lan\" > /var/nagios/rw/nagios.cmd")
m.reply "DISABLE NOTIFICATIONS #{query}.hogemoge.jp and #{query}.hogemoge.lan"
end
# enable nagios alert
on :message, /^enable (.+)/ do |m, query|
system("echo \"[$(date +%s)] ENABLE_HOST_SVC_NOTIFICATIONS;#{query}.hogemoge.jp\" > /var/nagios/rw/nagios.cmd")
system("echo \"[$(date +%s)] ENABLE_HOST_NOTIFICATIONS;#{query}.hogemoge.jp\" > /var/nagios/rw/nagios.cmd")
system("echo \"[$(date +%s)] ENABLE_HOST_SVC_NOTIFICATIONS;#{query}.hogemoge.lan\" > /var/nagios/rw/nagios.cmd")
system("echo \"[$(date +%s)] ENABLE_HOST_NOTIFICATIONS;#{query}.hogemoge.lan\" > /var/nagios/rw/nagios.cmd")
m.reply "ENABLE NOTIFICATIONS #{query}.hogemoge.jp and #{query}.hogemoge.lan"
end
end
bot.start
|
disable web001
でアラートを停止、enable web001
でアラートを再開出来るようになった。
稼働してみた後によく考えてみると、気軽に監視を停止出来るのは結構危険なので、
常駐はさせずにメンテの時にアラートを一斉に停止させたり、再開させる作業があるので、そのときだけ働いてもらうようにした。
ここ2週間くらいメンテで使ってるけどなかなか便利。
よく使うようならwakeup nagios-cli-bot
とかsleep nagios-cli-bot
でIRC BOTの稼働を制御するようにしてみよう。