首页 > 监控和安全 > 通过zabbix监控nginx和php状态
2016
04-06

通过zabbix监控nginx和php状态

nginx 和php 当然可以用zabbix监控,配置大家也都知道的。不过nginx和php都有status页面,刚好可以取得活动连接数、连接总数、握手次数、请求数,现在使用多少php的进程,空余多少php进程。下面就按status页面通过shell取值方式,由zabbix监控,再出图,报警的过程说明一下。

nginx和php的status

先说一下nginx的配置文件:

定义了nginx的页面nstatus,php的状态页面status。因为server_name是localhost,所以并没有加allow IP; deny all;  。并且php-fpm.conf里面需要开启status页面,要不会出现Access denied.

在本机curl一下

已经通过此页面得到结果,只需要用shell把想要的值取出来即可。

shell通过zabbix画图

下面举个例子,说一下定义一个shell,每次就取一个数字,user的cpu usage,把shell通过zabbix画图:

在zabbix监控端的配置文件最后面添加此行,就是使用zabbix UserParameter选项:

Format: UserParameter=<key>,<shell command>

测试一下:

zabbix中 Configuration–Hosts– Host_Name–Items–Create item 添加自定义的这个shell,其中“Key”选项写:Test.test

通过zabbix监控nginx和php状态 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

Configuration–Hosts — Host_Name–Graphs–Create graphs 创建一个图形,再添加一个报警,和用zabbix直接监控一样的效果,

通过zabbix监控nginx和php状态 - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

这就是通过shell取值传递给zabbix的一个过程,可能你会觉得这么办挺麻烦的,倒不如用zabbix提供的nginx监控(如下图)。这篇文章只是说明线上需要获取应用服务的状态,并且要监控应用的状态 这么一种方式。相同的道理,通过这种方法可以对其他应用服务的状态做监控,带着监控上线,及时发现处理问题。

通过zabbix监控nginx和php状态 - 第3张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

 

zabbix对端口port和进程的监控

如果一个程序运行有对外的端口,比如nginx,redis,mongodb,rabbitmq,可以通过端口对进程做监控;另一些进程运行没有端口,比如java语言开发的好些程序,我们可以通过zabbix proc.num对进程做判断确定是否存活 https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/zabbix_agent

我们可以试验一下:

在zabbix中添加此项目的监控,如果不等于监控的值,则发邮件通知

zabbix报错:

zabbix Error in query [INSERT INTO applications (name,hostid,applicationid) VALUES ()

原因:在zabbix–组态Configuration–模板–分类 里面是否有重复的键,修改此选项即可

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。