设为首页 收藏本站
查看: 941|回复: 0

[经验分享] 使用zabbix监控nginx和php-fpm性能

[复制链接]

尚未签到

发表于 2018-12-13 09:58:31 | 显示全部楼层 |阅读模式
  http://chuansong.me/n/1818444251232
  系统环境

1.1 软件及其版本


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

2.1 确认nginx的status已编译到程序包中
  使用nginx -V可以查看nginx是否将模块·http_stub_status_module`编译进包中:

2.2 启用nginx的status模块

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


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


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

2.3 nginx status数值的含义说明


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

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

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

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

  4编写status数据提取脚本

  在适当的位置,一般是/usr/local/zabbix/bin里准备脚本用于提取status里每个字段的数值。
4.1 nginx的status数值提取脚本
  此脚本为/usr/local/zabbix/bin/nginx_status.sh,其内容如下:

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

  5创建zabbix_agentd的子配置文件

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

5.2 userparameter_php-fpm.conf

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上使用如下指令测试能否获取到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。
  8zabbix server上配置相应的模板

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

  新建nginx status模板

  定义nginx status模板

  新建nginxApplication

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

  增加nginx status状态码映射

  nginx trigger定义

  定义nginx监控视图
8.2 添加php-fpm status监控模板
  php-fpm status的模板添加步骤和上述方法一样,此处不在赘述。
8.3 选择相应的主机或主机组关联上相应的模板

  给主机或主机组关联模板
  9实际监控效果展示

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

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

  nginx statur监控视图
  10小结

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

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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650809-1-1.html 上篇帖子: php 也有滑板鞋 下篇帖子: CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表