zoukankan      html  css  js  c++  java
  • zabbix监控php-fpm

    1、启用php-fpm的状态功能

    [root@web01 ~]# vim /etc/php-fpm.d/www.conf

    121 pm.status_path = /php_status

    [root@web01 ~]# systemctl restart php-fpm.service        #重启php服务

    2、nginx中开启php的状态访问

    [root@web01 ~]# vim /etc/nginx/nginx.conf

    location ~ ^/(php_status|ping)$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

    }

    修改完后重启nginx

    [root@web01 ~]# nginx -t

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

    nginx: configuration file /etc/nginx/nginx.conf test is successful

    [root@web01 ~]# nginx -s reload

    3、命令行手动测试取值

    [root@web01 ~]# curl http://127.0.0.1/php_status

    pool: www

    process manager: dynamic

    start time: 13/Jun/2018:14:32:15 +0800

    start since: 104

    accepted conn: 1

    listen queue: 0

    max listen queue: 0

    listen queue len: 128

    idle processes: 4

    active processes: 1

    total processes: 5

    max active processes: 1

    max children reached: 0

    slow requests: 0

    php-fpm status的含义

    pool                    php-fpm pool(资源池)的名称,大多数情况下为www

    process manager        进程管理方式,现今大多都为dynamic,不要使用static

    start time                上次启动的时间

    start since            已运行了多少秒

    accepted conn    pool        接收到的请求数

    listen queue            处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数

    max listen queue        从php-fpm启动到现在处于等待连接的最大数量

    listen queue len        处于等待连接队列的套接字大小

    idle processes            处于空闲状态的进程数

    active processes        处于活动状态的进程数

    total processess        进程总数

    max active process        从php-fpm启动到现在最多有几个进程处于活动状态

    max children reached    当php-fpm试图启动更多的children进程时,却达到了进程数的限制,达到一次记录一次,如果不为0,需要增加php-fpm pool进程的最大数

    slow requests            当启用了php-fpm slow-log功能时,如果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查询会触发这个值

    4、定义监控项的key值

    创建zabbix_agentd关联php_ststus的子配置文件,不使用脚本取出php-fpm的信息

    [root@web01 ~]# cd /etc/zabbix/zabbix_agentd.d/

    [root@web01 zabbix_agentd.d]# vim php_status.conf

    UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://127.0.0.1/php_status?xml" | grep "<$1>" | awk -F'>|<' '{ print $$3}'

    [root@web01 zabbix_agentd.d]# systemctl restart zabbix-agent.service    #重启服务

    取出php-fpm信息的另外一种取值方法

    UserParameter=php-fpm.status[*],/usr/bin/curl http://127.0.0.1/php_status?json 2>/dev/null|jq '."$1"'|sed 's#"##g'

    5、web界面配置或导入模板

    点击:配置——>模板——>导入,选择下载的模板文件并上传

    6、主机链接模板

    7、模板调整和优化

    7.1 通过zabbix内置key,proc.num[<name>,<user>,<state>,<cmdline>],监控php-fpm的进程数

    [root@zabbix ~]# zabbix_get -s 192.168.1.7 -k "proc.num[php-fpm]"    #命令行取值

    10

    [root@zabbix ~]# ab -n 10000 -c 100 http://10.0.0.7/index.php            #利用apache工具进行压力测试

    其中ab -n 指定次数 -c 指定并发次数 最后接url

    [root@zabbix ~]# zabbix_get -s 192.168.1.7 -k "proc.num[php-fpm]"    #再次取值

    36

    可以发现上面的值发生了变化,所以这个值需要我们自定义监控项来进行监控

    web界面自定义监控项

    7.2 创建触发器

    根据实际情况创建需要的触发器触发报警

     

    博主原创文章,转载请务必注明出处

  • 相关阅读:
    数据结构-循环队列(Python实现)
    数据结构-堆栈和队列最简单的实现(Python实现)
    数据结构-双向链表(Python实现)
    ArrayList集合对象的sort()方法
    编写泛型
    super通配符
    面向对象(上)综合练习1:银行存取
    面向对象(上)综合练习1:Account和Customer
    泛型之extends通配符
    Comparable<T>泛型接口之实现按name或者age进行排序
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9232238.html
Copyright © 2011-2022 走看看