Скорая Компьютерная Помощь г. Калуга

Полный спектр компьютерных услуг!

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

  • Вся информация, расположенная в данном и других разделах форума получена из открытых источников (интернет-ресурсы, средства массовой информации, печатные издания и т.п.) и/или добавлена самими пользователями. Администрация форума предоставляет его участникам площадку для общения / размещения файлов / статей и т.п. и не несет ответственности за содержание сообщений, а также за возможное нарушение авторских, смежных и каких-либо иных прав, которое может повлечь за собой информация, содержащаяся в сообщениях.
Ремонт компьютеров в калуге Рекламное место сдается
 
Ответить в эту темуОткрыть новую тему
> [Из песочницы] Получаем уведомления от Zabbix в WhatsApp
Decker
сообщение 2.7.2014, 14:25
Сообщение #1


Администратор
*****

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1




Системное администрирование*,
Linux*
В сети можно найти множество способов получения уведомлений от Zabbix. Мне показалось удобным получать алерты в WhatsApp — это дешевле, чем sms и, в моем случае, удобнее, чем почта — для получения уведомлений у нас используется корпоративный почтовый аккаунт, доступ к которому извне ограничен, к тому же, алерт может затеряться среди остальных писем.



Настройка довольна проста. Нам понадобится:



1) yowsup и его зависимости:

1.1) python 2.6+

1.2) python-dateutil

1.3) argparse for python < 2.7

1.4) libxml2, если yowsup будет использоваться со старой версии API (флаг --v1)

2) Доступ сервера Zabbix к сети интернет

3) Телефон с SIM-картой, на номер которой будет зарегистрирован аккаунт WhatsApp




Шаг 1: Установка зависимостей yowsup


Прежде всего нужно установить зависимости для yowsup.



В Debian-подобных дистрибутивах или использующих формат пакетов DEB это делается так:



# aptitude install python python-dateutil python-argparse




В дистрибутивах на базе RedHat или использующих формат пакетов RPM:



# yum install python python-dateutil python-argparse




В моем случае в репозитории не оказалось пакета python-argparse, пришлось скачать его отдельно и установить вручную. Для RHEL 6 это можно сделать, например, здесь.



Установка:



# rpm -i python-argparse-1.2.1-5.1.noarch.rpm





Шаг 2: Установка yowsup


После установки зависимостей ставим сам yowsup. Официальная страница проекта расположена на GitHub. Непосредственно с сервера Zabbix'а yowsup можно скачать таким образом:



# wget https://github.com/tgalal/yowsup/archive/master.zip




Распаковываем архив и переходим в директорию yowsup-master/src:



# unzip master.zip
# cd yowsup-master/src




Копируем пример конфига в рабочий конфиг:



# cp config.example yowsup-cli.config




В нем всего четыре строчки:



cc=7
phone=
id=
password=




cc — это код страны. Список кодов можно найти на странице СountryСode.org. Код России — 7;



phone — номер телефона, к которому будет привязан аккаунт WhatsApp. Должен начинаться с кода страны;



id — это поле нужно в том случае, если Вы хотите использовать существующий аккаунт WhatsApp и старую версию API (запуск yowsup с флагом --v1). Если аккаунт был создан на устройстве Nokia или Android, то в поле id нужно написать IMEI устройства. Если на устройстве на базе iOS, то нужно писать MAC-адрес интерфейса WLAN. В новых версиях API это поле не используется, можно оставить его пустым;



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



Итак, заполняем поля конфига:



cc=7
phone=79123456789
id=
password=




Далее нужно пройти процедуру регистрации, в течение которой на номер телефона, указанный в конфиге, придет sms с кодом подтверждения. Вообще, проблем на этом шаге возникнуть не должно. Убедитесь, что сервер Zabbix'а имеет доступ на сервера WhatsApp по протоколу https. Если Zabbix стоит за фаерволом и политика безопасности не позволяет открыть ему полный доступ в интернет, получить список адресов можно, запустив tcpdump на сетевом интерфейсе сервера и посмотреть куда обращается yowsup, запустив процедуру регистрации. Не буду останавливаться на этом подробно, мануалов по tcpdump в сети много, скажу лишь, что мне пригодилась такая команда (весь tcp трафик на интерфейсе eth0, который не ходит в пределах локальной сети 10.0.0.0/8):



# tcpdump -i eth0 -n tcp and not src net 10.0.0.0/8 and dst net 10.0.0.0/8




Отправляем запрос на регистрацию:



# ./yowsup-cli -c yowsup-cli.config -r sms




Если все прошло нормально, нам придет sms с шестизначным кодом подтверждения (например, 123-456). Отправляем этот код на сервер WhatsApp:



# ./yowsup-cli -c yowsup-cli.config -R 123456




После этого в поле password нашего конфига должен появиться пароль. На этом процедура регистрации завершена, можно попробовать отправить сообщение другому пользователю WhatsApp.



Отправить сообщение можно командой



# ./yowsup-cli --send 79123456780 "Test message" --wait --config yowsup-cli.config




Принять сообщение:



# ./yowsup-cli --listen --autoack --keepalive --config yowsup-cli.config




А можно вообще в режиме чата переписываться:



# ./yowsup-cli --interactive 79123456780 --wait --autoack --keepalive --config yowsup-cli.config








На этом настройка yowsup закончена.




Шаг 3: Пишем скрипт отправки алертов


Чтобы подружить yowsup и Zabbix, надо написать скрипт отправки уведомлений. Напомню, что Zabbix берет скрипты уведомлений из директории, определенной в переменной AlertScriptsPath конфига zabbix_server.conf. В моем эта директория располагалась в /usr/local/share/zabbix/alertscripts:



# cat /usr/local/etc/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=/usr/local/share/zabbix/alertscripts




Кладем туда скрипт (я назвал его whatsapp), состоящий буквально из трех строчек:



#!/bin/bash
DIR='/usr/local/share/zabbix/alertscripts/yowsup-master/src/' # путь к файлам yowsup
$DIR/yowsup-cli --send $1 "$2 $3" --wait --config $DIR/yowsup-cli.config




Я положил файлы yowsup в директорию alertscripts — может быть, это не самое лучшее решение, но мне показалось, что так удобнее будет искать конфиги/скрипты в случае чего.



$1 $2 $3 — это значение переменных Zabbix, означающие, соответственно, «кому отсылать уведомление», «тема» и «тело уведомления». Мы настроим эти поля далее из интерфейса Zabbix.



Делаем скрипт исполняемым:



# chmod +x /usr/local/share/zabbix/alertscripts/whatsup





Шаг 4: Настраиваем Zabbix


Действуем по стандартному алгоритму:



1) Создаем способ оповещения

2) Создаем действие, связанное с этим оповещением

3) Подключаем уведомление пользователям




1) Создаем способ оповещения


В меню Администрирование -> Оповещения (Administration -> Media types) нажимаем кнопку Создать способ оповещения (Create media type).







Имя (Name): Любое по Вашему желанию

Тип (Type): — Скрипт (Script)

Имя скрипта (Script Name): — Должно совпадать с именем скрипта, созданного на предыдущем шаге (whatsapp в нашем случае)




2) Создаем действие


По умолчанию в Zabbix настроено действие, которое делает рассылку всем администраторам всеми видами оповещений:







Если такого действия у Вас нет, то нужно создать свое. Меню Настройка -> Действия (Configuration -> Action), создаем новое действие кнопкой Создать действие (Create Action).







На вкладке Действие (Action) можно определить формат сообщения, которое будет отсылаться в WhatsApp. Я оставил всё по умолчанию







На вкладке Условия (Conditions) настраиваются условия, при которых будет выполняться действие. Тоже оставил по умолчанию.







Ну и на вкладке Операции (Operations) мы указываем что должен делать Zabbix: отправить сообщение (Send message) группе пользователей или отдельному пользователю способом оповещения WhatsApp.



Сохраняем настройки и переходим к следующему шагу.




3) Подключаем уведомление пользователям


Заходим в настройки пользователя (Администрирование -> Пользователи или Administration -> Users), выбираем нужного пользователя и настраиваем ему Способ оповещений (Media):







Тип оповещения (Type): WhatsApp

Отправлять на (Send to): Номер телефона с кодом страны (например, 79123456789)

Выбираем время, когда можно присылать сообщения и степень их критичности. Сохраняем настройки.



На этом настройка закончена, но еще нужно проверить, что сообщения уходят и успешно доставляются. Можно проследить за отправкой уведомлений в меню Администрирование -> Аудит (Administration -> Audit), выбрав пункт Действия (Actions):







Видим, что уведомление было успешно отправлено:







Проверяем WhatsApp на смартфоне:







Работает!

Original source: habrahabr.ru (comments, light).

Читать дальше


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Рекламное место сдается Рекламное место сдается
Текстовая версия Сейчас: 20.4.2024, 3:57
Рейтинг@Mail.ru
Яндекс.Метрика Яндекс цитирования