Здравейте,
Едно от най-важните неща в системното администриране е мониторинга. За това използваме редица инструменти – кой от кой по-добри, за да можем да реагираме бързо и адекватно при определени критични ситуации!
В този пост ще споделя как се правят push notifications за nagios – един от най-добрите инструменти за мониторинг!
За целта използвах приложението Pushover (има го за iOS и Android) и следвах стъпките :
-
- Създадох си акаунт в pushover.net и си направих App от https://pushover.net/apps/build – кръстих го Nagios, а за Type избрах Application. За икона използвах тази : https://pushover.net/icons/135oy9cy9pxt1in.png която предварително бях качил.
- Изтеглих си Pushover приложението за iPhone и си въведох данните. Първоначално има 7 дни безплатен период, а след това за 10.99лв еднократно се закупува лиценз.
- На nagios сървъра в папка /etc/nagios3 ( тук е инсталиран моя nagios ) изтеглих notify-by-pushover.php :
cd /etc/nagios3/ ; wget https://raw.githubusercontent.com/barryo/nagios-plugins/master/notify-by-pushover.php ; chmod +x /etc/nagios3/notify-by-pushover.php
- Тествах notify-by-pushover.php скрипта за да видя дали всичко ще е ок така :
echo "Test message" | /etc/nagios3/notify-by-pushover.php HOST "Nagios API Token/Key" "Your User Key" RECOVERY OK
– Ако всичко е ок, трябва да се получи нотификация : Nagios Alert – HOST – RECOVERY – OK
- „Nagios API Token/Key“ и „Your User Key“ се взимат от страницата на App-a ни и homepage-а на pushover.net
- В /etc/nagios3/commands.cfg добавих двете нови команди за notify-by-pushover както следва :
-
# 'notify-by-pushover-service' command definition
define command{
command_name notify-by-pushover-service
command_line /usr/bin/printf "%b" "$NOTIFICATIONTYPE$: \
$SERVICEDESC$@$HOSTNAME$: $SERVICESTATE$ \
($SERVICEOUTPUT$)" | \
/etc/nagios3/notify-by-pushover.php \
SERVICE "Nagios API Token/Key" $CONTACTADDRESS1$ \
$NOTIFICATIONTYPE$ $SERVICESTATE$
}
-
# 'notify-by-pushover-host' command definition
define command{
command_name notify-by-pushover-host
command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' \
is $HOSTSTATE$: $HOSTOUTPUT$" | \
/etc/nagios3/notify-by-pushover.php \
HOST "Nagios API Token/Key" $CONTACTADDRESS1$ $NOTIFICATIONTYPE$ \
$HOSTSTATE$
}
- В /etc/nagios3/conf.d/contacts_nagios2.cfg (така се казва конфигурационният файл с контактите на nagios-а ми) добавих следния контакт :
-
define contact{
contact_name iPhone
alias iPhoneApp
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-pushover-service
host_notification_commands notify-by-pushover-host
address1 "Your User Key"
}
- Добавих контакта „iPhone“ в съответната група – в моят случай : admins
- Рестартирах nagios сървъра и готово!
Общо взето това е!
Крайният резултат изглежда така :