技术
成就梦想!

Zabbix配置企业微信告警

一、企业微信申请与配置

申请地址:https://work.weixin.qq.com/

1、填写企业信息注册企业微信:
image

2、创建部门并将用户移动到创建的部门并记录部门ID
image
image

3、创建配置微信应用
image
image
image

4、保存企业ID
image

二、配置Zabbix服务器

1、查看zabbix_server.conf配置文件中告警脚本存放位置

[root@zabbix ~]# find / -name "alertscripts"
/usr/local/zabbix/share/zabbix/alertscripts

2、配置微信告警API调用脚本,根据第一章节的参数进行填写

cd /usr/local/zabbix/share/zabbix/alertscripts
vim weixin.sh
#!/bin/bash
CropID='*****************'                    #填写企业ID
Secret='*****************************'        #填写应用的Secret ID
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"      
#Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
 
function body() {
        local int AppID=1000002               		 #填写创建的应用ID 
        local UserID=$1                              #接收消息用户,系统传参,无需更改
        local PartyID=2                              #接收消息的部门ID
        local Msg=$(echo "$@" | cut -d" " -f3-)
        printf '{\n'
        printf '\t"touser": "'"$UserID"\"",\n"
        printf '\t"toparty": "'"$PartyID"\"",\n"
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'" $AppID "\"",\n"
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"\""\n"
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

3、配置脚本权限

chown zabbix:zabbix weixin.sh
chmod 755 weixin.sh

4、配置告警媒介
image

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

5、创建告警用户、添加报警媒介、权限
image
image
image

6、创建动作(触发器、操作动作、恢复动作)
image
image
image

标题内容:
{HOST.NAME}产生告警!
消息内容:
告警服务器组: {TRIGGER.HOSTGROUP.NAME}
告警服务器: {HOST.NAME}
服务器IP: {IPADDRESS}
时间: {EVENT.DATE} {EVENT.TIME}
等级: {TRIGGER.SEVERITY}
信息: {TRIGGER.NAME}
详情: {ITEM.NAME}:{ITEM.VALUE}
状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID: {EVENT.ID}

image

标题内容:
{HOST.NAME}恢复!
消息内容:
恢复服务器组: {TRIGGER.HOSTGROUP.NAME}
恢复服务器: {HOST.NAME}
服务器IP: {IPADDRESS}
时间: {EVENT.DATE} {EVENT.TIME}
等级: {TRIGGER.SEVERITY}
信息: {TRIGGER.NAME}
详情: {ITEM.NAME}:{ITEM.VALUE}
状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID: {EVENT.ID}

7、触发告警测试
通过重启服务器,灯操作触发告警就可以看到微信发送的信息。
0a5e81276fc77eacff06069e6ce5e0a
然后可以在动作日志中看到
image

三、消息发送问题定位

我们在配置过程中可能会出现各种问题,分享两个发送消息的问题排查手法,来帮助定位问题。

1、通过报警媒介测试告警发送
image

2、通过Shell脚本测试消息发送
执行命令:sh weixin.sh hello hello hello
image

赞(1)
未经允许不得转载:未来往事 » Zabbix配置企业微信告警

评论 9

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    4.0版本是没有最后测试那个动作么 没找到呀 另求一个snmp v3监控ensp中华为防火墙的模板 帅哥

    暴躁的欲4年前 (2020-05-06)回复
    • 1、Zabbix4.4您说的是告警媒介测试吧?在告警媒介里有测试。
      2、SNMP 华为防火墙SNMPV3模板暂时没有,建议你去google看看。

      join4年前 (2020-05-06)回复
  2. #2

    您好,我按照您的离线一键部署安装完后,又按照该企业微信告警设置,在测试时邮件或者企业微信都提示“超时…”。用语句重启zabbix服务时提示:
    faild to restart zabbix-sercer.service:unit not found

    云海4年前 (2020-07-05)回复
  3. #3

    您好!按照论坛里的方法离线部署zabbix系统,而后分别设置邮件告警和按照此文设置企业微信告警,两者在测试时提示“连接超时 3 秒超出当连接Zabbix 服务器 "localhost".”有时正常有时候有该提示,但都能收到告警。使用语句 systemctl restart zabbix-server进行重启,提示faild to restart zabbix-sercer.service:unit not found,但是zabbix系统等登录设置主机模板等?大神,急!!!在线等恢复?或者752597602@qq.comn留言谢啦

    云海4年前 (2020-07-05)回复
  4. #4

    带图形图片告警有吗?

    yuan与张3年前 (2021-03-08)回复
    • 没看懂你讲的意思

      join3年前 (2021-03-13)回复
  5. #5

    有没有配置 钉钉网络告警的脚本呀

    菜小鸟2年前 (2021-10-15)回复
    • 百度上有很多钉钉的告警脚本。

      join2年前 (2021-10-16)回复
  6. #6

    大佬 我的微信报警之前用的好好的 现在微信报警发送不了 怎么解决

    shi1年前 (2022-10-28)回复