zabbix 监控nginx/php/mysql/redis 只能监控到运行状态不能获取其他数据的优化
zabbix监控故障优化:
思路:
zabbix监控数据分为配置文件也就是userparameter配置,获取数据脚本配置和权限,还有程序获取数据支持三部分,如果监控除了问题,从着三方面进行排查
redis监控没数据或只能监控到服务是否开启
- 首先确认脚本是否具有执行权限
- conf配置文件指定的脚本路径是否正确
- zabbix-agent配置文件Hostname参数是否与web端一致
mysql用mysqladmin监控数据库的时候出现不支持key的情况,用zabbix_get获取数据的时候能正常获取到数据,但是获取到的数据内容有:
connection to database 'zabbix' failed: [1045] Access denied for user 'root'@'localhost' (using password: NO)
所以进行mysql配置更改,修改mysql配置文件,增加mysqladmin配置:
[mysqladmin]
user = 用户名
password = 密码
socket = socket文件
然后再用zabbix_get获取数据,看到提示
Warning: Using a password on the command line interface can be insecure.
去掉mysql监控脚本和配置文件里的用户名和密码端口地址等信息,因为配置过mysqladmin用户,所以或自动 户去用户名和密码。mysql5.6之后不能使用铭文密码。
nginx监控没数据,或只能获取到是否正在运行
故障原理与mysql一样。
1. 首先确认脚本加参数时候能正常执行,并能正常获取数据。有的机器执行脚本加参数的时候获取不到数据,或者获取到的数据是错误的数据,有可能是因为nginx没开status监控导致的。配置nginx配置文件server字段下添加 ngx_status监控:
#监控nginx
location /ngx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
再次执行curl http://host/ngx_status能看到如下数据就成功了
这里要注意一下:
1.写脚本的收curl后面的地址一定要与nginx指定的地址一致,比如nginx指定了域名和端口,那这里也一定与之保持一直
2.当nginx配置ssl并将地址永久重定向到443端口后,这里的脚本要用https才能获取到数据
Active connections: 3
server accepts handled requests
1880035 1880035 2157371
Reading: 0 Writing: 1 Waiting: 2
2.正常执行脚本,看能否获取数据,如果获取数据没问题。用zabbix_get在服务端获取数据。如果提示不支持的key,请留意获取数据的输出,除了数值之外,是否有报错信息。比如脚本生成的文件,zabbix用户是否具有其权限。如果没有问题,确认配置文件指定的脚本路径是否正确。
php-fpm
服务器没有配置php获取数据的php配置文件,Userparameter,添加配置文件
UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://host/status?xml" | grep "<$1>" | awk -F'>|<' '{ print $$3}'
开启nginx对php状态的监控:
打开nginx配置文件添加如下内容:
#监控php
location /status {
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
reload nginx 并重启zabbix-agent
tcp监控
问题:通过执行脚本加参数可以获取到本机tcp数据,但是服务端zabbix_get获取到报错信息提示权限不足
**方法**tcp监控脚本有生成文件到tmp路径下,注意生成文件的属主。zabbix用户是否对其有权限。
通过更改脚本,在生成文件后,更改文件的属主。
zabbix服务端用zabbix_get获取数据成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架