zabbix监控nginx状态
1. 在zabbix的脚本目录中,创建一个脚本nginx.sh,内容如下:
#! /bin/bash
#date: 2018-11-07
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果
HOST="192.168.1.169"
PORT="9990"
# 检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
/usr/bin/curl -s http://$HOST:$PORT/nginx_status 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function request_time {
/usr/bin/curl -s "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $4}'
}
# 执行function
$1
2.在该目录下再创建一个nginx.conf,用来设置参数传给zabbix。
UserParameter=nginx.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.sh $1
3.在zabbix的配置文件中,添加一行内容:
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.conf
4.重启zabbix-agent服务。
5.需要在nginx添加内容:
server{
#server_name status.taobao.com;
server_name 192.168.1.78;
listen 9990;
location = /nginx_status {
stub_status on;
}
}
一往无前虎山行,拨开云雾见光明

浙公网安备 33010602011771号