设为首页收藏本站

追梦Linux

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 850|回复: 0

zabbix监控php状态

[复制链接]

482

主题

485

帖子

16万

积分

CEO

Rank: 9Rank: 9Rank: 9

积分
168202

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2015-11-19 14:01:48 | 显示全部楼层 |阅读模式

通过nginx调用php-fpm来查询php的状态信息

首先,在php的配置文件中添加一行

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

  1. pm.status_path = /phpfpmstatus
复制代码

在nginx配置文件中添加代码

  1. ############################################
  2. location ~ ^/(phpfpmstatus)$ {
  3.         include fastcgi_params;
  4.         fastcgi_pass unix:/tmp/php-cgi.sock;
  5.         fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
  6.         }
复制代码
保存后重启php-fpm/nginx
然后使用curl -x 127.0.0.1/phpfpmstatus


然后,在zabbix的脚本目录里面编辑执行脚本
  1. #!/bin/bash
  2. #monitor php-fpm status from zabbix

  3. source /etc/bashrc >/dev/null 2>&1
  4. source /etc/profile >/dev/null 2>&1

  5. LOG=/usr/local/zabbix/scripts/phpfpmstatus.log
  6. curl -s http://localhost/phpfpmstatus >$LOG

  7. pool(){
  8.         awk '/pool/ {print $NF}' $LOG
  9. }

  10. process_manager(){
  11.         awk '/process manager/ {print $NF}' $LOG
  12. }

  13. start_since(){
  14.         awk '/start since:/ {print $NF}' $LOG
  15. }

  16. accepted_conn(){
  17.         awk '/accepted conn:/ {print $NF}' $LOG
  18. }
  19. listen_queue(){
  20.         awk '/^(listen queue:)/ {print $NF}' $LOG
  21. }

  22. max_listen_queue(){
  23.         awk '/max listen queue:/ {print $NF}' $LOG
  24. }

  25. listen_queue_len(){
  26.         awk '/listen queue len:/ {print $NF}' $LOG
  27. }

  28. idle_processes(){
  29.         awk '/idle processes:/ {print $NF}' $LOG
  30. }

  31. active_processes(){
  32.         awk '/^(active processes:)/ {print $NF}' $LOG
  33. }

  34. total_processes(){
  35.         awk '/total processes:/ {print $NF}' $LOG
  36. }

  37. max_active_processes(){
  38.         awk '/max active processes:/ {print $NF}' $LOG
  39. }

  40. max_children_reached(){
  41.         awk '/max children reached:/ {print $NF}' $LOG
  42. }
  43. case "$1" in
  44. pool)
  45.         pool
  46.         ;;
  47. process_manager)
  48.         process_manager
  49.         ;;
  50. start_since)
  51.         start_since
  52.         ;;
  53. accepted_conn)
  54.         accepted_conn
  55.         ;;
  56. listen_queue)
  57.         listen_queue
  58.         ;;
  59. max_listen_queue)
  60.         max_listen_queue
  61.         ;;
  62. listen_queue_len)
  63.         listen_queue_len
  64.         ;;
  65. idle_processes)
  66.         idle_processes
  67.         ;;
  68. active_processes)
  69.         active_processes
  70.         ;;
  71. total_processes)
  72.         total_processes
  73.         ;;
  74. max_active_processes)
  75.         max_active_processes
  76.         ;;
  77. max_children_reached)
  78.         max_children_reached
  79.         ;;
  80. *)
  81. echo "Usage: $0 {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}"
  82. esac
复制代码

保存后退出,修改权限为

-rwxr-xr-x 1 zabbix zabbix 1770 4月  15 14:50 phpstatus.sh

然后编辑zabbix_agentd.conf文件,在最后添加上下面这段代码,并重启zabbix_agentd服务

  1. #to monitor php-fpmstatus
  2. UserParameter=phpfpm.status.pool,/usr/local/zabbix/scripts/phpstatus.sh pool
  3. UserParameter=phpfpm.status.process.manager,/usr/local/zabbix/scripts/phpstatus.sh process_manager
  4. UserParameter=phpfpm.status.start.since,/usr/local/zabbix/scripts/phpstatus.sh start_since
  5. UserParameter=phpfpm.status.accepted.conn,/usr/local/zabbix/scripts/phpstatus.sh accepted_conn
  6. UserParameter=phpfpm.status.listen.queue,/usr/local/zabbix/scripts/phpstatus.sh listen_queue
  7. UserParameter=phpfpm.status.max.listen.queue,/usr/local/zabbix/scripts/phpstatus.sh max_listen_queue
  8. UserParameter=phpfpm.status.listen.queue.len,/usr/local/zabbix/scripts/phpstatus.sh listen_queue_len
  9. UserParameter=phpfpm.status.idle.processes,/usr/local/zabbix/scripts/phpstatus.sh idle_processes
  10. UserParameter=phpfpm.status.active.processes,/usr/local/zabbix/scripts/phpstatus.sh active_processes
  11. UserParameter=phpfpm.status.total.processes,/usr/local/zabbix/scripts/phpstatus.sh total_processes
  12. UserParameter=phpfpm.status.max.active.processes,/usr/local/zabbix/scripts/phpstatus.sh max_active_processes
  13. UserParameter=phpfpm.status.max.children.reached,/usr/local/zabbix/scripts/phpstatus.sh max_children_reached
复制代码
然后就可以在web端配置item监控php状态了



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

QQ|小黑屋|手机版|Archiver|追梦Linux ( 粤ICP备14096197号  点击这里给我发消息

GMT+8, 2019-5-19 21:14 , Processed in 0.227369 second(s), 37 queries .

Powered by 追梦Linux! X3.3 Licensed

© 2015-2017 追梦Linux!.

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