黑帽联盟

标题: zabbix3.0 监控php服务器性能实战,精华篇 [打印本页]

作者: 定位    时间: 2017-3-24 18:27
标题: zabbix3.0 监控php服务器性能实战,精华篇
相关链接:zabbix3.0 监控mysql服务器性能实战,精华篇
                  图文讲解zabbix安装全过程


1.配置所有Agent(标准化目录结构)

2.PHP-FPM工作模式通常与Nginx结合使用,修改php-fpm.conf(找到自己的php-fpm.conf存放路径)
之后重启服务
service php-fpm restart

3.修改nginx.conf的配置文件,通过Nginx访问PHP-FPM状态。
之后重启服务
service nginx restart

4.访问测试phpfpm_status
访问结果,如图:
11.png

4.编写php-fpm的Shell脚本(如果端口不一致,只需要修改脚本端口即可)
  1. #!/bin/bash
  2. ############################################################
  3. # $Name: php_status.sh
  4. # $Version: v1.0
  5. # $Function: Nginx and Php Status
  6. # $Author: dingwei
  7. # $organization: 127.0.0.1
  8. # $Create Date: 2017-03-24
  9. # $Description: Monitor Nginx and Php Service Status
  10. ############################################################
  11. PHPFPM_COMMAND=$1
  12. PHPFPM_PORT=80 #根据监听不同端口进行调整

  13. start_since(){
  14. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^start since:/ {print $NF}'`
  15. echo $result
  16. }
  17. accepted_conn(){
  18. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^accepted conn:/ {print $NF}'`
  19. echo $result
  20. }
  21. listen_queue(){
  22. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^listen queue:/ {print $NF}'`
  23. echo $result
  24. }
  25. max_listen_queue(){
  26. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^max listen queue:/ {print $NF}'`
  27. echo $result
  28. }
  29. listen_queue_len(){
  30. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^listen queue len:/ {print $NF}'`
  31. echo $result
  32. }
  33. idle_processes(){
  34. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^idle processes:/ {print $NF}'`
  35. echo $result
  36. }
  37. active_processes(){
  38. result=`usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^active processes:/ {print $NF}'`
  39. echo $result
  40. }
  41. total_processes(){
  42. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^total processes:/ {print $NF}'`
  43. echo $result
  44. }
  45. max_active_processes(){
  46. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^max active processes:/ {print $NF}'`
  47. echo $result
  48. }
  49. max_children_reached(){
  50. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^max children reached:/ {print $NF}'`
  51. echo $result
  52. }
  53. slow_requests(){
  54. result=`/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^slow requests:/ {print $NF}'`
  55. echo $result
  56. }
  57. case $PHPFPM_COMMAND in
  58. start_since)
  59. start_since;
  60. ;;
  61. accepted_conn)
  62. accepted_conn;
  63. ;;
  64. listen_queue)
  65. listen_queue;
  66. ;;
  67. max_listen_queue)
  68. max_listen_queue;
  69. ;;
  70. listen_queue_len)
  71. listen_queue_len;
  72. ;;
  73. idle_processes)
  74. idle_processes;
  75. ;;
  76. active_processes)
  77. active_processes;
  78. ;;
  79. total_processes)
  80. total_processes;
  81. ;;
  82. max_active_processes)
  83. max_active_processes;
  84. ;;
  85. max_children_reached)
  86. max_children_reached;
  87. ;;
  88. slow_requests)
  89. slow_requests;
  90. ;;
  91. *)
  92. echo $"USAGE:$0 {start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}"
  93. esac
复制代码

5.   给脚本添加执行权限

6.   改变用户和用户组:
  1.   [root@linux-node1 scripts]#  chown -R zabbix.zabbix /usr/local/zabbix/php_status.sh

7.  然后在zabbix_agentd.conf文件里面添加如下内容:
UserParameter=php.curl,curl -s 127.0.0.1:80/php_status | awk '/^pool:/ {print $NF}' | wc -l

UserParameter=php.status
  • ,/etc/zabbix/scripts/php_status.sh $1
    之后保存内容并重启zabbix_agentd服务
    service zabbix_agentd restart

    8.测试一定使用Zabbix_get来获取值


    最后就是添加模板、添加应用、添加项目、最后针对相应的项目做触发器,就按照这个顺序来。针对这类教程我会单独给大家写出来的,敬请期待!


    以下是我的实战测试结果图:

    把php-fpm服务给停了
    php服务监控

    把php-fpm服务给启动起来
    php性能监控








    欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5