Цель которую я преследую данной заметкой – это как получить идентификатор созданной группы (из Telegram
), в которую после будут включены коллеги по отделу системного администрирования с целью быстрого оповещения в случае срабатывания триггеров вида: Важность: Высокая и Чрезвычайная. Просто как я себе это вижу, для обычных не слишком сильно важных событий достаточно и почты, да и напоминалок, а вот что-то по серьезнее где требуется быстрое принятие ответных мер уже в мессенджер, который есть у любого. А в нашей профессии чтобы на смартфоне не был установлен Telegram
клиент это не про нас.
Все дальнейшие действия будут протекать на предшествующих этой заметке заметках.
Шаг №1:
На системе Ubuntu 18.04 Server
поднята связка 3proxy + Tor:
Шаг №2:
Бот у меня зарегистрирован с именем Ekzbot
есть его идентификатор и пароль. Процедуру регистрации бота указывать не буду, в интернете все есть.
Шаг №3:
Использую скрипт через который своему зарегистрированному боту посылаю сообщения:
ekzorchik@srv-zabbix:~$ sudo nano /usr/lib/zabbix/alertscripts/telegram.sh TOKEN=415624378:AAG4m_bSgEccPFf4W38-HSvHK_gcKnuzSz8 CHAT_ID="$1" SUBJ="$2" MESSAGE="$3" SOCKSIP=172.33.33.102 SOCKSPORT=50000 URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl -x socks5://$SOCKSIP:$SOCKSPORT -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJ}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" ekzorchik@srv-zabbix:~$ sudo chmod + /usr/lib/zabbix/alertscripts/telegram.sh
На заметку: Где IP
-адрес 172.33.33.102
– это адрес этой системы на которой у меня поднят сервис 3proxy + tor
и обозначен порт/50000
для взаимодействия через socks.
Шаг №4:
На своем смартфоне я создал группу с именем ekzit
и добавил туда хотя бы одного абонента:
Шаг №5:
В созданную группу включил своего бота с именем Ekzbot
через клиент Telegram
со своего смартфона.
Шаг №6:
Для формирования вывода с целью получения chat_id
понадобиться в систему установить утилиту:
ekzorchik@srv-zabbix:~$ sudo apt-get install -y jq
Шаг №7:
Далее запрашиваю у бота информацию в каких группах он состоит:
ekzorchik@srv-zabbix:~$ curl -x socks5://172.33.33.102:50000 -s POST https://api.telegram.org/bot415624378:AAG4m_bSgEccPFf4W38-HSvHK_gcKnuzSz8/getUpdates | jq -r ".result" "chat": { "id": -484654310, "title": "ekzit", "type": "group", "all_members_are_administrators": true },
Вот в выводе есть значение CHAT_ID
группы ekzit
.
На заметку: Для созданных в Telegram
групповых чатах идентификатор CHAT_ID
отрицательный, а для личных переписок от положительный и нужно указать именно так.
Шаг №8:
Чтобы отправить сообщение группе ekzit
теперь строка будет выглядеть следующим образом:
ekzorchik@srv-zabbix:~$ sudo /usr/lib/zabbix/alertscripts/telegram.sh -484654310 "Хост ekzorchik.ru доступен" {"ok":true,"result":{"message_id":595,"from":{"id":415624378,"is_bot":true,"first_name":"Ekzbot","username":"Ekzorchikbot"},"chat":{"id":-484654310,"title":"ekzit","type":"group","all_members_are_administrators":true},"date":1598942493,"text":"\u0425\u043e\u0441\u0442 ekzorchik.ru \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d","entities":[{"offset":5,"length":12,"type":"url"}]}} ekzorchik@srv-zabbix:~$
Шаг №9:
Чтобы отправить команду Linux
, а ее результат придет в группу:
ekzorchik@srv-zabbix:~$ sudo /usr/lib/zabbix/alertscripts/telegram.sh -484654310 $(whoami) {"ok":true,"result":{"message_id":603,"from":{"id":415624378,"is_bot":true,"first_name":"Ekzbot","username":"Ekzorchikbot"},"chat":{"id":-484654310,"title":"ekzit","type":"group","all_members_are_administrators":true},"date":1598942766,"text":"ekzorchik"}} ekzorchik@srv-zabbix:~$
Итог, сообщение пришло. Значит смело можно переходить к следующей заметке в которой я задокумментирую, как настраивается связка Zabbix 5 + Telegram
с целью уведомления о критичности, что стоит на мониторинге. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.