Zabbix添加nginx-php监控

以源码安装为例:

目录环境:

/usr/local/php/etc/php-fpm.conf

/usr/local/nginx/conf/nginx.conf

------------------------------------------------------------

一、修改配置

# vim /usr/local/php/etc/php-fpm.conf
末行添加:
pm.status_path = /phpfpm_status
# pkill php-fpm
# /usr/local/php/sbin/php-fpm# vim /usr/local/nginx/conf/nginx.conf

添加:

server {
        listen 127.0.0.1:80;
        server_name 127.0.0.1;
        location /nginx_status {
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            allow 10.1.12.0/24;
            deny all;
        }
        location ~ ^/(phpfpm_status)$ {
            include fastcgi_params;
            fastcgi_pass unix:/tmp/php-cgi.sock;
            fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        }
    }

重启nginx

# /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf -s reload

二、监控脚本

(1)nginx监控脚本

#!/usr/bin/env python
#__*__coding:utf8__*__
import urllib2,sys,os
def Nginx_status():
    nginx_stats_dirt = {}
    nginx_url = "http://127.0.0.1/nginx_status"
    req = urllib2.Request(nginx_url)
    response = urllib2.urlopen(req)
    request_list = response.read().split("\n")
    nginx_stats_dirt["active"] = request_list[0].split()[2]
    nginx_stats_dirt["accepts"] = request_list[2].split()[0]
    nginx_stats_dirt["handled"] = request_list[2].split()[1]
    nginx_stats_dirt["requests"] = request_list[2].split()[2]
    nginx_stats_dirt["reading"] = request_list[3].split()[1]
    nginx_stats_dirt["writing"] = request_list[3].split()[3]
    nginx_stats_dirt["waiting"] = request_list[3].split()[5]
    if len(sys.argv) is not 2 or str(sys.argv[1]) not in nginx_stats_dirt.keys():
        print "Usage: nginx_stauts.py $1 {active|accepts|handled|requests|reading|writing|waiting}"
        exit(1)
    else:
        print nginx_stats_dirt[str(sys.argv[1])]
if __name__ == '__main__':
    try:
        Nginx_status()
    except urllib2.URLError,e:
        print "%s,there may be something wrong with nginx!" %e

(2)php监控脚本

#!/usr/bin/env python
#__*__coding:utf8__*__
import urllib2,sys,os
def Php_status():
    php_status_dirt = {}
    request_status_list = []
    php_status_list = ["pool","process_manager","start_since","accepted_conn","listen_queue","max_listen_queue","listen_queue_len","idle_processes","active_processes","total_processes","max_active_processes","max_children_reached","slow_requests"]
    php_url = 'http://127.0.0.1/phpfpm_status'
    req = urllib2.Request(php_url)
    response = urllib2.urlopen(req)
    request_list = response.read().split()
   position=[1,4,11,14,17,21,25,28,31,34,38,42,45]
   for i in position:
       request_status_list.append(request_list[i])
   for i in range(len(php_status_list)):
       php_status_dirt[php_status_list[i]] = request_status_list[i]

   if len(sys.argv) is not 2 or str(sys.argv[1]) not in php_status_dirt.keys():
       print "Usage: php_stauts.py $1 {pool|process_manager|start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached|slow_requests}"
       exit(1)
   else:
       print php_status_dirt[str(sys.argv[1])]

if __name__ == '__main__':
    try:
        Php_status()
    except urllib2.URLError,e:
        print "%s,there may be something wrong with php!" %e

 

三、配置监控扩展

被监控主机端,zabbix_agentd.conf文件中添加上这个:

UserParameter=phpfpm[*],/etc/zabbix/scripts/phpfpm_status.py $1
UserParameter=nginx[*],/etc/zabbix/scripts/nginx_status.py $1

四、测试

[root@zabbix_server-12-155 ~]# zabbix_get -s 10.1.12.177 -k phpfpm[s]
Usage: php_stauts.py $1 {pool|process_manager|start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}
[root@zabbix_server-12-155 ~]# zabbix_get -s 10.1.12.177 -k phpfpm[pool]
www
 

转载于:https://www.cnblogs.com/Leslieblog/p/10678282.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值