欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

zabbix自定义邮箱报警和微信报警

程序员文章站 2022-03-18 23:46:29
前言看了很多其他人的博客,写了很多都有的用脚本的方式来实现邮箱报警,我觉得有点繁琐了,今天推荐一种不使用脚本的方式实现邮箱报警。zabbix安装部署参考: emai邮箱报警不使用脚本,利用外部邮箱发送...

前言

看了很多其他人的博客,写了很多都有的用脚本的方式来实现邮箱报警,我觉得有点繁琐了,今天推荐一种不使用脚本的方式实现邮箱报警。
zabbix安装部署参考:

emai邮箱报警

不使用脚本,利用外部邮箱发送报警信息,需要打开邮箱里的外部邮箱smtp/pop3功能开启完以后会生成一个唯一授权码,自己要保存好,外部连接时需要用到。

zabbix自定义邮箱报警和微信报警

sendmail:邮件传输代理程序,引导用户构建一个需要的邮件系统,在这个环境里是引导163.com发给qq.com
明白后,开始安装sendmail

yum -y install sendmail
vim /etc/mail.rc

在最后一行添加:

set from="17631369946@163.com" #设置代理发送邮件的用户账号
set smtp="smtp.163.com" #设置smtp服务器
set smtp-auth-user="176313169946@163.com" #设置代理邮件的登录用户
set smtp-auth-password=jubmsudzguvshkyf #唯一授权码,根据你自己而定
set smtp-auth=login

开启服务:systemctl start sendmail

smtp以及其他服务器位置,所以这里用smtp.163.com:

zabbix自定义邮箱报警和微信报警

1.在zabbix_client002里新添加监控项

提前在客户机里设置好键值,即要监测的对象

[root@localhost ~]# grep -ev '^$|#' /etc/zabbix/zabbix_agentd.conf 
pidfile=/var/run/zabbix/zabbix_agentd.pid
logfile=/var/log/zabbix/zabbix_agentd.log
logfilesize=0
server=192.168.10.7
serveractive=192.168.10.7
hostname=zabbix_client002
include=/etc/zabbix/zabbix_agentd.d/*.conf
userparameter=login_users,who|wc -l #默认是空值,自定义键值 "k"为统计登录用户
[root@localhost ~]# 

zabbix自定义邮箱报警和微信报警

名称就是 监控项的名称
键值就是设定好的 login_users

2.添加触发器

触发器结合监控项一起使用,当监控项的值到达触发器的阈值时,就会采取某种操作——邮件报警或其他报警。

zabbix自定义邮箱报警和微信报警

3.编辑报警媒介,选择email

1>编辑发件人
注:
密码需要写的是外部登入时的授权码,一般都是唯一的
邮件服务端口写25或465都可以

zabbix自定义邮箱报警和微信报警

2>编辑收件人
编辑好收件人的邮箱地址


zabbix自定义邮箱报警和微信报警

3>启用触发器的动作,默认关闭,手动打开

zabbix自定义邮箱报警和微信报警

使用xshell连接192.168.10.1,登入测试,开启多个登录界面
过一会收到报警,然后发给自己 的邮箱

zabbix自定义邮箱报警和微信报警

优化报警内容,在动作-----操作-----消息内容添加

添加:
服务器:{host.name} 发生:{trigger.name}故障!
{
告警主机:{host.name}
告警地址:{host.ip}
监控项目:{item.name}
监控取值:{item.lastvalue}
告警等级:{trigger.severity}
当前状态:{trigger.status}
告警信息:{trigger.name}
告警时间:{event.date} {event.time}
事件id:{event.id}
}

zabbix自定义邮箱报警和微信报警

修改完后更新
发送的邮件会变成

zabbix自定义邮箱报警和微信报警

微信报警

第一步:
注册企业微信号,注册就不说了,会生成唯一的企业id

zabbix自定义邮箱报警和微信报警

创建应用,自己上传图片

zabbix自定义邮箱报警和微信报警

secret号是随时可变的,agentid按自己的为准

zabbix自定义邮箱报警和微信报警

企业微信准备好以后,上传微信 脚本到 /usr/lib/zabbix/alertscripts
zabbix专门存放脚本的地方

[root@localhost ~]# grep -ev ‘^$|#' /etc/zabbix/zabbix_server.conf
logfile=/var/log/zabbix/zabbix_server.log
logfilesize=0
pidfile=/var/run/zabbix/zabbix_server.pid
socketdir=/var/run/zabbix
dbname=zabbix
dbuser=zabbix
dbpassword=123.com
snmptrapperfile=/var/log/snmptrap/snmptrap.log
timeout=4
alertscriptspath=/usr/lib/zabbix/alertscripts
externalscripts=/usr/lib/zabbix/externalscripts
logslowqueries=3000

添加脚本内容为:
#!/bin/bash
#set -x
#我的企业下面的corpid
corpid="ww2b0abxxxxxxxxxxxx" 
#创建的应用那有secret
secret="l7kvwdzjamxznmtjhqbgpzbi9vtqwagrnqwnxjfxkhs" 
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 #注意以自己的为准
local userid=$1 #发送的用户位于$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": "'"$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

必须给给脚本执行权限

zabbix自定义邮箱报警和微信报警

报警媒介自定义为微信报警,不过脚本类需要添加3个参数,如下,可以参照官网给的文档

zabbix自定义邮箱报警和微信报警
zabbix自定义邮箱报警和微信报警

定义收件人,后来才知道,自己随便写就好。

zabbix自定义邮箱报警和微信报警

定义监控项和触发器和邮件一样,这里就不做了,效果如下,参考上边

zabbix自定义邮箱报警和微信报警

动作启用

zabbix自定义邮箱报警和微信报警

模拟故障和故障恢复,使用xshell登录192.168.10.1测试

zabbix自定义邮箱报警和微信报警
zabbix自定义邮箱报警和微信报警

到此这篇关于zabbix自定义邮箱报警和微信报警的文章就介绍到这了,更多相关zabbix自定义报警内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: zabbix 报警