Telegram介绍
Telegram是一款跨平台的即时通讯软件,客户端是自由及开放源代码软件,官方提供手机版(Android、iOS、Windows Phone)、桌面版(Microsoft Windows、macOS、Linux)和网页版等多种平台客户端,同时官方开放应用程序接口(API)
zabbix每日都有很多的警告,警告的通知可使用Email、短信等通知到用户。在GitHub上有这么一个项目Zabbix-in-Telegram,直接使用电报来转发到用户。类似微信公众号的效果,每时每刻都可以接收到,其优点是可将主机状态通过图表的形式,选择私聊通知个人告警消息,或者把告警信息发送到群组中。
效果图
配置步骤
一、创建TelegramAPI机器人
首先,通过以下链接连接到 @BotFather :Zabbix-in-Telegram。当在电报中打开与 BotFather 的聊天窗口时,按下Start按钮。
你会看到像这样的消息:
按 /newbot 命令,并输入您的机器人的名称。
在这之后,您必须为机器人设定用户名。按照屏幕上的说明操作即可。
选择用户名后,您的机器人将自动创建并可以使用。然后,您将看到如下消息。
二、配置 Zabbix-in-Telegram
clone 代码,安装依赖.
cd /usr/lib/zabbix/alertscripts #切换到zabbix的告警脚本存放目录
git clone https://github.com/ableev/Zabbix-in-Telegram.git #下载脚本文件
cd Zabbix-in-Telegram/
pip install -r requirements.txt
注:这里可能出现没有安装git和python、python3等直接使用apt install命令安装即可。
复制告警脚本至配置路径
cp zbxtg.py zbxtg_settings.example.py zbxtg_group.py /usr/lib/zabbix/alertscripts/
cd /usr/lib/zabbix/alertscripts/
mv zbxtg_settings.example.py zbxtg_settings.py
修改使用vi命令修改 zbxtg_settings.py
tg_key = "KEY" # telegram bot api key
zbx_server = "http://youip:port/zabbix/" # 改成自己的zabbix服务器地址和端口
zbx_api_user = "Admin"
zbx_api_pass = "zabbix"
tg_key 是生成的 Tel Token,zabbix用户名密码必须是能够登陆的,且有权限.可以使用Admin.
测试脚本是否可以正常发送告警.
调试
./zbxtg.py "@username" "first part of a message" "second part of a message" --debug
@username
是 telgrame 需要接受告警的 用户名或者组名,使用组名时加 --group
参数
私聊用户
这里需要先与你创建的机器人私发消息如 :/start
./zbxtg.py "@iksjls" "重要通知" "你的节操余额不足,请及时充值"
发送到群组
这里需要先创建一个群组,将你的机器人拉进群,在群组里与你创建的机器人发消息如 :@你的机器人
./zbxtg.py "Zabbix告警" "@iksjls" "你的节操 余额不足,及时充值" --group
三、配置 zabbix-server-web
1. 添加媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2. 配置动作-触发器动作
3. 添加故障后操作
故障通知主题:
{{fire}}{{fire}}{{fire}}:告警节点:{TRIGGER.NAME}
故障通知消息内容:
问题详情: {ITEM.NAME}:{ITEM.VALUE}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
事件ID: {EVENT.ID}
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
4. 添加恢复后操作
恢复通知主题
{{OK}}{{fire}}{{OK}}:恢复节点:{TRIGGER.NAME}
恢复通知消息内容
问题详情: {ITEM.NAME}:{ITEM.VALUE}
恢复时间: {EVENT.DATE} {EVENT.TIME}
事件等级: {TRIGGER.SEVERITY}
恢复项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
事件ID: {EVENT.ID}
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
5. 配置需告警通知的用户
注:这里添加报警媒介时两个更新按钮都要点击,不然不会保存更改。
测试告警效果
私发故障告警
私发恢复告警
群组消息告警配置
这里仅需在媒介这里修改对应的群组消息脚本文件名称和添加--group参数即可,
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
--group
其他操作参照个人私发告警通知的操作步骤,这里不再赘述
下面是群组告警消息测试
群组故障告警
群组恢复告警
至此,Ubuntu 22.04.4 Zabbix6.4实现了Telegram图像化消息告警。