Пост о том как один смышлёный парень добил тему уведомлений
из системы мониторинга Zabbix в месенджер Telegram.
Уведомления не простые, а с графиками.
В Telegram, в поле Search найти бота @BotFather
и написать:
/start
/newbot
> 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
что-то не пойму, что именно в скрипте править...
ОтветитьУдалить