微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用zabbix监控nginx和php-fpm性能

《使用zabbix监控NginxPHP-fpm性能》要点:
本文介绍了使用zabbix监控NginxPHP-fpm性能,希望对您有用。如果有疑问,可以联系我们。

1.系统环境

1.1 软件及其版本

软件版本

1.2 软件安装路径

zabbix安装在/usr/local/zabbix路径下,其相关配置文件及二进制执行程序都放置其中.
Nginx安装在/usr/local/Nginx下,其相关配置文件及二进制执行程序都放置其中.
PHP安装在/usr/local/PHP下,其相关配置文件及二进制执行程序都放置其中.
继续后面的操作前,请确认NginxPHP-fpm的服务端口都处于监听状态.

2.配置Nginx的status

2.1 确认Nginx的status已编译到程序包中

使用Nginx -V可以查看Nginx是否将模块·http_stub_status_module`编译进包中:

nginx

2.2 启用Nginx的status模块

status模块

使用zabbix监控nginx和php-fpm性能

  • 然后使用浏览器或者curl指令查看Nginx status:

nginx status

2.3 Nginx status数值的含义说明

nginx status

PHP-fpm自带的有用于查询其工作状态的页面,需要进行如下 两步,以启用这一功能.

3.配置PHP-fpm的status

3.1 启用PHP-fpm status页面

修改PHP-fpm.conf文件,去掉status页面的注释,并可以根据需要将其改名.操作如下:

使用zabbix监控nginx和php-fpm性能

3.2 查看PHP-fpm的status

修改PHP-fpm.conf后,使用service PHP-fpm reload重新加载配置文件,然后在浏览器或者使用curl指令查看PHP-fpm的status.操作如下:

使用zabbix监控nginx和php-fpm性能

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.3 PHP-fpm status的含义

使用zabbix监控nginx和php-fpm性能

4.编写status数据提取脚本

在适当的位置,一般是/usr/local/zabbix/bin里准备脚本用于提取status里每个字段的数值.

4.1 Nginx的status数值提取脚本

此脚本为/usr/local/zabbix/bin/Nginx_status.sh,其内容如下:

使用zabbix监控nginx和php-fpm性能

4.2 PHP-fpm status数值提取脚本

PHP-fpm status数值提取脚本为/usr/local/zabbix/bin/PHP_fpm_status.sh,内容如下:

使用zabbix监控nginx和php-fpm性能

5.创建zabbix_agentd的子配置文件

/usr/local/zabbix/etc/zabbix_agentd.d/中创建关联Nginx status和PHP-fpm status的子配置文件,创建一个,或者在已有的某配置文件增加也可以,我这里分别为它们创建配置文件,文件名可自定义,只要确保此文件夹全部内容zabbix_agentd.conf中包含(include)了.

5.1 userparameter_Nginx.conf

使用zabbix监控nginx和php-fpm性能

5.2 userparameter_PHP-fpm.conf

使用zabbix监控nginx和php-fpm性能

5.3 确认子配置文件被zabbix_agentd配置文件包含

确认在/usr/local/zabbix/etc/zabbix_agentd.conf中包含:Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/且没有被注释.

6.重启zabbix_agentd服务

service zabbix_agentd restart 让zabbix_agentd加载新的配置文件.

7.测试zabbix_get能否取到数据

在zabbix server上使用如下指令测试能否获取NginxPHP-fpm status数值.

使用zabbix监控nginx和php-fpm性能

注意:

  • zabbix_get指令在zabbix server上运行.
  • userparameter_*.conf文件位于zabbix_agentd端.
  • Nginx_status.sh和PHP_fpm_status.sh位于zabbix_agentd端.
  • zabbix-get-s指定的ip为zabbix-agentd的监听ip.

8.zabbix server上配置相应的模板

这里的模板包含对Nginx status和PHP-fpm status要监控的itemtriggerGraphs等一系列内容.对于在zabbix server上新增要监控的内容,最好的办法就是从模板开始,然后按照顺序依次配置相应内容,无需去网上找现成的模板导入,对于系统的监控按需配置是最好的.下面是相应的操作过程.

8.1 添加Nginx status监控模板

使用zabbix监控nginx和php-fpm性能

新建Nginx status模板

使用zabbix监控nginx和php-fpm性能

定义Nginx status模板

使用zabbix监控nginx和php-fpm性能

使用zabbix监控nginx和php-fpm性能

定义Nginx status items,这里我使用的是被动临控

使用zabbix监控nginx和php-fpm性能

增加Nginx status状态码映射

使用zabbix监控nginx和php-fpm性能

Nginx trigger定义

使用zabbix监控nginx和php-fpm性能

定义Nginx监控视图

8.2 添加PHP-fpm status监控模板

PHP-fpm status的模板添加步骤和上述方法一样,此处不在赘述.

8.3 选择相应的主机或主机组关联上相应的模板

使用zabbix监控nginx和php-fpm性能

给主机或主机组关联模板

9.实际监控效果展示

查看监控效果可以通过查看Monitoring—->Latest data,过滤出相应的主机及应用名进行查看,最新收集的各item的监控结果,凡是监控到数据的item会显示数据,出现灰色的表示没有监控到数据,需要排查原因.如下所示:

使用zabbix监控nginx和php-fpm性能

Nginx的监控数据

也可以通过定义的Graphs查看监控效果

使用zabbix监控nginx和php-fpm性能

Nginx statur监控视图

10.小结

abbix中要实现对用户自定义的item的监控,大致过程如下:

文章来自微信公众号:马哥Linux运维

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐