Zabbix Notifications with graphs in Telegram.
Features
- Graphs based on latest data are sent directly to your messenger
- You can send messages both in private and group chats
- Channels support
- Saves chatid as a temporary file
- Simple markdown and HTML are supported
- Emoji in messages
First of all : Nedd to install python (>3) on Cent os
# yum -y install python-pip
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install -y python34u python34u-libs python34u-devel python34u-pi
# yum -y install python-pip
You need to install the
requests
module for python, this is required for operation!
# pip install requests
- Put
zbxtg.py
in yourAlertScriptsPath
directory, the path is set inside your zabbix_server.conf (once confirm by zabbix server conf file )
Link to download ZBXTG.PY file
https://drive.google.com/open?id=0BxB8j19aCMZ8dFl1aHVuLVJyRjQ
# cp zbxtg.py /usr/local/share/zabbix/alertscripts/
- Create
zbxtg_settings.py
with your settings and save them in the same directory as the script, see example for layout
Link to download ZBXTG_SETTING.PY File
https://drive.google.com/open?id=0BxB8j19aCMZ8QzJYbVY3MlZ3dWs
# cp zbxtg_settings.py /usr/local/share/zabbix/alertscripts/
- Create a bot in Telegram and get API key
Search for Telegram botfather in telegram
/start
/newbot
Then it will give you a bot api store that .
- Create readonly user in Zabbix (for getting graphs images from zabbix)
edit zbxtg_settings.py file with your server info and bot api .
- Add new media for Telegram in Zabbix web interface with these settings:
- Add another one if you want to send messages to the group
- Note that Zabbix 3.0 has different settings for that step, see it there: https://github.com/ableev/Zabbix-in-Telegram/wiki/Working-with-Zabbix-3.0
- Send a message to your bot via Telegram, e.g. "/start"
- If you are in group chat, just mention your bot, e.g.
@ZbxTgDevBot ping
- Create a new action like this:
Last value: {ITEM.LASTVALUE1} ({TIME})
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
- Add the appropriate Media Type to your user
- The username is CASE-SENSITIVE
- Group chats don't have URLs, so you need to put group's name in media type
- Messages for channels should be sent as for private chats
- Private:
- Group:
Annotations
zbxtg;graphs -- enables attached graphs
zbxtg;graphs_period=10800 -- set graphs period (default - 3600 seconds)
zbxtg;graphs_width=700 -- set graphs width (default - 900px)
zbxtg;graphs_height=300 -- set graphs height (default - 300px)
zbxtg;itemid:{ITEM.ID1} -- define itemid (from trigger) for attach
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME} -- graph title
zbxtg;debug -- enables debug mode, some logs and images will be saved in the tmp dir (temporary doesn't affect python version)
zbxtg;channel -- enables sending to channels
You can use markdown or html formatting in your action: https://core.telegram.org/bots/api#markdown-style + https://core.telegram.org/bots/api#html-style.
Debug
- You can use the following command to send a message from your command line:
./zbxtg.py "<username>" "<message_subject>" "<message_body>" --debug
- For
<username>
substitute your Telegram username, NOT that of your bot (case-sensitive) - For
<message_subject>
and<message_body>
just substitute something like "test" "test" (for Telegram it's doesn't matter between subject and body - You can omit the
"
, these are optional
Example Message From server to telegram:
/usr/local/share/zabbix/alertscripts/zbxtg.py "telegram_username" "hello" "how are you ?"
I really impressed after read this because of some quality work and informative thoughts . I just wanna say thanks for the writer and wish you all the best for coming!. telegramdownload10.com
ReplyDelete