千家信息网

zabbix监控——部署、监测及邮件报警机制(实操!)

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,zabbix简介zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员
千家信息网最后更新 2026年11月02日zabbix监控——部署、监测及邮件报警机制(实操!)

zabbix简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

Zabbix 角色组件

Zabbix agent:负责部署在被监控主机上,把被监控主机的数据传送给zabbix server
Zabbix server:负责接收agent发送的信息,组织配置信息,统计配置信息和操作数据等
Zabbix database: 用于存储zabbix的所有配置信息,监控数据的数据库
Zabbix web: zabbix的web界面,管理可以通过zabbix的web界面管理zabbix配置以及查看zabbix的监控信息,可以独一部署在一台服务器上
Zabbix proxy:分布式环境中使用,zabbix proxy代表server端管理该区域中的信息收集,最终统一发往zabbix server

zabbix通讯方式

agent:通过专用的代理程序进行监控
ssh/Telnet:通过远程控制协议进行通讯
SNMP:通过SNMP协议与被监控对象进行通讯,路由器和交换机支持SNMP,其实也是一种agent
IPMI:通过IPMI接口进行监控,通过IPMI硬件接口监控,电压,温度,风扇,和电源状态
JMX:通过(java management extensions Java管理扩展)监控JVM虚拟机~~

分布式的监控体系:监控数据被提交给zabbix proxy 再 提交给zabbix server

Zabbix 工作模式

主动模式:由agent端主动收集信息发送给server端 工具是zabbix_sender被动模式:由server端主动拉取信息 工具是zabbix_get

实验环境

检测端server 192.168.13.128被检测端agent 192.168.13.130

1,在master上安装lamp架构

[root@server ~]# systemctl stop firewalld.service   ##关闭防火墙[root@server ~]# systemctl disable firewalld.service [root@server ~]# setenforce 0##安装lamp架构##[root@server ~]# yum install -y \httpd \mariadb-server mariadb \php \php-mysql \   ##关联数据库php-gd \libjpeg* \php-ldap \php-odbc \php-pear \php-xml \php-xmlrpc \php-mhash[root@server ~]# vim /etc/httpd/conf/httpd.conf 95 ServerName www.yun.com:80                        #第95行,删除注释,域名自定义164     DirectoryIndex index.html index.php         #164行,添加首页支持类类型index.php[root@server ~]# vim /etc/php.ini 878 date.timezone = PRC     #878行,把前面模板的;号删除,后面添加中国时区PRC[root@server ~]# systemctl start httpd.service    ##开启服务[root@server ~]# systemctl start mariadb.service [root@server ~]# netstat -natp | egrep '(3306|80)'    ##查看端口号tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      5087/mysqld         tcp6       0      0 :::80                   :::*                    LISTEN      4807/httpd          [root@server ~]# mysql_secure_installation   ##初始化数据库Enter current password for root (enter for none):   #此处直接回车Set root password? [Y/n] y      #设置密码New password:       #abc123Re-enter new password:      #确认输入:abc123Password updated successfully!Remove anonymous users? [Y/n] n     #是否删除匿名用户,选择不删除Disallow root login remotely? [Y/n] y   #是否远程连接Remove test database and access to it? [Y/n] n      #是否删除测试数据库Reload privilege tables now? [Y/n] y    #是否重新加载 ... Success![root@server ~]# mysql -u root -p   ##登录数据库MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)##创建zabbix数据库,并且设置为utf8形式,把里面的字符串转换为二进制MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || test               || zabbix             |+--------------------+5 rows in set (0.00 sec)MariaDB [(none)]> GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';Query OK, 0 rows affected (0.01 sec)    #把所有数据库和所有表都交给zabbix用户进行管理,并且设置密码为admin123MariaDB [(none)]> flush privileges;     #刷新Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> quit      #退出数据库Bye//测试php基本信息//[root@server ~]# cd /var/www/html/[root@server html]# ls[root@server html]# vim index.php//用浏览器访问网页//

//测试数据库连接情况//[root@localhost html]# vim index.phpSuccess!!";else echo "Fail!!";mysql_close();?>

2,上述页面如果现实fail(解决方法)

[root@server html]# mysql -u zabbix -pEnter password:     #此时输入admin123无法登录数据库,说明有用户占用ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)`先使用root用户登录数据库`[root@server html]# mysql -u root -pMariaDB [(none)]> select user,host from mysql.user;   ##查看用户表+--------+-----------+| user   | host      |+--------+-----------+| zabbix | %         || root   | 127.0.0.1 || root   | ::1       ||        | server     ||        | localhost || root   | localhost |+--------+-----------+MariaDB [(none)]> drop user ''@localhost;   ##删除空用户MariaDB [(none)]> drop user ''@server;    ##删除空用户MariaDB [(none)]> select user,host from mysql.user;  +--------+-----------+| user   | host      |+--------+-----------+| zabbix | %         || root   | 127.0.0.1 || root   | ::1       || root   | localhost |+--------+-----------+4 rows in set (0.00 sec)MariaDB [(none)]> quitBye##此时再次刷新页面就会显示Success!!成功登录

3,在server上安装部署zabbix-server

[root@server html]# yum install php-bcmath php-mbstring -y  [root@server html]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm##安装zabbix源[root@server html]# cd /etc/yum.repos.d/[root@server yum.repos.d]# cat zabbix.repo   ##这是下载的zabbix的源[zabbix]name=Zabbix Official Repository - $basearchbaseurl=http://repo.zabbix.com/zabbix/3.5/rhel/7/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-non-supported]name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIXgpgcheck=1[root@server yum.repos.d]#  yum install zabbix-server-mysql zabbix-web-mysql -y  ##安装zabbix[root@server yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -u zabbix -p  zabbix##在zabbix数据库中生成数据文件[root@server yum.repos.d]# vim /etc/zabbix/zabbix_server.conf   ##修改zabbix配置文件125 DBPassword=admin123   ##添加zabbix数据库密码[root@server yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf 20         php_value date.timezone Asia/Shanghai   ##修改为中国时区 [root@server yum.repos.d]# vim /usr/share/zabbix/include/defines.inc.php   #####修正图表中文乱码#### ##在末行模式下进行替换 :%s /graphfont/kaiti/g [root@server yum.repos.d]# cd /usr/share/zabbix/fonts/  ##在此目录下上传stkaiti.ttf字体 [root@server fonts]# rz -E[root@server fonts]# lsgraphfont.ttf  stkaiti.ttf[root@server fonts]# systemctl start zabbix-server.service    ##开启zabbix服务[root@server fonts]# systemctl enable zabbix-server.service      [root@server fonts]# netstat -antp | grep zabbix   (端口10051)tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      43984/zabbix_server tcp6       0      0 :::10051                :::*                    LISTEN      43984/zabbix_server [root@server fonts]# systemctl restart httpd.service  ##重启httpd服务

4,在web上安装zabbix




点击右上角人物头像,在Language语言栏选择Chinese(zh_CN)简体中文,点击Update更新

监控端配置完成...

5,配置agent代理端

[root@agent ~]# systemctl stop firewalld.service [root@agent ~]# systemctl disable firewalld.service     [root@agent ~]# setenforce 0[root@agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm##安装yum源[root@agent ~]# yum install zabbix-agent -y  ##安装代理agent[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf  ##修改配置文件 98 Server=192.168.13.128   ##指定监控端server地址 139 ServerActive=192.168.13.128   ##指定监控端server地址 150 Hostname=test   ##名称[root@agent ~]# systemctl start zabbix-agent.service   ##开启服务[root@agent ~]# systemctl enable zabbix-agent.service[root@agent ~]# netstat -natp | grep zabbix   (agent端口号10050)tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      41189/zabbix_agentd tcp6       0      0 :::10050                :::*                    LISTEN      41189/zabbix_agentd 

6,在web端上添加被监测agent端

第一步:找到配置下的主机选项,点击创建主机

第二步:在主机配置界面填入相应内容,然后点击模板

第三步:在模板中选择HTTP和SSH的模板链接,点击提示器中的添加,然后再点击蓝色的添加图标

第四步:在监测仪表板可以看到监测的问题

7,配置邮件报警功能--server监控端上配置

[root@server ~]# yum install mailx -y  ##安装mailx软件[root@server ~]# vim /etc/mail.rc   ##修改配置文件##末行添加set from=706858376@qq.comset smtp=smtp.qq.comset smtp-auth-user=706858376@qq.comset smtp-auth-password=授权码   ##此处是你邮箱的第三方登录的授权码set smtp-auth=login[root@server ~]# echo "hello world" | mail -s "testmail" 706858376@qq.com  ##发送邮件

8,编写发邮件脚本脚本

[root@server ~]# cd /usr/lib/zabbix/alertscripts/  ##切换到zabbix脚本目录下[root@server alertscripts]# vim mailx.sh   ##编辑发送邮件脚本#!/bin/bash#send mailmessages=`echo $3 | tr '\r\n' '\n'`subject=`echo $2 | tr '\r\n' '\n'`echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1[root@server alertscripts]# touch /tmp/mailx.log   ##创建日志[root@server alertscripts]# chown -R zabbix.zabbix  /tmp/mailx.log   ##授权属主属组[root@server alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh  ##执行权限[root@server alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/    ##授权属主属组[root@server alertscripts]# ./mailx.sh 706858376@qq.com "yun" "heihei"

9,在web端上配置配置报警媒体

第一步:在上方选择管理,找到其中的报警媒介类型,再点击页面右上角的创建媒体类型,在界面中输入相关信息

第二步:选项中会显示3次探测服务,如果宕掉就会触发报警,最后点击下方的蓝色添加图标,就可以生成新的报警类型了

第三步:找到配置中的用户界面,点击Admin用户

第四步:在用户的报警媒介中点击添加,输入相对应的媒介信息,最后点击添加

第五步:添加媒介之后一定不要忘记点击更新

第六步:在动作中删除原有模板,在进行重新定义,点击右上角的创建动作

第七步:在操作中做以下操作,下方点击新的,做添加操作,最后点击更新


模板:默认操作步骤持续时间 60默认接收人 : {TRIGGER.STATUS}:{TRIGGER.NAME}默认信息:告警主机:{HOST.NAME}告警  IP:{HOST.IP}告警时间:{EVENT.DATE}-{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}:{ITEM.VALUE}事件  ID:{EVENT.ID}
第八步:恢复操作中配置


模板:恢复操作:{TRIGGER.STATUS}:{TRIGGER.NAME}恢复信息:恢复主机:{HOST.NAME}恢复  IP:{HOST.IP}恢复时间:{EVENT.DATE}-{EVENT.TIME}恢复等级:{TRIGGER.SEVERITY}恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}恢复  ID:{EVENT.ID}
第九步:点击蓝色标添加,此时就会进行持续性的监控了

[root@agent yum.repos.d]# systemctl stop sshd  ##关闭被监控端的ssh服务


[root@agent yum.repos.d]# systemctl start sshd  ##开启被监控端的ssh服务


谢谢阅读!

监控 数据 配置 信息 数据库 用户 服务 主机 模板 管理 报警 界面 登录 监视 邮件 媒介 文件 模式 类型 脚本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 互联网佳科技有限公司 互联网科技有限公司经营范围 工业互联网科技新基建 科技企业和互联网企业 融势互联网科技 广州凡科互联网科技 长亮科技 互联网金融 科技伦理 互联网公司 恒生科技互联网指数分析 互联网科技公司招聘 华服互联网科技官网 呼和浩特新华互联网科技学院 国大互联网教育科技有限公司工作 阿里互联网科技企业 合肥互联网科技公司公章图片 领航科技大厦互联网公司 北京品多多互联网科技有限公司 利用互联网等科技手段 互联网与科技金融数据 艾特科技互联网 菲比寻常互联网科技 亿人帮互联网科技 互联网企业科技类企业如何做账 银行科技岗属于互联网吗 互联网科技股为什么大涨 济南小医互联网科技有限公司招聘 广西泛欧互联网科技有限公司 东风日产互联网科技公司叫什么
0