ycvodzf 发表于 2018-11-15 10:36:35

zabbix监控nginx和fpm(网站并发数)自定义key

  监控nginx,主要讲解监控并发数:
  1: nginx编译参数:
  --prefix=/usr/local/nginx --with-http_stub_status_module
  zabbix编译参数的查看:
  /usr/local/nginx/sbin/nginx -V
  nginx version: nginx/1.8.1
  built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
  built with OpenSSL 1.0.1e-fips 11 Feb 2013
  TLS SNI support enabled
  configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
  2: nginx配置新增
  location /status {
  allow 127.0.0.1;
  deny all;
  stub_status on;
  access_log off;
  }
  重启nginx:
  /usr/local/nginx/sbin/nginx -t

  /usr/local/nginx/sbin/nginx -s>  3: 测试下看看能不能获取nginx状态
  curl 127.0.0.1/status
  4: 写脚本获取nginx的状态
  监控脚本(/usr/local/zabbix/check_nginx.sh):
  #!/bin/sh
  #20170603 nginx status
  #Active connections: 1
  #server accepts handled requests
  #1035268066 1035268066 1035136592
  #Reading: 0 Writing: 1 Waiting: 0
  while getopts "o:" opt
  do
  case $opt in
  o ) option=$OPTARG;;
  ? )
  echo 'parameter is wrong!'
  exit 1;;
  esac
  done
  if [ ! "${option}" ];then
  echo "parameter is null"
  exit 1
  fi
  if [[ ${option} == "active" ]];then
  curl -s 127.0.0.1/status |grep '^Active connections' |awk '{print $NF}'
  elif [[ ${option} == "accepts" ]];then
  curl -s 127.0.0.1/status |awk 'NR==3'|awk '{print $1}'
  fi
  5: zabbix配置(/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.conf):
  UserParameter=nginx.status
[*],sh /usr/local/zabbix/check_nginx.sh -o $1
  重启zabbix agentd(pkill zabbix_agentd; sleep 3; /usr/local/zabbix/sbin/zabbix_agentd )
  6: zabbix网页配置:
  nginx.status ×××(每秒差值)
  监控fpm,主要讲解监控动态并发数:
  1: /usr/local/php/etc/php-fpm.conf fpm配置新增:
  pm.status_path = /php_fpm_status
  fpm需要重启。
  2: nginx配置新增:
  location /php_fpm_status
  {
  allow 127.0.0.1;
  deny all;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
  include      fastcgi_params;
  }
  nginx需要reload
  3: 测试看看能不能获取到fpm的状态
  curl 127.0.0.1/php_fpm_status
  pool:               www
  process manager:      static
  start time:         02/Jun/2017:17:45:05 +0800
  start since:          58677
  accepted conn:      10753843
  listen queue:         0
  max listen queue:   0
  listen queue len:   0
  idle processes:       249
  active processes:   1
  total processes:      250
  max active processes: 251
  max children reached: 0
  slow requests:      426
  4: 写脚本获取fpm的状态
  监控脚本(/usr/local/zabbix/check_fpm.sh):
  #!/bin/sh
  #20170603 fpm status
  #curl 127.0.0.1/php_fpm_status
  #pool:               www
  #process manager:      static
  #start time:         02/Jun/2017:17:45:05 +0800
  #start since:          59022
  #accepted conn:      10768453
  #listen queue:         0
  #max listen queue:   0
  #listen queue len:   0
  #idle processes:       249
  #active processes:   1
  #total processes:      250
  #max active processes: 251
  #max children reached: 0
  #slow requests:      426
  while getopts "o:" opt
  do
  case $opt in
  o ) option=$OPTARG;;
  ? )
  echo 'parameter is wrong!'
  exit 1;;
  esac
  done
  if [ ! "${option}" ];then
  echo "parameter is null"
  exit 1
  fi
  if [[ ${option} == "conn" ]];then
  curl -s 127.0.0.1/php_fpm_status |grep '^accepted conn'|awk '{print $NF}'
  elif [[ ${option} == "idle" ]];then
  curl -s 127.0.0.1/php_fpm_status |grep '^idle processes'|awk '{print $NF}'
  elif [[ ${option} == "active" ]];then
  curl -s 127.0.0.1/php_fpm_status |grep '^active processes'|awk '{print $NF}'
  fi
  5: zabbix配置(vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/fpm.conf):
  UserParameter=fpm.status
[*],sh /usr/local/zabbix/check_fpm.sh-o $1
  重启zabbix agent。pkill zabbix_agentd; sleep 3; /usr/local/zabbix/sbin/zabbix_agentd
  6: zabbix网页配置:
  fpm.status

页: [1]
查看完整版本: zabbix监控nginx和fpm(网站并发数)自定义key