手把手教你使用zabbix监控nginx

zabbix监控nginx,多亏了容哥(杨容)的帮忙,为了感谢容哥的帮助,写了这篇文章。

环境介绍:

服务器系统版本:CentOSrelease 6.6 (Final)

内核版本:Linux hk_nginx2.6.32-504.3.3.el6.x86_64

ZabbixServer版本:Zabbix server v2.2.2

ZabbixAgent 版本:Zabbix agent v2.2.2

Nginxweb 版本:nginx version: nginx/1.5.8

在zabbix agentd客户端上,查看nginx是否加载了–with-http_stub_status_module。因为zabbix监控nginx是根据nginx的Stub Status模块,抓取Status模块所提供的数据。假如以前没开启,现在想启用StubStatus 模块,,在编译nginx 的时候要加上参数 –with-http_stub_status_module,执行./configure && make就可以了,不用make install。不过,一般情况下都是安装了的。

1.在nginx的配置文件中,添加status配置。

location/nginx-status{stub_statuson;access_logoff;allow127.0.0.1;allow192.168.1.10;#(zabbix服务器的IP地址,一般是内网地址)denyall;}

2.访问设置好的nginx-status链接,如图所示:

3.nginx Status 详细说明:

Activeconnections:对后端发起的活动连接数;

server accepts 2349542:nginx 总共处理了2349542个连接;

handled:成功创建了64603417次握手;

requests:总共处理了8798670请求。

Reading:nginx读取客户端的header数;

Writing: nginx 返回给客户端的header数;

Waiting: nginx 请求处理完成,正在等待下一请求指令的连接。

4.在agentd上编写监控nginx的脚本,并且设置属主和属组为zabbix,赋予执行权限。

cd/usr/local/zabbix/scriptscatnginx_status.sh#!/bin/bash#Scripttofetchnginxstatusesfortribilymonitoringsystems#Author:krish@toonheart.com#License:GPLv2#SetVariablesBKUP_DATE=`/bin/date+%Y%m%d`LOG=”/data/log/zabbix/webstatus.log”HOST=127.0.0.1PORT=”80″#Functionstoreturnnginxstatsfunctionactive{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|grep’Active’|awk'{print$NF}’}functionreading{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|grep’Reading’|awk'{print$2}’}functionwriting{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|grep’Writing’|awk'{print$4}’}functionwaiting{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|grep’Waiting’|awk'{print$6}’}functionaccepts{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|awkNR==3|awk'{print$1}’}functionhandled{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|awkNR==3|awk'{print$2}’}functionrequests{/usr/bin/curl”http://$HOST:$PORT/nginx-status”2>/dev/null|awkNR==3|awk'{print$3}’}#Runtherequestedfunction$1chmodo+xnginx_status.shchownzabbix.zabbixnginx_status.shlltotal4-rwxr-xr-x1zabbixzabbix1273May1317:42nginx_status.sh

5.修改nginx服务器上zabbix客户端的zabbix_agentd.conf配置文件,然后重启zabbix agentd客户端。

cd/usr/local/zabbix/etcgrep-v”^[#;]”zabbix_agentd.conf|grep-v”^$”LogFile=/tmp/zabbix_agentd.logServer=192.168.1.10#zabbixserver端的IP地址ServerActive=192.168.1.10#zabbixserver端的IP地址Hostname=192.168.1.5#本地的IP地址UnsafeUserParameters=1##下面的是新添加进去的UserParameter=nginx.accepts,/usr/local/zabbix/scripts/nginx_status.shacceptsUserParameter=nginx.handled,/usr/local/zabbix/scripts/nginx_status.shhandledUserParameter=nginx.requests,/usr/local/zabbix/scripts/nginx_status.shrequestsUserParameter=nginx.connections.active,/usr/local/zabbix/scripts/nginx_status.shactiveUserParameter=nginx.connections.reading,/usr/local/zabbix/scripts/nginx_status.shreadingUserParameter=nginx.connections.writing,/usr/local/zabbix/scripts/nginx_status.shwritingUserParameter=nginx.connections.waiting,/usr/local/zabbix/scripts/nginx_status.shwaiting人的价值,在遭受诱-惑的一瞬间被决定

手把手教你使用zabbix监控nginx

相关文章:

你感兴趣的文章:

标签云: