zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,在企业中有非常全面的应用。它能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
本文将为你详细讲解如何使用zabbix监控nginx和php-fpm性能
一:系统环境
1 软件及其版本
2 软件安装路径
zabbix安装在:
/usr/local/zabbix
路径下,其相关配置文件及二进制执行程序都放置其中。
nginx安装在
/usr/local/nginx
下,其相关配置文件及二进制执行程序都放置其中。
php安装在
/usr/local/php
下,其相关配置文件及二进制执行程序都放置其中。
继续后面的操作前,请确认nginx和php-fpm的服务端口都处于监听状态。
二:配置nginx的status
1、确认nginx的status已编译到程序包中
使用 nginx -V 可以查看nginx是否将模块·http_stub_status_module`编译进包中:
2、启用nginx的status模块
- 修改nginx.conf文件
一般在默认主机中增加如下location即可:
- 查看nginx status
nginx配置文件修改完成以后,使用
nginx -t
测试配置文件是否有明显逻辑及语法错误,没有问题则重载配置文件。
- 然后使用浏览器或者 curl 指令查看nginx status:
3 nginx status数值的含义说明
php-fpm自带的有用于查询其工作状态的页面,需要进行如下步骤,以启用这一功能
三、配置php-fpm的status
1.启用php-fpm status页面
修改:
php-fpm.conf
文件,去掉status页面的注释,并可以根据需要将其改名。操作如下:")
2.查看php-fpm的status
修改完
php-fpm.conf
后,使用
service php-fpm reload
重新加载配置文件,然后在浏览器或者使用
curl
指令查看php-fpm的status。操作如下:
")
php-fpm的status可以查看汇总信息和详细信息,详细信息比汇总信息要多出每一个php-fpm进程的相关信息,同时支持多种格式输出,如xml、html和json,默认情况下分别使用如果指令即可:
> xamples for summary status page:
> http://example.com/status
> http://example.com/status\?json
> http://example.com/status\?html
> http://example.com/status\?xml
> Example for detailed status page:
> http://example.com/status\?full
> http://example.com/status\?json\&full
> http://example.com/status\?html\&full
> http://example.com/status\?xml\&full
使用何种格式查看status决定了后续使用zabbix进行监控获取status数值的方式。本文以上述
curl localhost/php\_fpm-status
的输出为例。
3 php-fpm status的含义
四、编写status数据提取脚本
在适当的位置,一般是
/usr/local/zabbix/bin
里准备脚本用于提取status里每个字段的数值。
1、nginx的status数值提取脚本
此脚本为
/usr/local/zabbix/bin/nginx\_status.sh
其内容如下:
")
2、php-fpm status数值提取脚本
php-fpm status数值提取脚本为
/usr/local/zabbix/bin/php\_fpm\_status.sh
内容如下:
五、创建zabbix_agentd的子配置文件
在
/usr/local/zabbix/etc/zabbix\_agentd.d/
中创建关联nginx status和php-fpm status的子配置文件,创建一个,或者在已有的某配置文件中增加也可以,我这里分别为它们创建配置文件,文件名可自定义,只要确保此文件夹全部内容在
zabbix\_agentd.conf
中包含(include)了。
1、userparameter_nginx.conf
2、userparameter_php-fpm.conf
3、确认子配置文件被zabbix_agentd配置文件包含
确认在
/usr/local/zabbix/etc/zabbix\_agentd.conf
中包含:
Include=/usr/local/zabbix/etc/zabbix\_agentd.conf.d/
且没有被注释。
六、重启zabbix_agentd服务
service zabbix\_agentd restart
让zabbix_agentd加载新的配置文件。
*七、测试zabbix_get能否取到数据
在zabbix server上使用如下指令测试能否获取到nginx和php-fpm status数值。
")注意:
-
zabbix_get
指令在zabbix server上运行。
-
userparameter_*.conf文件位于zabbix_agentd端。
-
nginx_status.sh和php_fpm_status.sh位于zabbix_agentd端。
-
zabbix-get
后
-s
指定的ip为zabbix-agentd的监听ip。
八、zabbix server上配置相应的模板
这里的模板包含对nginx status和php-fpm status要监控的
item
、
trigger
、
Graphs
等一系列内容。对于在zabbix server上新增要监控的内容,最好的办法就是从模板开始,然后按照顺序依次配置相应内容,无需去网上找现成的模板导入,对于系统的监控按需配置是最好的。下面是相应的操作过程。
1、添加nginx status监控模板
")
新建nginx status模板
")
定义nginx status模板
")")
定义nginx status items,这里我使用的是被动临控
")
增加nginx status状态码映射
")
nginx trigger定义
")
定义nginx监控视图
2、添加php-fpm status监控模板
php-fpm status的模板添加步骤和上述方法一样,此处不在赘述。
3、选择相应的主机或主机组关联上相应的模板
")给主机或主机组关联模板
九、实际监控效果展示
查看监控效果可以通过查看
Monitoring
---->
Latest data
,过滤出相应的主机及应用名进行查看,最新收集的各item的监控结果,凡是监控到数据的item会显示数据,出现灰色的表示没有监控到数据,需要排查原因。如下所示:
")
也可以通过定义的
Graphs
查看监控效果:
小结
zabbix中要实现对用户自定义的item的监控,大致过程如下:
- 启用相应软件的性能统计功能
- 编写性能统计数据提取脚本
- 配置自定义的userparameter conf文件
- 重启zabbix_agentd服务
- zabbix server web上添加相应的模板
- 给主机或主机组调用模板
如果你想了解更多有关zabbix 实战项目操作,强烈推荐你下载阅读《Zabbix企业级分布式监控系统》电子书;
从基本应用到安装包定制、协议、API,全面剖折、包含大量监控案例。通过本书你学到的不止是技术,还有思路和方法
点击免费下载
如果你想进一步深入了解Zabbix,长按下图
有段时间没跟大家分享资源福利了,看了下自己的资料夹,整理了一些我认为比较好的Python学习资料了。相信这套资料可以对你进阶高级工程师有帮助
学习工具
大厂实战手册
自学视频(部分)
【资料免费领取方式】:点这里:2020Python高薪实战学习大合集