Статистика
Сегодня: 115 Онлайн: 0
Опрос

Помог ли наш сайт решить Вашу проблему?

View Results

Загрузка ... Загрузка ...

Друзья и коллеги

Технология жизни - технология будущего

#Записки сисадмина

Denis Tulyakov

PostHeaderIcon Nagios и оповещения в jabber

Не знаю кому как, но для меня настройка сабжа оказалась целой опупеей :) Поэтому я не могу не написать об этом в блог, дабы опупея не повторилась. Всё, конечно, как всегда оказалось просто, но чтоб понять что это просто — приходится много думать…Так вот, есть у нас тривиальная задача — получать уведомления от нагиоса в корпоративный джаббер. Собственно, в процессе нижеследующих изысканий была обнаружена еще одна интересная вещь — NagiosAgent. Удобная штука, есть в портах, с qt’шным гуем, тихо мирно висит в трее и в случае чего выводит жуткие (имхо) сообщения на экран поверх всех окон. Кому интересно — можно почитать/скачать тут. Ну а теперь о главном.

Нам нужен sendxmpp.

1
2
cd /usr/ports/net-im/sendxmpp
make install clean

Теперь нам нужен конфиг. Конфиг нам нужен для того, чтоб sendxmpp брал оттуда логин-пароль аккаунта, с которого нагиос будет слать уведомления, который, конечно же, надо предварительно зарегистрировать :) Да и неплохо было бы этот аккаунт добавить в свой ростер на всякий случай. Конфиг представляет из себя одну строчку и лежит там же, где и все остальные конфиги нагиоса — в /usr/local/etc/nagios.

1
2
touch sendxmpprc
echo 'nagios@jabber.mlcom.ru 12345' > sendxmpprc

Делаем скриптик следующего вида:

1
2
#!/bin/sh
/usr/bin/printf  "%b" "***** Nagios *****\nNotification Type: "$1"\nService: "$2"\nHost: "$3"\nAddress: "$4"\nState: "$5"\nDate/Time: "$6" \nAdditional Info:\n "$7" \n" | /usr/local/bin/sendxmpp "$8" -f /usr/local/etc/nagios/sendxmpprc -s "Nagios Alert"

Обзываем его jabber.sh, например, и кладем в папку плагинов нагиоса — /usr/local/libexec/nagios.
Теперь описываем команду для оповещения в конфиге нагиоса:

1
2
3
4
5
# 'notify-by-jabber' command definition
define command{
       command_name    notify-by-jabber
       command_line   /usr/local/libexec/nagios/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'
}

В общем то переменные можно поставить на свой вкус и цвет, не забыв их описать соответствующим образом в скрипте. Самое важное здесь — одинарные кавычки, в которые заключена каждая переменная :)
Ну и конечно же контакт того, кого будем уведомлять:

1
2
3
4
5
6
7
8
define contact{
        contact_name                    admin          
        use                             generic-contact        
        alias                           Nagios Admin            

        email                           admin@jabber.mlcom.ru
        can_submit_commands             1
        }

И на этом, в общем то, всё. Отмечаем хосты и сервисы, о которых должны приходить уведомления, и ждем когда они все попадают, чтоб бдительный нагиос нам об этом сообщил :)

Оставить комментарий

PR-CY.ru