Как я Telegram к Zabbix прикручивал

Все началось с того что возникла идея о мониторинге незначительных падениях , таких как свитч или канал на IPTV какой нибудь.
В итоге пал выбор на Телеграмм , хоть он у нас и заблочен РКН’ом. Гугля интернет наткнулся на проект с GitHub, и вот что там пишут разрабы

Особенности

  •  Графики на основе последних данных отправляются прямо на ваш мессенджер
  •  Вы можете отправлять сообщения как в приватном, так и в групповом / супергрупповом чатах.
  •  Поддержка каналов (только общедоступная, но вы можете сделать это как для частного, так и для грязного взлома)
  •  Сохраняет chatid как временный файл
  •  Простая уценка и HTML поддерживаются
  • Emoji (вы можете использовать эмодзи вместо серьезности, см. Статью в вики ) (zabbix пока не поддерживает кодировку utf8mb4)
  •  Карта местности

Приступим!

Качаем архив следующей командой :

wget https://github.com/ableev/Zabbix-in-Telegram/archive/master.zip && unzip master.zip

Вносим изменения в файл zbxtg_settings.py перед этим скопировав его следующей командой

cp zbxtg_settings.example.py zbxtg_settings.py
nano zbxtg_settings.py

Редактируем следующие строки:

zbx_server = "https://127.0.0.1/"
zbx_api_user = "user_admin"
zbx_api_pass = "pass_admin"
zbx_api_verify = False 
zbx_basic_auth = False
zbx_basic_auth_user = "user_admin"
zbx_basic_auth_pass = "pass_admin"
proxy_to_tg = "socks5://931764402:488JIhcE@grsst.s5.opennetwork.cc:999"
zbx_tg_daemon_enabled_users = ["user1","user2","user3" ]
zbx_tg_daemon_enabled_chats = ["ZabbixGraphics", ]

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

Разберем по порядку :
zbx_server — прописываем здесь адрес по которому мы заходим на web морду, это обычно https://127.0.0.1/zabbix. У меня убрана эта приставка , и я захожу через localhost.
zbx_api_user/pass — указываем здесь пароль и пользователя через которого будем пересылать графики (долго не мог понять почему графики не приходят)
zbx_basic_auth_user/pass — то же самое что и выше
proxy_to_tg — прокся в следующем виде необходима для того что бы telegram bot вообще работал , потому что РКН решил нам перекрыть доступ
zbx_db_* — ну а тут мы указываем доступ к БД

Положите zbxtg.pyв свой AlertScriptsPathкаталог, путь установлен внутри вашего zbxtg_settings.py

Общие изменения

В предыдущих выпусках у каждого скрипта оповещения был сложный способ передачи ему параметров из zabbix. Там было $1 это to поле, $2 это subjectи $3 есть MESSAGE

И это еще не все.

Групповые уведомления

Как уже было сказано, у вас есть возможность передавать множество параметров в ваш пользовательский скрипт оповещения. Так что теперь больше нет необходимости использовать zbxtg_group.py, просто добавьте четвертый параметр, --group
Можно проверить в командной строки:python zbxtg.py "Zabbix in Telegram" ololo ololo --group

Дальше прикручиваем это все к действиям. Приведу кусок шаблона , а потом правьте сами если нужно

{{problem}} "{HOST.NAME}" : {TRIGGER.NAME}
{{fire}}{{fire}}{{fire}}{{fire}}{{fire}}
 zbxtg;graphs
 zbxtg;graphs_period=10800
 zbxtg;itemid:{ITEM.ID1}
 zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
 Последнее значение: {ITEM.LASTVALUE1} "{TIME}"
 Статус: {TRIGGER.STATUS}
 IP : {HOST.IP}
 {{fire}}{{fire}}{{fire}}{{fire}}{{fire}}

На этом все 🙂 Извращаться не нужно с созданием своей прокси как мне в голову лезло) Все достаточно просто!