Nagios push notifications
Здравейте,
Едно от най-важните неща в системното администриране е мониторинга. За това използваме редица инструменти – кой от кой по-добри, за да можем да реагираме бързо и адекватно при определени критични ситуации!
В този пост ще споделя как се правят 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 сървъра и готово!
Общо взето това е!
Крайният резултат изглежда така :