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 高薪实战学习大合集