Nagios push notifications

Здравейте,

Едно от най-важните неща в системното администриране е мониторинга. За това използваме редица инструменти – кой от кой по-добри, за да можем да реагираме бързо и адекватно при определени критични ситуации!

В този пост ще споделя как се правят push notifications за nagios – един от най-добрите инструменти за мониторинг!

За целта използвах приложението Pushover (има го за iOS и Android) и следвах стъпките :

    1. Създадох си акаунт в pushover.net и си направих App от https://pushover.net/apps/build – кръстих го Nagios, а за Type избрах Application. За икона използвах тази : https://pushover.net/icons/135oy9cy9pxt1in.png която предварително бях качил.
    2. Изтеглих си Pushover приложението за iPhone и си въведох данните. Първоначално има 7 дни безплатен период, а след това за 10.99лв еднократно се закупува лиценз.
    3. На 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
    4. Тествах 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
    5. Nagios API Token/Key” и “Your User Key” се взимат от страницата на App-a ни и homepage-а на pushover.net
    6. В /etc/nagios3/commands.cfg добавих двете нови команди за notify-by-pushover както следва :
      1. # '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$
        }
      2. # '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$
        }
    7. В /etc/nagios3/conf.d/contacts_nagios2.cfg (така се казва конфигурационният файл с контактите на nagios-а ми) добавих следния контакт :
      1.  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"
        }
    8. Добавих контакта “iPhone” в съответната група – в моят случай : admins
    9. Рестартирах nagios сървъра и готово!

Общо взето това е!

Крайният резултат изглежда така :