> Linux服务器 > 监控工具 >

利用Zabbix监控Nginx

近段时间一直在使用zabbix,让其监控更多的东西,目前我也在一步一步实现原计划。不得不说它的自由定制功能真是很强!开工吧。

实现监控需要三个步骤:

1、自己创建或是导入模版。<附件>

2、nginx需要配置status。

这个因环境而已,我贴上我的吧。 


  1. server {  
  2. listen 80;  
  3. server_name xxx.xxx.xxx.xxx;  
  4. index index.html login.jsp;  
  5. root /www/freetrade;  
  6. access_log off;  
  7. error_log off;  
  8. location /nginx {  
  9. stub_status on;  
  10. access_log off;  
  11. allow 127.0.0.1;  
  12. allow xxx.xxx.xxx.xxx;  
  13. deny all;  
  14. }  
  15. }

3、改客户端配置文件,使用脚本。

在客户端机器上任意位置放这个脚本,不过我还是建议你规范的放在一个地方。我在作者的基础上改了一下,适合自己的需求。


  1. #!/bin/bash  
  2. # Script to fetch nginx statuses for tribily monitoring systems  
  3. # Author: krish@toonheart.com  
  4. # License: GPLv2 
  5.  
  6. # Set Variables  
  7. HOST=`/sbin/ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'`  
  8. PORT="80"
  9.  
  10. # Functions to return nginx stats 
  11.  
  12. function active {  
  13. /usr/bin/curl "http://$HOST:$PORT/nginx" 2 > /dev/null| grep 'Active' | awk '{print $NF}'  
  14.  
  15. function reading {  
  16. /usr/bin/curl "http://$HOST:$PORT/nginx" 2 > /dev/null| grep 'Reading' | awk '{print $2}'  
  17.  
  18. function writing {  
  19. /usr/bin/curl "http://$HOST:$PORT/nginx" 2>/dev/null| grep 'Writing' | awk '{print $4}'  
  20.  
  21. function waiting {  
  22. /usr/bin/curl "http://$HOST:$PORT/nginx" 2 > /dev/null| grep 'Waiting' | awk '{print $6}'  
  23.  
  24. function accepts {  
  25. /usr/bin/curl "http://$HOST:$PORT/nginx" 2 > /dev/null| awk NR==3 | awk '{print $1}'  
  26.  
  27. function handled {  
  28. /usr/bin/curl "http://$HOST:$PORT/nginx" 2 > /dev/null| awk NR==3 | awk '{print $2}'  
  29.  
  30. function requests {  
  31. /usr/bin/curl "http://$HOST:$PORT/nginx" 2 > /dev/null| awk NR==3 | awk '{print $3}'  
  32.  
  33. # Run the requested function  
  34. $1 

修改客户端/etc/zabbix/zabbix_agentd.conf 环境不同,文件位置不同。 


  1. #monitor nginx  
  2. UserParameter=nginx.accepts,/etc/zabbix/scripts/nginx_status accepts  
  3. UserParameter=nginx.handled,/etc/zabbix/scripts/nginx_status handled  
  4. UserParameter=nginx.requests,/etc/zabbix/scripts/nginx_status requests  
  5. UserParameter=nginx.connections.active,/etc/zabbix/scripts/nginx_status active  
  6. UserParameter=nginx.connections.reading,/etc/zabbix/scripts/nginx_status reading  
  7. UserParameter=nginx.connections.writing,/etc/zabbix/scripts/nginx_status writing  
  8. UserParameter=nginx.connections.waiting,/etc/zabbix/scripts/nginx_status waiting 

有图才有真相!<几台空闲的nginx>

 

(责任编辑:IT)