Настраиваю оповещение 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