IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 立即注册 - 请先获取邀请码

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 36|回复: 0

[Zabbix专区] 手把手教你使用zabbix监控nginx和php-fpm性能

[复制链接]
来自- 广东广州

参加活动:0

组织活动:12

发表于 2017-8-21 18:07:21 | 显示全部楼层 |阅读模式 来自- 广东广州

系统环境


1.1 软件及其版本 0?.jpg 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`编译进包中:
0?.jpg
2.2 启用nginx的status模块
  • 修改nginx.conf文件
    一般在默认主机中增加如下location即可:

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

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

0?.jpg
2.3 nginx status数值的含义说明
php-fpm自带的有用于查询其工作状态的页面,需要进行如下 两步,以启用这一功能。

3配置php-fpm的status


3.1 启用php-fpm status页面
修改php-fpm.conf文件,去掉status页面的注释,并可以根据需要将其改名。操作如下:
0?.jpg
3.2 查看php-fpm的status
修改完php-fpm.conf后,使用service php-fpm reload重新加载配置文件,然后在浏览器或者使用curl指令查看php-fpm的status。操作如下:
0?.jpg
php-fpm的status可以查看汇总信息和详细信息,详细信息比汇总信息要多出每一个php-fpm进程的相关信息,同时支持多种格式输出,如xml、html和json,默认情况下分别使用如果指令即可:
使用何种格式查看status决定了后续使用zabbix进行监控获取status数值的方式。本文以上述curl localhost/php_fpm-status的输出为例。
3.3 php-fpm status的含义
0?.jpg

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,内容如下:
0?.jpg

5创建zabbix_agentd的子配置文件


在/usr/local/zabbix/etc/zabbix_agentd.d/中创建关联nginx status和php-fpm status的子配置文件,创建一个,或者在已有的某配置文件中增加也可以,我这里分别为它们创建配置文件,文件名可自定义,只要确保此文件夹全部内容在zabbix_agentd.conf中包含(include)了。
5.1 userparameter_nginx.conf
0?.jpg
5.2 userparameter_php-fpm.conf
0?.jpg
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数值。
0?.jpg
注意:
  • 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监控模板
0?.jpg
新建nginx status模板

定义nginx status模板

新建nginxApplication
0?.jpg
定义nginx status items,这里我使用的是被动临控
0?.jpg
增加nginx status状态码映射
0?.jpg
nginx trigger定义
0?.jpg
定义nginx监控视图
8.2 添加php-fpm status监控模板
php-fpm status的模板添加步骤和上述方法一样,此处不在赘述。
8.3 选择相应的主机或主机组关联上相应的模板
0?.jpg
给主机或主机组关联模板

9实际监控效果展示


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

10小结


zabbix中要实现对用户自定义的item的监控,大致过程如下:
  • 启用相应软件的性能统计功能
  • 编写性能统计数据提取脚本
  • 配置自定义的userparameter conf文件
  • 重启zabbix_agentd服务
  • zabbix server web上添加相应的模板
  • 给主机或主机组调用模板



原创: 天之蓝色

本版积分规则

团购课程最新动态

 

 

高品质!好口碑!

百分百通过率!

PeopleCertEXIN

国际授权资质!

ITIL Foundation北上广

2天精华班,包证书

ITIL Foundation三天精

讲,知名讲师,包证书

ITIL Expert 金牌讲师北

上广深11天,包证书

DevOps Foundation

2天热点认证班,包证书

ITSS 认证IT服务经理

4天课程,包证书

Prince2双证4天高级班

Cobit高端课程2天班

Togaf高端课程4天班

 

报名热线: 4008-060-230


QQ|小黑屋|手机版|Archiver|ITIL先锋论坛万人社区 ( 粤ICP备17056641号|网站地图

Baidu

GMT+8, 2018-2-22 08:58 , Processed in 0.177464 second(s), 37 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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