⚠️ Deprecated: Zabbix now includes official support for Telegram media, see https://www.zabbix.com/integrations/telegram.
Replace my_zabbix_bot
and My Zabbix Bot
below with your own names.
Add @BotFather
contact in Telegram and press 'start',
then type:
/newbot
My Zabbix Bot
my_zabbix_bot
The bot will reply you with a token, which we will refer to as ${TOKEN}
below.
Add a @my_zabbix_bot
contact to your Telegram, press 'start' and send a random message.
Now we need to retrieve a chat_id
for this conversation.
$ curl "https://api.telegram.org/bot${TOKEN}/getUpdates"
{"ok":true,"result":[{"update_id":...,"message":{"message_id":...,"from":{...},"chat":{"id":<CHAT_ID>,...},"date":...,"text":...}}]}
The <CHAT_ID>
above is what you need. It's the RESULT.result[0].message.chat.id
key in JSON notation.
Test that it actually works:
$ curl -X POST --retry 5 --retry-delay 0 --retry-max-time 60 --data-urlencode "chat_id=${CHAT_ID}" --data-urlencode "text=Hello" "https://api.telegram.org/bot${TOKEN}/sendMessage?disable_web_page_preview=true"
Find out your AlertScriptsPath
from the zabbix_server.conf
. It's ${datadir}/zabbix/alertscripts
by default.
Put the telegram.sh
file (attached) to that folder. Don't forget to chmod +x telegram.sh
Open your Zabbix web interface, navigate to 'Administration - Media types - Create',
Put in the form:
- Name:
Telegram
- Type:
Script
- Script name:
telegram.sh
- Script parameters (Zabbix 3 only):
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
Ensure that you have an action (Configuration - Actions) which sends to the Telegram media type.
Navigate to 'Administration - Users - <Your user>
- Media', add Telegram, in the 'Send to' field put your ${CHAT_ID}
and ${TOKEN}
, separated with space, for example: 12345678 123456789:AAaaaaAAAaaa_aAAaaAaA-aaAAa
.
Hi KostyaEsmukov expert,
Need your help, saw your post here to integrate telegram in Zabbix. But i have no idea how to do it.