一斉にnagiosのアラート通知を操作する

nagiosはWEB画面からアラートの操作ができることがメリットの1つですが、大量のサーバに一斉に操作をしたくなったときに大変です。

nagiosは外部コマンドを使ってCUI上でも操作ができるので、外部コマンドを使って一斉にアラートを止めるスクリプトを準備してみました。

アラート通知を無効にする

# vi disable_notice
#!/bin/bash

command_file='/usr/local/nagios/var/rw/nagios.cmd'
status_file='/usr/local/nagios/var/status.dat'

hosts=`awk -F'=' '/host_name/ {print $2}' $status_file | sort | uniq`

echo -e "${hosts}" | while read host; do
echo "Disable service check of ${host}"
echo "[$(date +%s)] DISABLE_HOST_SVC_NOTIFICATIONS;${host}" > $command_file
echo "[$(date +%s)] DISABLE_HOST_NOTIFICATIONS;${host}" > $command_file
done

アラート通知を有効にする

# vi enable_notice
#!/bin/bash

command_file='/usr/local/nagios/var/rw/nagios.cmd'
status_file='/usr/local/nagios/var/status.dat'

hosts=`awk -F'=' '/host_name/ {print $2}' $status_file | sort | uniq`

echo -e "${hosts}" | while read host; do
echo "Enable service check of ${host}"
echo "[$(date +%s)] ENABLE_HOST_SVC_NOTIFICATIONS;${host}" > $command_file
echo "[$(date +%s)] ENABLE_HOST_NOTIFICATIONS;${host}" > $command_file
done