zabbix发送告警到telegram群组


0, 部署环境:

1
centos 7.8    zabbix 4.4    python2.7

1, 安装配置zabbix/申请telegram_bot机器人及其获取api请自行百度, 本文章不做讲解.


2, 在zabbix服务器上操作,下载telegram发消息脚本

1
2
3
4
5
cd /tmp
git clone https://github.com/ableev/Zabbix-in-Telegram.git
yum install python-pip
cd Zabbix-in-Telegram/
pip install -r requirements.txt

复制告警脚本到zabbix默认告警路径”/usr/lib/zabbix/alertscripts”

1
2
3
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,主要修改以下配置

1
2
3
4
5
6
7
8
9
10
tg_key = "1050353570:AAEW92_yWEKBYR_QzJmKmQpjaP2DDxxxxx"    # telegram api密钥

zbx_server = "https://192.168.162.111/zabbix" # zabbix网址
zbx_api_user = "Admin" # zabbix用户, 需要管理员权限
zbx_api_pass = "ABCabc-123" # zabbix登录密码

zbx_db_host = "127.0.0.1:3306" # 连接数据库地址
zbx_db_database = "zabbix" # zabbix数据库名称
zbx_db_user = "zabbix" # zabbix数据库用户
zbx_db_password = "password" # zabbix数据库密码

3, 进行zabbix网页配置

Snipaste_2020-08-24_16-07-00.png
Snipaste_2020-08-24_16-08-24.png
Snipaste_2020-08-24_16-10-55.png
Snipaste_2020-08-24_16-12-24.png
在操作中,填写触发后的消息内容和发送用户组或用户,如下

1
2
3
4
5
6
7
8
{{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}

Snipaste_2020-08-24_16-16-25.png

在恢复操作中,填写触发后的消息内容和用户

1
2
3
4
5
6
7
{{OK}}{{OK}}{{OK}}:恢复节点:{TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
恢复主机: {HOST.NAME}
恢复时间: {EVENT.DATE} {EVENT.TIME}
事件等级: {TRIGGER.SEVERITY}
恢复项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}

Snipaste_2020-08-24_16-17-05.png

配置用户权限以及告警媒介
Snipaste_2020-08-24_16-20-40.png
Snipaste_2020-08-24_16-22-08.png
Snipaste_2020-08-24_16-23-15.png

上一步配置好之后,去zabbix服务器做测试. 收到消息即为成功
切记, zabbix_hb是群组名称, 而不是机器人名称!

1
python zbxtg.py zabbix_hb "重要通知" "你的节操 余额不足,..及时充值" --group

Snipaste_2020-08-24_16-30-59.png