xiu12 发表于 2017-12-31 21:44:59

Zabbix 企业Nginx监控

  Zabbix监控Nginx状态
  1 修改Nginx配置文件,开启Nginx监控
  

location /nginx_status {  stub_status on;
  access_logoff;
  allow
127.0.0.1;  deny all;
  }
  

  2 访问Nginx 监控状态
  

# curl http://127.0.0.1/nginx_status  
Active connections: 1
  
server accepts handled requests
  3 3 3
  
Reading: 0 Writing: 1 Waiting: 0
  

  ## Active connections: 对后端发起的活动连接数
  ## Server accepts handled requests: Nginx 总共处理了 3个连接,成功创建了 3 次握手(没有失败次数),总共处理了 3 个请求
  ## Reading: Nginx 读取到客户端的 Header 信息数
  ## Writing: Nginx 返回给客户端的 Header 信息数
  ## Waiting: 开启 keep-alive 的情况下,这个值等于 active - ( reading + writing ), 意思是 Nginx 已经处理完成,正在等待下一次请求指令的驻留连接
  ## 在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中
  3 编写脚本获取上面的key值
  

#cd /etc/zabbix/scripts  
#vim nginx_status.sh
  
#
!/bin/bash  

  
HOST
="127.0.0.1"  
PORT
="80"  

  
# 检测nginx进程是否存在
  
function ping {
/sbin/pidof nginx | wc -l  
}
  
# 检测nginx性能
  
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'  
}
  
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'  
}
  
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'  
}
  
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'  
}
  
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'  
}
  
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'  
}
  
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'  
}
  
# 执行function
  
$
1  

  

  
#赋予权限
  
#chmod
+x nginx_status.sh  

  4 添加自定义key配置文件
  

#cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf  
## Nginx_status
  UserParameter=nginx.status
[*],/usr/local/zabbix-3.0.0/scripts/ngx-status.sh $1
  

  5 重启zabbix客户端
  

# /etc/init.d/zabbix-agent restart  
Shutting down Zabbix agent:                              
  
Starting Zabbix agent:                                    
  

  ## 注意,上面全部操作都是在被监控端
  6 zabbix服务端测试能否拿到key
  # zabbix_get -s 172.16.10.86 -k nginx.status
  1
  7 zabbix Web端配置
  Link NGINX模板
  到了最后一个阶段,登陆zabbix管理端,link模板到nginx服务器:configuration->hosts->点击nginx所在服务器->点击template->Link new templates输入"Template App NGINX"->Add->最后点击update。
页: [1]
查看完整版本: Zabbix 企业Nginx监控