четверг, 27 июня 2019 г.

Zabbix-in-Telegram

Много инструкций в интернете, но с недостатками.
В этой статье я опишу те проблемы с которыми я столкнулся

Задача - настроить оповещение Zabbix в telegram группу

Берём скрипт https://github.com/ableev/Zabbix-in-Telegram и копируем к себе на zabbix сервер





Идем в телегу, ищем бота @BotFather и создаем нового бота



Мы получили токен для нашего бота. Создадим новую группу и добавим в него нашего бота
Затем добавьте в группу бота  @getmyid_bot и получите ИД группы (current chat id)
Далее устанавливаем pip и puthon2
cd /usr/src && wget https://bootstrap.pypa.io/get-pip.py
# python get-pip.py
И модули

pip install requests
pip install pysocks
Копируем в директорию /usr/lib/zabbix/alertscripts файлы zbxtg.py и zbxtg_settings.example.py из скачанного с github проекта. Последний переименовываем в zbxtg_settings.py. Приводим содержимое zbxtg_settings.py примерно к такому виду.

# -*- coding: utf-8 -*-

tg_key = "526250249:AAFtAqy4ln0BqK5vtU_9IoSlLduhtl8IaGg"  # telegram bot api key

zbx_tg_prefix = "zbxtg"  # variable for separating text from script info
zbx_tg_tmp_dir = "/var/tmp/" + zbx_tg_prefix  # directory for saving caches, uids, cookies, etc.
zbx_tg_signature = False

zbx_tg_update_messages = True
zbx_tg_matches = {
    "problem": "PROBLEM: ",
    "ok": "OK: "
}

zbx_server = "http://zabbix.server.ru/"  # zabbix server full url
zbx_api_user = "zerox"
zbx_api_pass = "password"
zbx_api_verify = False  # True - do not ignore self signed certificates, False - ignore

zbx_basic_auth = False
zbx_basic_auth_user = ""
zbx_basic_auth_pass = ""

proxy_to_zbx = None
proxy_to_tg = None

#proxy_to_zbx = "proxy.local:3128"
#proxy_to_tg = "proxy.local:3128"

google_maps_api_key = None  # get your key, see https://developers.google.com/maps/documentation/geocoding/intro

zbx_tg_daemon_enabled = False
zbx_tg_daemon_wl_ids = [210806260, ]
zbx_tg_daemon_wl_u = ["zeroxzed", ]

zbx_db_host = "localhost"
zbx_db_database = "zabbix"
zbx_db_user = "zabbix"
zbx_db_password = "password"


emoji_map = {
    "OK": "✅",
    "PROBLEM": "❗",
    "info": "ℹ️",
    "WARNING": "⚠️",
    "DISASTER": "❌",
    "bomb": "?",
    "fire": "?",
    "hankey": "?",
}
Теперь выполним, заменив mylogin на ваш логин телеги
 /usr/lib/zabbix/alertscripts/zbxtg.py "@mylogin" "тест" "тестовое сообщение" --debug
И убедимся что в телегу приходит оповещение

Далее настраиваем в заббиксе уведомления на группу и пользователя, об этом почитайте тут - делайте все как написано https://serveradmin.ru/nastroyka-opoveshheniy-zabbix-v-telegram/#_zabbix

А теперь про то с чем куча проблем у многих пользователей
Не приходит сообщение в группу из zabbix!

Для того, что бы в приватную группу телеги приходили оповещения, надо на сервере заббикса открыть файл /var/tmp/zbxtg/uids.txt и заменить
test;group;-386684***
test;private;-386684***
А в заббиксе, в способе оповещения, вместо ИД группы, написать имя группы прописанной в этом файле - test

Комментариев нет:

Отправить комментарий