https://minminmsn.com/
分类: 系统运维
2015-07-17 17:41:14
zabbix监控之nginx
1,配置NginxStatus功能,需要ngx_http_stub_status_module模块支持
server {
listen 12345;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
2,配置zabbix_agentd客户端
在zabbix_agentd.conf末尾添加如下配置
UserParameter=nginx.accepts,/data/scripts/nginx_status accepts
UserParameter=nginx.handled,/data/scripts/nginx_status handled
UserParameter=nginx.requests,/data/scripts/nginx_status requests
UserParameter=nginx.connections.active,/data/scripts/nginx_status
active
UserParameter=nginx.connections.reading,/data/scripts/nginx_status
reading
UserParameter=nginx.connections.writing,/data/scripts/nginx_status
writing
UserParameter=nginx.connections.waiting,/data/scripts/nginx_status
waiting
3,nginx状态监控脚本如下
cat nginx_status
#!/bin/bash
# Script to fetch nginx_status statuses for tribily monitoring
systems
# Author: krish@toonheart.com
# License: GPLv2
# Set Variables
#HOST=`/sbin/ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/
.*//;p}'
HOST=127.0.0.1
PORT="12345"
# Functions to return nginx_status stats
function active {
/usr/bin/curl " 2> /dev/null|
grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl " 2> /dev/null|
grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl " 2>/dev/null|
grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl " 2> /dev/null|
grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl " 2> /dev/null|
awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl " 2> /dev/null|
awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl " 2> /dev/null|
awk NR==3 | awk '{print $3}'
}
# Run the requested function
$1
4,重启nginx和zabbix_agentd
5,zabbix web界面添加nginx监控模板,添加nginx客户端监控项,nginx模板
见附件
6,监控效果如下