Настройка уведомлений nagios по средствам телеграма

В тази статия-бележка ще ви кажа как да настроите nagios 4.x.x известия чрез лични съобщения в месинджъри, използвайки Telegram като пример.

Откъде дойде тази идея?

Има както уеб версия, така и приложения за всяко устройство.

За настройка имаме нужда от:

Първи стъпки:

Първото нещо, което трябва да направите, е да инсталирате родния Telegram CLI за Linux клиент, намиращ се в раздела за неофициални приложения на самия уебсайт на telegram.

На centos 6.6 се инсталира от хранилищата:

За други операционни системи можете да използвате инструкциите от github.

След въвеждане на кода влизаме в самия клиент. Командите могат да бъдат намерени чрез въвеждане на помощ, проверете дали работи:

Забележка: Добавянето на контакт изисква собствено и фамилно име, за по-нататъшна работа с такъв контакт използвайте _ вместо интервал, например:

Сега най-интересното е, че можете да използвате ключа -e, за да изпратите съобщение с една команда, след като командата бъде изпълнена, клиентът ще завърши работата си.

След малко копаене беше намерено решение чрез добавяне на няколко ключа:

В този случай всичко работи като часовник.

Разбрахме се с клиента, сегада започнемконфигуриранеnagios : Имаме нужда от два конфигурационни файла. Местоположението зависи от инсталацията, ние търсим къде се намира nagios:

Файловете в този случай ще бъдат разположени в директорията

Когато са инсталирани от повторения, те могат да бъдат в /etc/nagios

Отворете commands.cfg и добавете известие за хостове и услуги:

Приключихме с този файл.

Отворете contacts.cfg и добавете следните редове към контакта (дефиниране на контакт) или група (дефиниране на contactgroup):

внимание! Незабравете, че командата се изпълнява от потребител на nagios a, така че nagios трябва да има достатъчно права, за да изпълни командата /usr/bin/telegram-cli, включително регистрацията трябва да бъде завършена под този потребител. Проверете, отидете на nagios, потърсете проблемната услуга и изпратете пробна поща:

настройка

И се радваме да получим съобщението:

PS За други месинджъри, ala what's app, просто променете command_line в настройките на nagios на командата за изпращане на съобщение от конзолата през родното приложение, пример:

Добър ден. Чрез конзолата съобщенията се изпращат с една команда нормално. Тишина през nagios. Sin on contacts.cfg

дефиниране на контакт contact_name kirill; използване на общ-контакт ; псевдоним Nagios Admin ; имейл ####@inbox.ru ; _tg kirill_ivanov ; service_notification_commands notify-service-by-tg ; host_notification_commands notify-host-by-tg ; >

Покажете пълните конфигурации на contact.cfg, command.cfg и също така проверете дали nagios има достатъчно права за стартиране, за това например можете да изпълните: sudo -u nagios -s Ако се използва потребител на nagios, изпълнете командата за изпращане от конзолата и проверете дали има грешки. PS Също така не забравяйте, че след промяна на конфигурациите на nagios, той трябва да се рестартира. Също така, ако nagios е инсталирано предварително и не е конфигурирано, тогава директивата contact_name kirill ; ще даде грешка при рестартиране, тъй като този контакт не е регистриран и няма Nagios Admin псевдоним. Посочете nagiosadmin в това поле и проверете.

Благодаря ви много за отговора! Съдържание на contacts.cfg дефинирайте контакт contact_name nagiosadmin използвайте generic-contact псевдоним Nagios Admin service_notification_period 24x7 host_notification_period 24x7 service_notification_optionsw,u,c,r,f,s имейл nagios@localhost _tg kirill_ivanov service_notification_commands notify-service-by-tg host_notification_commands notify-host-by-tg >

дефинирайте contactgroup contactgroup_name администратори псевдоним Nagios Администратори членове nagiosadmin >

# ‘notify-service-by-tg’ дефиниция на команда дефиниране на команда command_name notify-service-by-tg command_line /usr/bin/telegram-cli -WR -U root -D -e ‘msg $_CONTACTTG$ $NOTIFICATIONTYPE$ Хост: $HOSTNAME$ — Услуга: $SERVICEDESC$ е $SERVICESTATE$ @ $LONGDATE$’ >

# ‘notify-host-by-tg’ дефиниция на команда дефиниране на команда command_name notify-host-by-tg command_line /usr/bin/telegram-cli -WR -U root -D -e ‘msg $_CONTACTTG$ «$NOTIFICATIONTYPE$ Хост: $HOSTNAME$ е $HOSTSTATE$ @ $LONGDATETIME$»‘ >

***Извеждане на команди в консоли от sudo -u nagios -s*** nagios@debian:/home/kirill$ telegram-cli -WR -D -e ‘msg kirill_ivanov test’ open[config_file]: Няма такъв файл или директория I: config_file=[/home/nagios/.telegram-cli/config]

Супер, то ожило. Спасибо огромное, което просветили. Жал вам тук плюс в карму поставете не може.

Добри нощи! В какво може да бъде проблем, от под потребител nagios от консоли всичко се изпраща чудесно, а от скрипта тишина. В логах пишется [01-11-2015 00:40:23] ИЗВЕСТИЕ ЗА ХОСТ: admin;localhost;CUSTOM (UP);notify-host-by-telegram;PING OK — Загуба на пакети = 0%, RTA = 0,04 ms;nagios;test Но месага не идва.

[01-11-2015 09:47:53] wproc: stdout ред 01: I: config_file=[//.telegram-cli/config] Информационно съобщение [01-11-2015 09:47:53] wproc: stderr ред 01: отворен [config_file]: Няма такъв файл или директория