zabbix发送告警到telegram群组

部署环境:

centos 7.8    zabbix 4.4    python2.7

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


2. 在zabbix服务器上操作

2.1 下载telegram发消息脚本

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

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

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

2.3 修改 zbxtg_settings.py,主要修改以下配置

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

3.1 在操作中,填写触发后的消息内容和发送用户组或用户,如下

{{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

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

{{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

3.3 配置用户权限以及告警媒介

Snipaste_2020-08-24_16-20-40.png
Snipaste_2020-08-24_16-22-08.png
Snipaste_2020-08-24_16-23-15.png

3.4 上一步配置好之后,去zabbix服务器做测试. 收到消息即为成功

# 切记, zabbix_hb是群组名称, 而不是机器人名称!
python zbxtg.py zabbix_hb "重要通知" "你的节操 余额不足,..及时充值" --group

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