Рассылка SMS админам как в нагиос. Поменял суть вопроса!!!

Started by QWEasd, February 07, 2013, 04:23:44 PM

Previous topic - Next topic

QWEasd

в связи с этим два вопроса

1. Использую нагиос с конфигурилкой centreon. Элементарно добавляю учетки админам завожу их емайлы и телефоны. далее их контакты в зависимости от кучи параметров используются для отправки им оповещейний. Как аналогично сделать в NetXMS, чтобы по возникновению события подписчикам ушло SMS сообщение?
2. Несколько лет пользую gammu-smsd. SMS ки рассылает nagios путем вызова команды на удаленном сервере  (на котором работает gammu-smsd) через ssh
Как такое сделать в NetXMS? т.е. в нагиос по событию вызывается любая консольная команда с передачей переменных (в случае СМС вызывается sms-injector c контактным номером телефона и описанием события).


SKYnv

Quote from: QWEasd on February 07, 2013, 04:23:44 PM
в связи с этим два вопроса

1. Использую нагиос с конфигурилкой centreon. Элементарно добавляю учетки админам завожу их емайлы и телефоны. далее их контакты в зависимости от кучи параметров используются для отправки им оповещейний. Как аналогично сделать в NetXMS, чтобы по возникновению события подписчикам ушло SMS сообщение?
2. Несколько лет пользую gammu-smsd. SMS ки рассылает nagios путем вызова команды на удаленном сервере  (на котором работает gammu-smsd) через ssh
Как такое сделать в NetXMS? т.е. в нагиос по событию вызывается любая консольная команда с передачей переменных (в случае СМС вызывается sms-injector c контактным номером телефона и описанием события).

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

Alex Kirhenshtein


QWEasd

тема не раскрыта
как(и где) заводить учетки админов,пользователей и т.д. с параметрами email + номер телефона?
как привязать рассылку оповещений на события по конкретному хосту конкретному пользователю?

Как все происходит в Centreon
1. создаю notification с именем "host-notify-by-SMS" которое выполняет команду /usr/bin/ssh -l nagios 10.10.10.10 ' gammu-smsd-inject TEXT $CONTACTPAGER$ -text "Alert $HOSTNAME$ is $HOSTSTATE$ $DATE$ $TIME$ " '
2. завожу учетку у которой есть поля содержащие в том числе поле к которому можно обратиться по переменной $CONTACTPAGER$ + в "Host Notification Commands" для создаваемой учетки задаю команду созданную в п.1.
3. завожу хост, у хоста есть "Linked Contacts" в котором указываю учетки из п.2.  Задаю событиия хоста Down,Unreachable,Recowery,Flapping для генерации уведомлений на них.

Все! СМСки полетели нужным людям в зависимости от IP адреса. как такую связку реализовать в netxms?

PS
По всей видимости для понимания вопроса - нужно почитать доку на nagios,centreon.

SKYnv

Quote from: QWEasd on February 11, 2013, 10:34:25 AM
тема не раскрыта
как(и где) заводить учетки админов,пользователей и т.д. с параметрами email + номер телефона?
как привязать рассылку оповещений на события по конкретному хосту конкретному пользователю?

Как все происходит в Centreon
1. создаю notification с именем "host-notify-by-SMS" которое выполняет команду /usr/bin/ssh -l nagios 10.10.10.10 ' gammu-smsd-inject TEXT $CONTACTPAGER$ -text "Alert $HOSTNAME$ is $HOSTSTATE$ $DATE$ $TIME$ " '
2. завожу учетку у которой есть поля содержащие в том числе поле к которому можно обратиться по переменной $CONTACTPAGER$ + в "Host Notification Commands" для создаваемой учетки задаю команду созданную в п.1.
3. завожу хост, у хоста есть "Linked Contacts" в котором указываю учетки из п.2.  Задаю событиия хоста Down,Unreachable,Recowery,Flapping для генерации уведомлений на них.

Все! СМСки полетели нужным людям в зависимости от IP адреса. как такую связку реализовать в netxms?

PS
По всей видимости для понимания вопроса - нужно почитать доку на nagios,centreon.


идете в action configuration.
заводите события типа Execute command on managment server
в качестве команды /usr/bin/ssh -l nagios 10.10.10.10 ' gammu-smsd-inject TEXT $CONTACTPAGER$ -text "Alert $HOSTNAME$ is $HOSTSTATE$ $DATE$ $TIME$ " '
Все макросы переправляете на принятые в Netxms
Далее пишем скрипт в котором мы будем сверять ip адрес хоста что послал событие и того кому шлем и будем подставляет его в строку через скрипт %[имя_скрипта_из_библиотеки]
Ну и завершающий акт вешаем на нужные события эту action через Event processing policy

могу конечно написать под вас конкретную реализацию, но мне честно говоря лень.
Решение вашего вопроса возможно штатными средствами. Всё конфигурирование сведется к правке одного единственного скрипта.

QWEasd

а где будут храниться контактные данные пользователей, в скрипте, БД или файле?
а где будут храниться IP тоже в скрипте?
а кто будет сопровождать эти скрипты и данные пользователей ?
а если хостов 500 штук и несколько десятков пользователей для оповещения?

"могу конечно написать под вас конкретную реализацию, но мне честно говоря лень."

представляете мне тоже лень, в Centeron все работает из коробки, без каких либо скриптов-костылей

на вкладке properties for <user> даже нет таких свойств - phone number, email

Понятно что есть какой то способ для реализации логики другой системы управления. Это и будет решающим значением для внедрения новой системы мониторинга.
Скрипты требуют квалификации, да и действительно лень уже что то допиливать
Или это философия NetXMS?

Victor Kirhenshtein

Quote from: QWEasd on February 11, 2013, 10:34:25 AM
тема не раскрыта
как(и где) заводить учетки админов,пользователей и т.д. с параметрами email + номер телефона?
как привязать рассылку оповещений на события по конкретному хосту конкретному пользователю?

Как все происходит в Centreon
1. создаю notification с именем "host-notify-by-SMS" которое выполняет команду /usr/bin/ssh -l nagios 10.10.10.10 ' gammu-smsd-inject TEXT $CONTACTPAGER$ -text "Alert $HOSTNAME$ is $HOSTSTATE$ $DATE$ $TIME$ " '
2. завожу учетку у которой есть поля содержащие в том числе поле к которому можно обратиться по переменной $CONTACTPAGER$ + в "Host Notification Commands" для создаваемой учетки задаю команду созданную в п.1.
3. завожу хост, у хоста есть "Linked Contacts" в котором указываю учетки из п.2.  Задаю событиия хоста Down,Unreachable,Recowery,Flapping для генерации уведомлений на них.

Все! СМСки полетели нужным людям в зависимости от IP адреса. как такую связку реализовать в netxms?

PS
По всей видимости для понимания вопроса - нужно почитать доку на nagios,centreon.

Вообщем-то в NetXMS  все более-менее похоже. Единственный недостаток - нет связи между телефонами, мейлами, и т.д. и пользовательскими аккаунтами. Мы это довольно давно уже собираемся сделать, но пока нет... Примерно последовательность действий в NetXMS выглядит так:

1. Создаем action'ы для отсылки SMS, по одному на номер.
2. В event processing policy создаем правила, когда кому отсылать SMS. В условиях может быть список хостов, или конетйнер, или субнет, коды событий, уровень серьезности событий. В качестве действий выставляем нужные action'ы для рассылки SMS нужным людям.

Ну и да, есть много вариантов с использованием скриптов, внутренних или внешних. Но пожалуй конфигурация в любом случае будет немного сложнее чем описанная выше для Nagios'a.

Мне нравится идея с linked contacts, надо будет сделать что-то подобное в NetXMS'e.

Alex Kirhenshtein

Сейчас нет явной привязки контактов к юзеру, каждый номер/мейл создается как отдельный Action, который потом можно использовать в Event Processing Policy.

EPP обрабатывается целиком (если не отработает правило с условием "stop processing"), что позволяет делать достаточно гибкую систему нотификаций, от более общих (e.g. "все NODE_DOWN" уходят админу"), к детальным правилам ("NODE_DOWN для конкретных серверов уходят еще кому-то).

Сейчас обычный подход - создавать EPP вида:
Souce: Node1, Node2, Node3
Events: SYS_NODE_DOWN, SYS_NODE_UP, etc.
Action: SMSToUser1, SMSToUser2

Можно сделать более сложную схему с одним Action, и использовать макрос %[script_name] – вызывая скрипт из Sctipt Library, который на основе какой-то своей логики вернет контакты (например вычитывая Custom Attributes у ноды), но это уже больше костыль (хотя я такое использую у клиента, где много контактов отвечающих за один-два банкомата, для них даже нет юзеров в системе мониторинга).


У нас в есть в планах добавить в профиль юзера каналы оповещения (email, sms, xmpp, etc.) – но сейчас это не сделано.
Идея с указанием "responsible person" для сервера / контейнера мне нравится, зарегистрировал ее как feature request (#235)