千家信息网

Zabbix如何实现对Mysql、Apache、Nginx的监控

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,下文主要给大家带来Zabbix如何实现对Mysql、Apache、Nginx的监控,希望这些内容能够带给大家实际用处,这也是我编辑Zabbix如何实现对Mysql、Apache、Nginx的监控这篇文
千家信息网最后更新 2026年11月02日Zabbix如何实现对Mysql、Apache、Nginx的监控

下文主要给大家带来Zabbix如何实现对Mysql、Apache、Nginx的监控,希望这些内容能够带给大家实际用处,这也是我编辑Zabbix如何实现对Mysql、Apache、Nginx的监控这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

1)zabbix agent端安装mysql

由于mysql安装太浪费时间,本人提供一键安装mysql脚本,如下:

[root@agent ~]# ls mysql*mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  mysql.sh[root@agent ~]# sh mysql.sh Starting MySQL. SUCCESS! mysql: [Warning] Using a password on the command line interface can be insecure.//出现此信息表示安装成功![root@agent ~]# mysql -u root -p123   //脚本对应的root密码为123mysql> grant all on *.* to zabbix@'192.168.1.%' identified by 'zabbix';//创建测试用户

2)zabbix agent端编写自定义监控mysql脚本

[root@agent ~]# mkdir /etc/zabbix/shell[root@agent ~]# vim /etc/zabbix/shell/check_mysql.sh #!/bin/bashMYSQL_HOST='192.168.1.8'     #指定mysql主机的IP地址MYSQL_PORT='3306'            #指定mysql主机的监听地址MYSQL_CONN="/usr/local/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}"     #指定连接使用的工具if [ $# -ne "1" ];then    echo "arg error!"fi# 获取数据case $1 in    Uptime)        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`        echo $result        ;;    Com_update)        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`        echo $result        ;;    Slow_queries)        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`        echo $result        ;;    Com_select)        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`        echo $result        ;;    Com_rollback)        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`        echo $result        ;;    Questions)        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`        echo $result        ;;    Com_insert)        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`        echo $result        ;;    Com_delete)        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`        echo $result        ;;    Com_commit)        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`        echo $result        ;;    Bytes_sent)        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`        echo $result        ;;    Bytes_received)        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`        echo $result        ;;    Com_begin)        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`        echo $result        ;;        *)        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"        ;;esac由于将用户名、密码信息写到脚本中不安全,所以将用户名、密码信息写到/etc/my.cnf文件中[root@agent ~]# vim /etc/my.cnf [mysqladmin]user=zabbixpassword=zabbix[root@agent ~]# chmod +x /etc/zabbix/shell/check_mysql.sh [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/check_mysql.sh [root@agent ~]# sh /etc/zabbix/shell/check_mysql.sh Uptime5260//agent端测试脚本能否使用

3)zabbix agent端修改配置

[root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf//将原本的UserParameter全部注释,添加以下内容UserParameter=mysql.status[*],/etc/zabbix/shell/check_mysql.sh $1UserParameter=mysql.ping,HOME=/etc /usr/local/bin/mysqladmin ping | grep -c aliveUserParameter=mysql.version,/usr/local/bin/mysql -V[root@agent ~]# systemctl restart zabbix-agent[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "mysql.status[Uptime]"5372//zabbix server端测试能否获取到数据

4)zabbix web界面引入模板

zabbix自带了mysql监控的模板,因此只需将模板链接到对应的主机即可!如下:





这里重点需要关注的是每个监控项名称对应的"键值"一列的配置,这里的键值,必须和agent端自定义的监控键值保持一致。另外,可以看到"mysql status"这个监控项有一个触发器,用于检查mysql的运行状态。最后,还需关注这些监控项的监控类型是"zabbix客户端",所有监控项都存放在"MYSQL"应用集中。

以上设置完成,监控mysql的主机已经添加完成!

5)查看监控状态数据

如图:


从图中可以看出已经获取到数据!

配置mysql监控完成!

二、zabbix监控apache应用实战

zabbix对apache的监控,稍微复杂一些,但基本流程还是两个步骤:第一个是编写监控apache的监控脚本;第二个是创建apache监控模板。以下操作均在zabbix agent端实现,具体步骤如下:

1)zabbix agent开启apache状态页

要想监控apache的运行状态,需要在apache的配置中开启一个apache状态页面,然后再通过编写脚本获取这个状态页面的数据即可达到监控apache的目的!

[root@agent ~]# yum -y install httpd[root@agent ~]# vim /etc/httpd/conf/httpd.conf //末尾添加以下内容EnableSendfile onSetHandler server-statusRequire ip 127.0.0.1 192.168.1.10[root@agent ~]# systemctl start httpd

配置项中解释如下:

1)EnableSendfile on:表示开启扩展的status信息,但是开启后会降低云服务器运行效率;
2) /server-status:则表示通过"http://ip/server-status" 来访问,同时也可以通过"http://ip/server-status?refresh=N" 的方式进行动态访问,N则表示N秒自动刷新一次;
3)Require ip 127.0.0.1 192.168.1.10:这是apache 2.4版本增加的一个新特效。即表示需要访问的IP地址;

Require常用的用法如下:

1)Require all granted:允许所有主机访问;
2)Require all denied:拒绝所有主机访问;
3)Require ip IP地址:允许某个IP访问;
4)Require not ip IP地址:禁止某个IP访问;
5)Require host 主机名:允许某个主机访问;
6)Require not host 主机名:禁止某个主机访问;

修改完成后重启apache服务生效!

2)zabbix agent获取apache的状态检测脚本和zabbix模板

apache状态页面配置完成后,接下来就需要编写获取状态数据的脚本了,脚本代码较多,大家可通过以下方式下载!

[root@agent ~]# wget https://www.ixdba.net/zabbix/zabbix-apache.zip[root@agent ~]# unzip zabbix-apache.zip[root@agent ~]# ll zapache*-rw-r--r-- 1 root root  5792 1月  31 23:00 zapache-rw-r--r-- 1 root root 52024 4月  22 2016 zapache-template.xml//zapache:是监控apache所需的脚本;//zapache-template.xml:是监控apache所需的模板;[root@agent ~]# mv zapache /etc/zabbix/shell/[root@agent ~]# chmod 755 /etc/zabbix/shell/zapache [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/zapache [root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_zapache.conf//编写apache的模板文件,用于调取apache的监控脚本UserParameter=zapache[*],/etc/zabbix/shell/zapache $1[root@agent ~]# systemctl restart zabbix-agent[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "zapache[BusyWorkers]"1//zabbix server测试是否可以获取数据

3)zabbix web页面导入模板

如图:



4)查看apache状态数据

如图:


从图中可以看出已经获取到数据!

配置apache监控完成!

三、zabbix监控Nginx应用实战

zabbix对Nginx的监控,与监控apache的方式完全一样,基本流程还是两个步骤:第一个是编写Nginx的脚本;第二个是创建Nginx监控模板。以下操作均在zabbix agent端实现,具体步骤如下:

1)zabbix agent开启Nginx状态页

[root@agent ~]# yum -y install pcre-devel zlib-devel openssl-devel[root@agent ~]# wget http://nginx.org/download/nginx-1.14.2.tar.gz[root@agent ~]# tar zxf nginx-1.14.2.tar.gz -C /usr/src[root@agent ~]# cd /usr/src/nginx-1.14.2/[root@agent nginx-1.14.2]#  ./configure --with-http_stub_status_module && make && make install[root@agent ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/[root@agent ~]# vim /usr/local/nginx/conf/nginx.conf//添加loaction规则        location /nginx-status {          stub_status on;            //开启状态监控模块          access_log off;            //关闭访问日志          allow 127.0.0.1;           allow 192.168.1.10;       //允许访问的IP地址          deny all;                         //拒绝所有的IP地址        }[root@agent ~]# nginx -t[root@agent ~]# nginx               [root@agent ~]# curl 127.0.0.1/nginx-statusActive connections: 1 server accepts handled requests 1 1 1 Reading: 0 Writing: 1 Waiting: 0 

输出的信息说明:

1)Active connections:对后端发起的活动链接数;
2)accepts:nginx总共处理了多少个连接;
3)handled:nginx成功创建了几次握手;
4)requests:nginx总共处理了多少请求;
5)Reading:nginx读取客户端的header数;
6)Writing:nginx返回给客户端的header数;
7)Waiting:nginx请求处理完成,正在等待下一请求指令的连接;

2)zabbix agent获取apache的状态检测脚本和zabbix模板

[root@agent ~]# wget https://www.ixdba.net/zabbix/zabbix-nginx.zip[root@agent ~]# unzip zabbix-nginx.zip [root@agent ~]# ll nginx_status.sh zbx*-rw-r--r-- 1 root root  1106 11月  1 2018 nginx_status.sh-rw-r--r-- 1 root root 20703 11月  1 2018 zbx_nginx_templates.xml//nginx_status.sh:所需的脚本// zbx_nginx_templates.xml:所需的模板[root@agent ~]# mv nginx_status.sh /etc/zabbix/shell/[root@agent ~]# chmod o+x /etc/zabbix/shell/nginx_status.sh [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/nginx_status.sh [root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf//编写nginx的模板文件,用于调取nginx的监控脚本UserParameter=nginx.status[*],/etc/zabbix/shell/nginx_status.sh $1[root@agent ~]# systemctl restart zabbix-agent[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "nginx.status[active]"1//zabbix server测试是否可以获取数据

3)zabbix web页面导入模板

如图:



4)查看nginx状态数据

如图:


从图中可以看出已经获取到数据!

配置nginx监控完成!

对于以上关于Zabbix如何实现对Mysql、Apache、Nginx的监控,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

监控 脚本 状态 模板 数据 主机 配置 地址 内容 页面 如图 测试 信息 步骤 客户 密码 文件 方式 用户 图中 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州紫鲸互联网科技有限公司 互联网通讯科技 新华互联网科技学院 互联网科技资迅 奇酷互联网络科技 四川狮子座互联网科技 滨湖区互联网智能科技产品供应 互联网教育科技公司vipkid 中国互联网有什么科技含量 互联网时代科技改变生活 栖莱科技互联网股份有限公司 崇明区互联网教育科技诚信经营 洛阳昕诺飞互联网科技有限公司 乌苏新华互联网科技做什么的 四川慕妮娅互联网科技有限公司 江苏互联网智能科技软件 广东鹅鹅鹅互联网科技有限公司 信承诺互联网科技有限公司 昆明中奇联合互联网科技 三亚科技创新互联网基地 广州紫鲸互联网科技有限公司 互联网科技工作委员会副主任毛军 A股互联网金融科技公司 联恩商钥互联网科技有限公司 哈尔滨新华互联网科技 团飞科技与伯堂互联网服务平台 互联网金融中的现代科技 中国航天科技大学国际工业互联网 允成互联网科技有限公司融资 互联网第三次科技革命特征
0