Все началось с того что возникла идея о мониторинге незначительных падениях , таких как свитч или канал на 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}}
На этом все 🙂 Извращаться не нужно с созданием своей прокси как мне в голову лезло) Все достаточно просто!