运用zabbix监控nginx和php-fpm功能

1系统环境

1.1软件及其版本

1.2软件安装路径</h3

zabbix安装在/usr/local/zabbix途径下,其有关配置文件及二进制履行程序都放置其间。
nginx安装在/usr/local/nginx下,其有关配置文件及二进制履行程序都放置其间。
php安装在/usr/local/php下,其有关配置文件及二进制履行程序都放置其间。
持续后面的操作前,请确认nginx和php-fpm的效劳端口都处于监听状况。

2配置nginx的status

2.1确认nginx的status已编译到程序包中</h3

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

2.2启用nginx的status模块

  • 修改nginx.conf文件
    一般在默认主机中增加如下location即可:
  • </ul

    • 查看nginxstatus
      nginx配置文件修改完成以后,使用nginx-t测试配置文件是否有明显逻辑及语法错误,没有问题则重载配置文件。
    • </ul

      • 然后使用浏览器或者curl指令查看nginxstatus:
      • </ul

        2.3nginxstatus数值的含义说明</h3

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

        3配置php-fpm的status

        3.1启用php-fpmstatus页面</h3

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

        3.2查看php-fpm的status</h3

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

        php-fpm的status可以查看汇总信息和详细信息,详细信息比汇总信息要多出每一个php-fpm进程的相关信息,同时支持多种格式输出,如xml、html和json,默认情况下分别使用如果指令即可:

        <blockquote

        Examplesforsummarystatuspage:
        http://example.com/status
        http://example.com/status?json
        http://example.com/status?html
        http://example.com/status?xml
        Examplefordetailedstatuspage:
        http://example.com/status?full
        http://example.com/status?json&full
        http://example.com/status?html&full
        http://example.com/status?xml&full

        </blockquote

        使用何种格式查看status决定了后续使用zabbix进行监控获取status数值的方式。本文以上述curllocalhost/php_fpm-status的输出为例。

        3.3php-fpmstatus的含义</h3

        4编写status数据提取脚本

        </section

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

        4.1nginx的status数值提取脚本</h3

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

        4.2php-fpmstatus数值提取脚本</h3

        php-fpmstatus数值提取脚本为/usr/local/zabbix/bin/php_fpm_status.sh,内容如下:

        5创建zabbix_agentd的子配置文件

        </section

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

        5.1userparameter_nginx.conf</h3

        5.2userparameter_php-fpm.conf</h3

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

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

        6重启zabbix_agentd服务

        </section

        servicezabbix_agentdrestart 让zabbix_agentd加载新的配置文件。

        7测试zabbix_get能否取到数据

        </section

        在zabbixserver上使用如下指令测试能否获取到nginx和php-fpmstatus数值。

        注意:

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

        8zabbixserver上配置相应的模板

        </section

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

        8.1添加nginxstatus监控模板</h3

        新建nginxstatus模板

        定义nginxstatus模板

        新建nginxApplication

        定义nginxstatusitems,这里我使用的是被动临控

        增加nginxstatus状态码映射

        nginxtrigger定义

        定义nginx监控视图

        8.2添加php-fpmstatus监控模板</h3

        php-fpmstatus的模板添加步骤和上述方法一样,此处不在赘述。

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

        给主机或主机组关联模板

        9实际监控效果展示

        </section

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

        nginx的监控数据

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

        nginxstatur监控视图

        10小结

        </section

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

        • 启用相应软件的性能统计功能
        • 编写性能统计数据提取脚本
        • 配置自定义的userparameterconf文件
        • 重启zabbix_agentd服务
        • zabbixserverweb上添加相应的模板
        • 给主机或主机组调用模板

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 运用zabbix监控nginx和php-fpm功能