阅读 68

zabbix5.0微信告警,zabbix 微信告警

Zabbix微信告警

企业微信注册地址:https://work.weixin.qq.com
登录进来的首页

设置总部门名称添加成员

创建应用


收集信息 部门ID
AgentId和Secret ID
企业ID(corpid)

企业微信只要这些信息拿到手就可以了

我的zabbix_server配置如下

[root@133 ~]# cat /usr/local/etc/zabbix_server.conf|grep ^[^#]LogFile=/usr/local/etc/logs/zabbix_server.logPidFile=/tmp/zabbix_server.pidDBHost=192.168.100.133DBName=zabbixDBUser=zabbixDBPassword=zabbix123!DBSocket=/var/lib/mysql/mysql.sockTimeout=4AlertScriptsPath=/usr/local/etc/scriptsLogSlowQueries=3000Include=/usr/local/etc/zabbix_server.conf.d/*.confStatsAllowedIP=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]# lldrwxr-xr-x. 2 zabbix zabbix 31 6月 11 18:25 logsdrwxr-xr-x. 2 zabbix zabbix 23 6月 11 18:42 scripts-rw-r--r--. 1 root root 13823 6月 9 22:49 zabbix_agentd.confdrwxr-xr-x. 2 root root 6 6月 9 22:49 zabbix_留胡子的中心 root 19572 6月 11 18:24 zabbix_server.confdrwxr-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#!/xydhm/bashCorpID="wwd5932acb806b41850c"# 你的企业idSecret="BbUbI_g_4zwvgYjlRinxBu5V_xK8R1VRT-QiNLYW5O0"#你的SecretIDGURL="https://qyapi.weixin.qq.com/cgi-xydhm/gettoken?corpid=$CorpID&corpsecret=$Secret"Token=$(/usr/xydhm/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')# echo $TokenPURL="https://qyapi.weixin.qq.com/cgi-xydhm/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/xydhm/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 #!/xydhm/bashprocess=$(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[*],/xydhm/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


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐