千家信息网

Zabbix监控客户端及实现邮件、微信报警

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,博文大纲:一、安装Zabbix agent端二、登录web界面添加agent主机三、Zabbix监控MySQL数据库四、配置邮件报警五、配置企业微信报警注:本文是基于博文:部署zabbix监控服务器
千家信息网最后更新 2026年11月01日Zabbix监控客户端及实现邮件、微信报警

博文大纲:
一、安装Zabbix agent端
二、登录web界面添加agent主机
三、Zabbix监控MySQL数据库
四、配置邮件报警
五、配置企业微信报警

注:本文是基于博文:部署zabbix监控服务器 的环境。

这篇博文用到的所有软件都可以在这个链接获得:Zabbix 软件包

一、安装Zabbix agent端

这里我启动了一台IP为192.168.20.3的服务器,用于充当agent端。

[root@agent ~]# tar zxf zabbix-3.2.1.tar.gz -C /usr/src/[root@agent ~]# cd /usr/src/zabbix-3.2.1/[root@agent zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install[root@agent zabbix-3.2.1]# useradd zabbix -M -s /sbin/nologin #修改启动脚本[root@agent zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/[root@agent ~]# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd [root@agent ~]# sed -i 's/PIDFILE=\/tmp\/$BINARY_NAME.pid/PIDFILE=$BASEDIR\/logs\/$BINARY_NAME.pid/g' /etc/init.d/zabbix_agentd [root@agent ~]# chmod +x /etc/init.d/zabbix_agentd#修改配置文件[root@agent ~]# cd /usr/local/zabbix/etc/[root@agent etc]# sed -i 's/# PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.pid/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.log/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/Server=127.0.0.1/Server=192.168.20.2/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/# ListenPort=10050/ListenPort=10050/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.20.2/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.20.3/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/# Timeout=3/Timeout=15/g' zabbix_agentd.conf[root@agent etc]# sed -i 's/# Include=\/usr\/local\/etc\/zabbix_agentd.conf.d\//Include=\/usr\/local\/zabbix\/etc\/zabbix_agentd.conf.d\//g' zabbix_agentd.conf[root@agent etc]# egrep -v '^$|^#' zabbix_agentd.conf   #确认更改的配置文件PidFile=/usr/local/zabbix/logs/zabbix_agentd.pidLogFile=/usr/local/zabbix/logs/zabbix_agentd.logServer=192.168.20.2ListenPort=10050ServerActive=192.168.20.2Hostname=192.168.20.3Timeout=15Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/[root@agent etc]# mkdir /usr/local/zabbix/logs[root@agent etc]# chown -R zabbix:zabbix /usr/local/zabbix/[root@agent etc]# /etc/init.d/zabbix_agentd start   #启动agent

二、登录web界面添加agent主机

登录到Zabbix server端进行以下操作,以便监控刚刚配置的agent端。


三、Zabbix监控MySQL数据库

以下操作在新配置的agent端进行(自行部署MySQL数据库,在博文开头的博文链接中有脚本安装MySQL数据库的方法)。

#复制Zabbix提供的MySQL监控脚本[root@agent etc]# cd /usr/src/zabbix-3.2.1/conf/zabbix_agentd/[root@agent zabbix_agentd]# cp userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/[root@agent zabbix_agentd]# cd /usr/local/zabbix/etc/#编写文件,存放登录数据库的账号[root@agent etc]# cat > .my.cnf << EOF> [client]> host=192.168.20.3> user=test> password=123.com> socket=/usr/local/mysql/mysql.sock> EOF#修改MySQL监控脚本[root@agent ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d[root@agent zabbix_agentd.conf.d]# sed -i 's/mysql -N/\/usr\/local\/bin\/mysql -N/g' userparameter_mysql.conf [root@agent zabbix_agentd.conf.d]# sed -i 's/mysql -V/\/usr\/local\/bin\/mysql -V/g' userparameter_mysql.conf [root@agent zabbix_agentd.conf.d]# sed -i 's/mysqladmin ping/\/usr\/local\/bin\/mysqladmin ping/g' userparameter_mysql.conf [root@agent zabbix_agentd.conf.d]# sed -i 's/HOME=\/var\/lib\/zabbix/HOME=\/usr\/local\/zabbix\/etc\//g' userparameter_mysql.conf #重启agent服务,使更改生效[root@agent zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart#授权数据库用户[root@agent ~]# mysql -uroot -p123   mysql> grant all on *.* to test@'192.168.20.%' identified by '123.comm';
Zabbix-servre端测试是否可以采集到agent端的MySQL状态:
[root@zabbix logs]# zabbix_get -s 192.168.20.3 -p 10050 -k "mysql.status[Uptime]"728#在server端执行上述命令可以看到的数字,就是数据库相关的状态

回到Zabbix的web页面,添加MySQL数据库监控模板

选择MySQL模板:

查看添加的MySQL监控信息(若没有信息,则需要稍等一会):

四、配置邮件报警

以下所有操作需要在Zabbix server端配置

[root@zabbix ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL[root@zabbix ~]# tar zxf sendEmail-v1.56.tar.gz -C /usr/src/[root@zabbix ~]# cp /usr/src/sendEmail-v1.56/sendEmail /usr/local/bin/[root@zabbix ~]# chown zabbix:zabbix /usr/local/bin/sendEmail [root@zabbix ~]# vim /usr/local/bin/sendEmail         if (! IO::Socket::SSL->start_SSL($SERVER)) {#跳转到1906行,修改如上,然后保存退出

在进行接下来的操作前,需要有自己邮箱的授权码,这里以QQ为例(163或者新浪都可以)。

根据提示发送信息:

需要的就是以下授权码:

#Zabbix  Server上编写邮件报警脚本[root@zabbix alertscripts]# pwd    #所有脚本必须在该目录下/usr/local/zabbix/share/zabbix/alertscripts[root@zabbix alertscripts]# vim SendEmail.sh     #脚本如下:#!/bin/bashto=$1subject=$2body=$3/usr/local/bin/sendEmail -o tls=auto -f 916551516@qq.com -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 916551516@qq.com -xp xphunzguzeibdag -m "$body"#各项解释如下:# /usr/local/bin/sendEmail:命令主程序;# -f from@126.com :发件人邮箱# -t to@126.com :收件人邮箱# -s smtp.126.com :发件人邮箱的 smtp 服务器# -u "我是邮件主题" :邮件的标题 #-o message-content-type=html:邮件内容的格式,html 表示它是 html 格式# -o message-charset=utf8:邮件内容编码# -xu from@126.com:发件人邮箱的用户名# -xp WEE78@12l$ #发件人邮箱授权码(就是我刚刚生成的那个授权码)# -m "我是邮件内容" :邮件的具体内容#测试是否可以成功发送邮件[root@zabbix alertscripts]# chmod +x SendEmail.sh     #给与脚本执行权限[root@zabbix logs]# sh SendEmail.sh 916551516@qq.com test 123456Nov 09 22:17:55 zabbix sendEmail[9970]: Email was sent successfully!

我收到的邮件如下:

回到web界面,添加报警媒介

确认已添加报警媒介:

将报警媒介关联到用户

创建一个触发动作

设置"恢复操作"

配置当故障恢复后执行的操作:

配置触发器

确定可以看到我们配置的触发器:

报警测试:

将agent端服务器的zabbix_agent进程关闭,邮箱可以收到邮件则表示配置正确。

#在agent服务器进行以下操作[root@agent ~]# /etc/init.d/zabbix_agentd stop    #关闭agent进程

至此,即可收到报警邮件如下:

五、配置企业微信报警

网页搜索企业微信并登陆到企业微信并且自行注册,然后进行以下操作:

创建应用:


应用程序创建成功后,会显示应用信息,如下:

在上面重点记录下此应用的Agent和Secret,以便后面配置中使用。

查看企业ID、部门ID、用户账号等信息:

企业ID:

部门ID:

用户账号:

以上查看的信息,以后都要用到。

Zabbix server上获取微信报警脚本。
[root@zabbix alertscripts]# pwd/usr/local/zabbix/share/zabbix/alertscripts[root@zabbix alertscripts]# wget https://www.ixdba.net/zabbix/weixin_linux_amd64#若上面的地址失效,也可从博文开头的网盘链接中获取[root@zabbix alertscripts]# mv weixin_linux_amd64 weixin   #更改名称[root@zabbix alertscripts]# chmod 755 weixin    #赋予执行权限[root@zabbix alertscripts]# echo "AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts" >> /usr/local/zabbix/etc/zabbix_server.conf#向Zabbix主配置文件中追加上述内容#测试这个脚本是否可用,执行下面的命令(需要修改相应的值):[root@zabbix alertscripts]# ./weixin --corpid=ww829ec5c69739bbee --corpsecret=n0CcdnCzqQHUlJSdPC8C_VDr4XXzizK2sjDMUkng0b0 --msg="微信告警测试" --user=LvJianZhao --agentid=1000004{"errcode":0,"errmsg":"ok","invaliduser":""}#需要修改的内容如下:# corpid=企业号里面的企业ID;# corpsecret:这里就是我们自建应用里面的Secret的ID;# agentid:我们自建应用里面的AgentId;# msg:要发送的消息内容;# user:我们接受消息的用户账号,注意是在微信企业号里面成员详情页的账号;

执行完毕后,没有报错的话,那么我们就可以在企业微信号上收到了这条命令的告警信息了,如下:

登陆到web界面,创建微信报警媒介


关联到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}

添加后如下:

配置恢复操作:

以上添加的内容,可以从下面复制:

服务器:{HOST.NAME}:{TRIGGER.NAME}故障已恢复告警主机:{HOST.NAME}告警地址:{HOST.IP}监控项目:{ITEM.NAME}监控取值:{ITEM.LASTVALUE}告警等级:{TRIGGER.SEVERITY}当前状态:{TRIGGER.STATUS}告警信息:{TRIGGER.NAME}告警时间:{EVENT.DATE}{EVENT.TIME}恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}持续时间:{EVENT.AGE}事件ID:{EVENT.ID}

确定无误后,点击添加:

至此,微信告警整合Zabbix就配置完成了,如下:

测试微信告警功能:

#在agent进行以下操作,以便模拟故障[root@agent ~]# /etc/init.d/zabbix_agentd stop

关闭agent端后,稍后企业微信端(邮箱也会收到)即可收到以下信息:

#启动agent端,测试恢复操作:[root@agent ~]# /etc/init.d/zabbix_agentd start     

企业微信收到的信息如下:

配置 邮件 企业 报警 监控 信息 脚本 内容 数据 数据库 邮箱 服务 服务器 用户 测试 账号 应用 就是 主机 发件人 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 天津市摩尔互联网科技 互联网和科技创新 河南真二互联网科技有限公司 金诺互联网科技 互联网与科技金融数据 奇酷互联网络科技 亿策互联网科技 镁科技互联网资讯平台 安控科技rtu产品工业互联网 昭通云南众福互联网科技有限公司 福建科技产业互联网发展 科技大学互联网 互联网科技公司营业执照怎么办理 群盈汇互联网科技有限公司 山东星卡互联网科技有限公司官网 互联网科技快讯热点 本届互联网大会上的黑科技 互联网科技包装股 现代互联网科技公司 深圳九邦互联网科技有限公司 广州紫鲸互联网科技有限公司 深圳恒合互联网络科技有限公司 礼当家互联网科技 天下捷融互联网科技 联恩商钥互联网科技有限公司 农村开互联网科技讲堂 互联网科技融合创新 宁波跨境商互联网科技有限公司 科技美学互联网 艺术
0