среда, 11 ноября 2015 г.

Отправка уведомлений системы мониторинга Zabbix в Telegram / Send Zabbix events to Telegram

Пост о том как один смышлёный парень добил тему уведомлений 
из системы мониторинга Zabbix в месенджер Telegram. 
Уведомления не простые, а с графиками.

В Telegram, в поле Search найти бота @BotFather


и написать:
/start
/newbot
 - Alright, a new bot. How are we going to call it? Please choose a name for your bot.
> Zabbix (Название БОТА)

- Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
> zabbix_bot (UserName БОТА)

- Use this token to access the HTTP API:
  150000000:XXx_xxxXxxxXXXXxxxxxxXXXxxxxxxx_XX

Проверка БОТА. В браузере ввести:
https://api.telegram.org/bot150000000:XXx_xxxXxxxXXXXxxxxxxXXXxxxxxxx_XX/getMe

Должны получить - "ok":true



Активация БОТА

В Telegram, в поле Search найти нашего бота zabbix_bot

 и нажать Start


Скачать скрипт "zbxtg.sh" и файл конфигурации "tg_vars.cfg" в /usr/local/share/zabbix/alertscripts
https://github.com/ableev/Zabbix-in-Telegram

Прописать наш HTTP API
$ vi tg_vars.cfg

TG_KEY="150000000:XXx_xxxXxxxXXXXxxxxxxXXXxxxxxxx_XX"
ZBX_API_USER="telegram" # Пользователь в Zabbix с правами ReadOnly
ZBX_API_PASS="12345" # Пароль

Подправить скрипт

$ vi zbxtg.sh

login() {
     ${CURL} -L --cookie-jar ${TMP_COOKIE} --request POST --data "name=${ZBX_API_USER}&password=${ZBX_API_PASS}&enter=Sign%20in" ${ZBX_SERVER}
}

get_image() {
     URL=$1
     IMG_NAME=$2
     wget -qO- --load-cookies=${TMP_COOKIE} --save-cookies=${TMP_COOKIE} --keep-session-cookies "${URL}" > ${IMG_NAME}
}

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

then
     MATCH=".chat.:{.id.:.*,.title.:.${TO}.}"
     TG_CONTACT_TYPE="chat"
else
     MATCH=".chat.:{.id.:.*,.username.:.${TO}.}"
     TG_CONTACT_TYPE="user"

Отправка сообщения от БОТА на свой аккаунт
$ ./zbxtg.sh UserName TEST

Создать группу для рассылки

Подключение БОТА к группе

Зайти в БОТА zabbix_bot > Add to Group

Отправка сообщения от БОТА на группу
$ ./zbxtg.sh zabbix_bot TEST

Отправка сообщения от БОТА на группу с графиком
$ ./zbxtg.sh zabbix_gc_bot "TEST: Server" "Trigger: Test
zbxtg;graphs
zbxtg;graphs_period=3600 #TimeRangeGraph
zbxtg;itemid:12345 #YourItemID

zbxtg;title:Test - Graph #TiteleGraph"

Запретить добавление БОТА в другие группы 
- В @BotFather написать /setjoingroups, выбрать БОТА и нажать Disable







 

В Zabbix, создать новый Administration > Media types

Создать пользователя Telegram 
- в Administration > Users с правами ReadOnly, и добавить отправку на БОТА


 Создать действие Configuration > Actions


 с оповещением на пользователя Telegram
 Источник: fiveit.blogspot.ru

1 комментарий: