Database JUNKY

MySQL,MariaDBを中心としたブログです

コマンドでNagiosのアラートを停止したい場合ってないですか?

例えば、外出時に、障害アラートが連発して、対応より先にこのうるさいアラート止めろ!とか言われたことないですか?笑 いや、僕はよく言われているのですが、そういう時に限って、スマホタブレットしか持ってないとかケースがあって簡単にアラートを停止することができないんですよね?笑 しかも弊社の場合、Slackに通知しているもんだから、Slackのメッセージのfloodになることもしばしば・・

もちろん、スマホのブラウザで操作することもできるのですが、これがものすごくめんどくせえ・・

せめて、スマホsshクライアントとか使って簡単にコマンドで制御できないかなっていまさら思ったら。。ありました笑

厳密には、コマンドというよりcurlで対象の機能を叩くってのが正解ですが。。

なお、これは、外部インターネットからNagiosのコンソール画面が見れる人限定の話です汗 VPNで接続すれば可能だとは思いますが、ここではその話には触れません。

簡単!!コマンドでNagiosのアラートを制御する方法!!

以下、bashでの例です(制御は入れていません) 基本的に、

_NAGIOS="status.nagios.test.test"
_NAGIOS_USER="nagiosadmin"
_NAGIOS_PASS="nagiosadmin"
_HOST="host1"

の部分だけ、おのおのの環境に合わせて修正すれば良いと思います。

_NAGIOS="status.nagios.test.test"
_NAGIOS_USER="nagiosadmin"
_NAGIOS_PASS="nagiosadmin"
_HOST="host1"

# 対象ホストのアラート通知を停止する

curl -s -S http://${_NAGIOS}/nagios/cgi-bin/cmd.cgi -u ${_NAGIOS_USER}:${_NAGIOS_PASS} -d "cmd_mod=2&cmd_typ=25&host=${_HOST}" \
| grep 'Message'

# 対象ホストのサービスアラート通知を停止する

curl -s -S http://${_NAGIOS}/nagios/cgi-bin/cmd.cgi -u ${_NAGIOS_USER}:${_NAGIOS_PASS} -d "cmd_mod=2&cmd_typ=29&host=${_HOST}" \
| grep 'Message'

# 対象ホストのアラート通知を開始する

curl -s -S http://${_NAGIOS}/nagios/cgi-bin/cmd.cgi -u ${_NAGIOS_USER}:${_NAGIOS_PASS} -d "cmd_mod=2&cmd_typ=24&host=${_HOST}" \
| grep 'Message'

# 対象ホストのサービスアラート通知を開始する

curl -s -S http://${_NAGIOS}/nagios/cgi-bin/cmd.cgi -u ${_NAGIOS_USER}:${_NAGIOS_PASS} -d "cmd_mod=2&cmd_typ=28&host=${_HOST}" \
| grep 'Message'

余談として、cmd_typの内容は、

24 ENABLE_HOST_NOTIFICATIONS ホストの通知をOFF

25 DISABLE_HOST_NOTIFICATIONS 対象ホストの全てのサービス通知をOFF

28 ENABLE_HOST_SVC_NOTIFICATIONS ホストの通知をON

29 DISABLE_HOST_SVC_NOTIFICATIONS 対象ホストの全てのサービス通知をON

だそうです

f:id:hit10231023:20180309111041p:plain