Zabbix设置微信报警

Zabbix微信告警

企业微信注册地址:https://work.weixin.qq.com
登录进来的首页
在这里插入图片描述
设置总部门名称添加成员
在这里插入图片描述
创建应用
在这里插入图片描述

在这里插入图片描述

收集信息
  1. 部门ID
    在这里插入图片描述
  2. AgentId和Secret ID
    在这里插入图片描述
  3. 企业ID(corpid)
    在这里插入图片描述
    企业微信只要这些信息拿到手就可以了

我的zabbix_server配置如下

[root@133 ~]# cat /usr/local/etc/zabbix_server.conf|grep ^[^#]
LogFile=/usr/local/etc/logs/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=192.168.100.133
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix123!
DBSocket=/var/lib/mysql/mysql.sock
Timeout=4
AlertScriptsPath=/usr/local/etc/scripts
LogSlowQueries=3000
Include=/usr/local/etc/zabbix_server.conf.d/*.conf
StatsAllowedIP=127.0.0.1
# 脚本目录和日志目录没有要创建
[root@133 ~]# cd /usr/local/etc
[root@133 etc]# mkdir scripts/
[root@133 etc]# mkdir logs
[root@133 etc]# touch logs/zabbix_server.log
[root@133 etc]# chown -R zabbix.zabbix scripts/ logs/
[root@133 etc]# ll
drwxr-xr-x. 2 zabbix zabbix    31 6月  11 18:25 logs
drwxr-xr-x. 2 zabbix zabbix    23 6月  11 18:42 scripts
-rw-r--r--. 1 root   root   13823 6月   9 22:49 zabbix_agentd.conf
drwxr-xr-x. 2 root   root       6 6月   9 22:49 zabbix_agentd.conf.d
-rw-r--r--. 1 root   root   19572 6月  11 18:24 zabbix_server.conf
drwxr-xr-x. 2 root   root       6 6月   9 22:50 zabbix_server.conf.d
[root@133 etc]# pwd
/usr/local/etc

微信报警脚本

[root@133 ~]# cd /usr/local/etc/scripts/
[root@133 scripts]# vim weixin.sh
#!/bin/bash
CorpID="wwd5932acb806b41850c"	# 你的企业id
Secret="BbUbI_g_4zwvgYjlRinxBu5V_xK8R1VRT-QiNLYW5O0"	#你的SecretID
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')
# echo $Token
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"

function body(){
        local int agentid=1000002		# 你的agentdid
        local UserID="@all"                 # 发送的用户ID
        local PartyID=1                  # 部门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": "'"$agentid"\"",\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


[root@133 etc]# chmod +x scripts/weixin.sh
[root@133 etc]# chown -R zabbix:zabbix /usr/local/etc/scripts/
[root@133 etc]# kill -9 zabbix_server
[root@133 etc]# zabbix_server

测试:
[root@133 scripts]# ./weixin.sh test
{"errcode":0,"errmsg":"ok","invaliduser":""}
# 此时微信就会收到信息‘test’

设置zabbix报警配置
在这里插入图片描述
创建报警用户和组
在这里插入图片描述
在这里插入图片描述
报警媒介添加用户
收件人为部门id
在这里插入图片描述
在这里插入图片描述

设置动作

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

设置恢复:
恢复:恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里微信报警就设置好了,下面就来触发一下
可以使用自定义监控的方式,也可以是用模板的方式,这里就演示一下自定义的监控方式:

这里以httpd为例监控80端口

# 在客户端安装httpd
[root@agentd ~]# yum -y install httpd
[root@agentd ~]# systemctl start httpd

# 在客户端创建脚本存放目录
[root@agentd ~]# mkdir /scripts

# 写脚本
[root@agentd ~]# cat /scripts/check_process.sh 
#!/bin/bash

process=$(ps -ef|grep -Ev "grep|$0"|grep -c $1)
if [ $process -gt 0 ];then
    echo "0"
else
    echo "1"
fi

# 给脚本执行权限
[root@agentd ~]# chmod a+x /scripts/check_process.sh 
[root@agentd ~]# ll /scripts/check_process.sh
-rwxr-xr-x 1 zabbix zabbix 135 8月  24 15:26 /scripts/check_process.sh

# 改脚本存放目录的属主
[root@agentd ~]# chown -R zabbix.zabbix /scripts/
[root@agentd ~]# ll -d /scripts/
drwxr-xr-x 2 zabbix zabbix 30 8月  24 16:34 /scripts/

# 改客户端配置文件agentd.conf
[root@agentd ~]# echo "UnsafeUserParameters=1" >>/usr/local/etc/zabbix_agentd.conf
[root@agentd scripts]# echo 'UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1' >>/usr/local/etc/zabbix_agentd.conf

# 重启zabbix_agent
[root@agentd ~]# pkill zabbix_agentd
[root@agentd ~]# zabbix_agentd 

# 在服务端手动测试
[root@133 etc]#  zabbix_get -s 192.168.100.138 -k check_process[httpd]
0  	 # 0代表没有问题

# 停掉httpd服务再测试
[root@agentd ~]# systemctl stop httpd
[root@133 etc]#  zabbix_get -s 192.168.100.138 -k check_process[httpd]
1	 # 1代表服务没有进程运行

添加主机
在这里插入图片描述
创建应用集
在这里插入图片描述

添加监控项
在这里插入图片描述
添加触发器
在这里插入图片描述
查看监控到的最新数据
在这里插入图片描述

在这里插入图片描述
停止agentd端的httpd触发一下看微信能否收到信息
[root@138 scripts]# systemctl stop httpd
在这里插入图片描述
在这里插入图片描述
在微信这里收到了故障报警,现在恢复agentd端的httpd看能否收到恢复报警通知
[root@138 scripts]# systemctl start httpd
在这里插入图片描述

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值