NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: QWEasd on February 07, 2013, 04:23:44 PM

Title: Рассылка SMS админам как в нагиос. Поменял суть вопроса!!!
Post by: 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 контактным номером телефона и описанием события).

Title: Re: Рассылка SMS админам через gammu-smsd
Post by: SKYnv on February 07, 2013, 05:44:33 PM
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 контактным номером телефона и описанием события).

самый первый пункт, вы можете написать любой скрипт на любом языке.
Title: Re: Рассылка SMS админам через gammu-smsd
Post by: Alex Kirhenshtein on February 08, 2013, 12:55:04 PM
Пример настройки: http://wiki.netxms.org/wiki/How_to_send_e-mail_notification_when_disk_space_is_low
Список макросов, которые можно использовать: http://wiki.netxms.org/wiki/UM:Event_Processing#Macros_for_Event_Processing
Title: Re: Рассылка SMS админам через gammu-smsd
Post by: 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.
Title: Re: Рассылка SMS админам через gammu-smsd
Post by: SKYnv on February 11, 2013, 03:34:11 PM
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

могу конечно написать под вас конкретную реализацию, но мне честно говоря лень.
Решение вашего вопроса возможно штатными средствами. Всё конфигурирование сведется к правке одного единственного скрипта.
Title: Re: Рассылка SMS админам как в нагиос. Поменял суть вопроса!!!
Post by: QWEasd on February 11, 2013, 03:54:31 PM
а где будут храниться контактные данные пользователей, в скрипте, БД или файле?
а где будут храниться IP тоже в скрипте?
а кто будет сопровождать эти скрипты и данные пользователей ?
а если хостов 500 штук и несколько десятков пользователей для оповещения?

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

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

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

Понятно что есть какой то способ для реализации логики другой системы управления. Это и будет решающим значением для внедрения новой системы мониторинга.
Скрипты требуют квалификации, да и действительно лень уже что то допиливать
Или это философия NetXMS?
Title: Re: Рассылка SMS админам через gammu-smsd
Post by: Victor Kirhenshtein on February 11, 2013, 04:25:11 PM
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.
Title: Re: Рассылка SMS админам как в нагиос. Поменял суть вопроса!!!
Post by: Alex Kirhenshtein on February 11, 2013, 04:49:04 PM
Сейчас нет явной привязки контактов к юзеру, каждый номер/мейл создается как отдельный 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 (https://www.radensolutions.com/chiliproject/issues/235))