zabbix 配置 telgram 告警
zabbix 配置 Zabbix-in-Telegram
国内推荐使用丁丁,微信或者qq等工具.
1. 申请 Telegram 机器人
申请机器人参考: https://core.telegram.org/bots#creating-a-new-bot
- 访问 https://telegram.me/botfather ,使用使用 **/newbot **命令创建新的bot.
-
将新生成的 bot 加入需要被告警的 Tel 群组.输入一些文本.稍后获取信息.
botXXX:YYY 中XXX:YYY 请替换为获取的 token
-
type:group 为 Tle 的组, title 对应组名,id 为组 ID.
-
执行 POST 测试机器人是否正常.
curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=ZZZ&text=my sample text"
ZZZ 替换为 刚获取的 组ID 例如 -2788747XXX
text 中为文本内容
2. 配置 Zabbix-in-Telegram
zabbix in Telegram 配置: https://github.com/ableev/Zabbix-in-Telegram
-
打开zabbix_server配置,查看
AlertScriptsPath=/usr/lib/zabbix/alertscripts
-
clone 代码,安装依赖.
git clone https://github.com/ableev/Zabbix-in-Telegram.git yum install python-pip cd Zabbix-in-Telegram/ pip install -r requirements.txt
-
复制告警脚本至配置路径
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
-
修改 zbxtg_settings.py
tg_key = "KEY" # telegram bot api key zbx_server = "http://youip:port/zabbix/" # zabbix server full url 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
参数./zbxtg.py "@dave99" "重要通知" "你的节操余额不足,请及时充值"
./zbxtg.py "Myball-Warning" "@brock" "你的节操 余额不足,..及时充值" --group
-
3.配置 zabbix-server-web
-
创建 Media types: 此配置为 3.0及以上版本配置
1557134307629 -
创建 action
登录到页面中在configuration->Actions->Triggers->Create action创建一个action
1557134537805创建新的时候注意可以设置触发器级别,下图配置为超过infomation级别就会触发此动作
1557134688635在Operations中,填写触发后的message,内容如下
1557134833494{{fire}}{{fire}}{{fire}}:告警节点:{TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE} 告警主机: {HOST.NAME} 告警时间: {EVENT.DATE} {EVENT.TIME} 告警等级: {TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目: {TRIGGER.KEY1} 当前状态: {TRIGGER.STATUS}.{ITEM.VALUE} 事件ID: {EVENT.ID} zbxtg:graphs zbxtg:graphs_period=10800 zbxtq:itemid:{ITEM.ID1} zbxtg:title:{HOST.HOST} - {TRIGGER.NAME}
设置 Operations 中,发送的组或用户,指定使用 Media TYPES.
1557134967723在 Recovery operrations 中,填写触发后的message,和Details
1557135056672{{OK}}{{OK}}{{OK}}:恢复节点:{TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE} 恢复主机: {HOST.NAME} 恢复时间: {EVENT.DATE} {EVENT.TIME} 事件等级: {TRIGGER.SEVERITY} 恢复项目: {TRIGGER.KEY1} 当前状态: {TRIGGER.STATUS}.{ITEM.VALUE} 事件ID: {EVENT.ID} zbxtg:graphs zbxtg:graphs_period=10800 zbxtq:itemid:{ITEM.ID1} zbxtg:title:{HOST.HOST} - {TRIGGER.NAME}
-
配置User,为被告警用户组添加 Media.
1557135360593 -
模拟告警, 观察 Tel 组是否可以收到告警.
网友评论