zabbix(三)对服务的监控

本文详细介绍了如何使用Zabbix对httpd/nginx和MySQL服务进行监控。首先,针对server3配置了httpd/nginx的监控项,确保键值与UserParameter配置文件中的key匹配。接着,创建并添加了监控图形,成功展示出监控数据。对于MySQL监控,不仅应用了Zabbix自带的模板,还引入了Percona模板以增强监控项,提供更全面的性能诊断和高负载环境下的优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zabbix(三)对服务的监控

httpd/nginx

1>给 server2 添加 httpd 监控
但是这个 http 监控的监控项只有一个,下面在 server3 上自定义 nginx 的监控

在这里插入图片描述

#源码编译 nginx,关闭 debug,添加监控模块
[root@server3 nginx-1.15.8]#./configure --prefix=/usr/local/nginx --with-http_stub_status_module 
[root@server3 nginx-1.15.8]# make && make install
启用nginx
关闭日志,只允许本机查看状态监控

在这里插入图片描述

[root@server3 conf]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
222
Reading: 0 Writing: 1 Waiting: 0
多访问几次,增加数据量

2>自定义 nginx 监控项
(1)获取活跃链接数
[root@server3 ~]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
1
##user -> web ui -> zabbix server -> zabbix agent -> shell -> zabbix server ->mysql -> web ui
#编辑获取链接数的配置文件
[root@server3 ~]# cd /etc/zabbix/zabbix_agentd.d
[root@server3 zabbix_agentd.d]#cp userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'

[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
#在 server1 上安装 zabbix-get,来用命令方式获取 key 值,同时为了测试是否能获取到自己设置的 key 值

[root@server1 4.0]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm
[root@server1 4.0]# zabbix_get -s 172.25.0.3 -p 10050 -k "nginx.active"
1
##这里的 -k 后的参数是刚才配置文件里的,获取到数据说明配置正确

#给 server3 配置监控项
在这里插入图片描述
#这里要注意:键值一栏,填的内容需要和配置文件UserParameter 定义的 key 值相同,否则无效

##新建图形并添加监控项
在这里插入图片描述
在预览中可以看到已经产生数据

在这里插入图片描述

##但是发现汉字无法显示,是字体原因
##zabbix 字体存放在下面路径
[root@server1 fonts]# ls
graphfont.ttf
[root@server1 fonts]# pwd
/usr/share/zabbix/fonts
#获取字体
[root@server1 fonts]# ls
graphfont.ttf simkai.ttf
#修改配置使新字体生效
[root@server1 include]# pwd
/usr/share/zabbix/include
[root@server1 include]# vim defines.inc.php
搜索 FONT 关键字,发现使用的是 graphfont.ttf 字体
:%s/graphfont/simkai/g
##替换为 simkai

#再刷新,字体正常
(2)获取接收请求数
[root@server3 ~]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
72 72 72
Reading: 0 Writing: 1 Waiting: 0
[root@server3 ~]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
79

[root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk
'{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk
'{print $1}'
#重启
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent

#测试获取 key 值
[root@server1 ~]# zabbix_get -s 172.25.0.3 -p 10050 -k "nginx.accept"
89

#添加监控项
在这里插入图片描述
#添加图形
在这里插入图片描述
#查看预览
在这里插入图片描述

##增加数据,看的更清楚
[root@foundation0 ~]# ab -c 1 -n 1000 http://172.25.0.3/index.html
[root@server3 zabbix_agentd.d]# curl -s http://127.0.0.1/status
Active connections: 1
server accepts handled requests
1117 1117 1117
Reading: 0 Writing: 1 Waiting: 0

再次查看图形

mysql

(1)zabbix 自带的 mysql 监控模板
##添加 mysql 监控模板
在这里插入图片描述

##zabbix 监控 mysql 的配置目录
[root@server1 ~]# mkdir /var/lib/zabbix
##因为 mysql 的 key 监控目录就是这个
[root@server1 zabbix]#cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
##mysql 默认使用 mysqladmin 检测 mysql 是否存活

[root@server1 zabbix]# mysqladmin -uzabbix -predhat -h127.0.0.1 ping | grep -c alive
1
得到结果为 1,表示 mysql 正常,为 0 表示 mysql 挂了
##由于 mysql 帐号密码写在命令行对以后维护不好,也不安全,所以写在配置文件里

[root@server1 zabbix]# cat .my.cnf
##建立为隐藏文件更安全
[mysql]
host = localhost
user = root
password = redhat
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = root
password = redhat
socket = /var/lib/mysql/mysql.sock
[root@server1 zabbix]# systemctl restart zabbix-agent
然后在 web 端可以看到 mysql 相关的两个图形有数据,如果没数据就进入 mysql 敲几条
命令进行查询,再看就有

在这里插入图片描述
##以上是使用 zabbix 自带的 mysql 监控模板

(2)使用 percona 模板来监控 mysql
##对应着手册写配置

##因为 zabbix 自带的 mysql 监控的监控项太少,只有一些基础的监控,并且没有可以直接使用的 key,不能满足生产环境需求,需要扩展,所以使用 percona 插件。Percona 为MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为 。

[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
##复制 percona 配置文件
[root@server1 templates]# pwd
/var/lib/zabbix/percona/templates
[root@server1 templates]#cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
#可以看到此模板中有 190 个监控项
[root@server1 ~]# cd /var/lib/zabbix/percona/scripts
##配置 mysql 的用户名和密码,新建一个文件,不用修改原脚本
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';

#重启
systemctl restart zabbix-agent
##运行脚本获取数据
[root@server1 zabbix_agentd.d]#/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh 
gk 1647

能获取到数据说明配置正常
#查看所有 key 值
[root@server1 ~]# cat /tmp/localhost-mysql_cacti_stats.txt
这是一个缓存文件,里面记录了所有 key 对应的值

##导入模板
在这里插入图片描述
聚合图形选上
在这里插入图片描述
##删除原来的模板,添加 percona 模板
在这里插入图片描述
##添加后可以看到监控项多了很多,打开一个监控项查看图形

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值