titan Posted February 14, 2024 Posted February 14, 2024 (edited) Настраиваю оповещение Zabbix через Telegram, перепробывал кучю инструкций, не уходят сообщения через Zabbix, хотя скрипт с консоли сообщения отсылает и в Telegram они приходят, и почему скрип при запуске выдает api.telegram error. [root@zabbix bin]# tgsend.sh "OK" api.telegram error cmd=curl -s --header 'Content-Type: application/json' --request 'POST' --data "{"chat_id":"-XXXXXX","text":"\nOK"}" "https://api.telegram.org/botXXXXXX:XXXXXX/sendMessage" ressult={"ok":true,"result":{"message_id":66,"from":{"id":XXXXXX,"is_bot":true,"first_name":"XXXXXX","username":"XXXXXX"},"chat":{"id":-XXXXXX,"title":"XXXXXXX","type":"group","all_members_are_administrators":true},"date":1707904054,"text":"OK"}} Скрипт tgsend.sh #!/bin/bash set -o pipefail TOKEN="XXXXXX:XXXXXX" CHAT_ID="-XXXXXX" APIURL="https://api.telegram.org/bot${TOKEN}/sendMessage" if [[ -z "$1$2" ]]; then echo "Missing arguments" >&2; exit 2; fi if [[ -z "$2" ]] then SUBJECT="" MESSAGE="$1" else SUBJECT="$1" MESSAGE="$2" fi curlres=$(curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "${APIURL}") curlerr="$?" if [[ $curlerr -ne 0 ]]; then echo "Curl error:$curlerr" >&2; exit 2;fi if [[ "$(echo "$curlres"jq ".ok")" != "true" ]] then echo "api.telegram error" >&2 echo "cmd=curl -s --header 'Content-Type: application/json' --request 'POST' --data \"{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}\" \"${APIURL}\"" >&2 echo "ressult=$curlres" >&2 fi exit 0 Edited February 14, 2024 by titan Вставить ник Quote
himikrzn Posted February 14, 2024 Posted February 14, 2024 (edited) dell Edited February 14, 2024 by himikrzn Вставить ник Quote
fox_m Posted February 14, 2024 Posted February 14, 2024 А как в Заббикс настраиваете? Там просто по идее все. Создать способ оповещений, в котором токен указать. И в настройках пользователя (где оповещения) указать чат id. Версия какая Заббикса? Вставить ник Quote
ixi Posted February 15, 2024 Posted February 15, 2024 if [[ "$(echo "$curlres"jq ".ok")" != "true" ]] пайп пропущен? не усложняйте.. tgres=$(jq ".ok" <<< "$curlres") if [[ "$tgres" != "true" ]] Вставить ник Quote
roysbike Posted February 15, 2024 Posted February 15, 2024 в zabbix из коробки отправка в telegram работает? нет? Вставить ник Quote
murano Posted February 16, 2024 Posted February 16, 2024 6 часов назад, roysbike сказал: в zabbix из коробки отправка в telegram работает? нет? Да, оно с пятых версий из коробки Вставить ник Quote
titan Posted February 16, 2024 Author Posted February 16, 2024 (edited) верисия 3 стоит и этого хватает, тоже грешу на скрипт. Edited February 16, 2024 by titan Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.