zabbix监控nginx

1、nginx添加ngx_http_stub_status_module模块

vim /etc/nginx/conf.d/default.conf

location = /basic_status {
stub_status;
}

stub_status模块提供以下状态信息:

Active connections:当前活动客户端连接数,包括Waiting连接数。
accepts:接受的客户端连接总数。
handled:处理的连接总数。accepts 通常,除非已达到某些资源限制(例如, worker_connections限制) ,否则该参数值相同。
requests:客户端请求的总数。
Reading: nginx 正在读取请求标头的当前连接数。
Writing :nginx 将响应写回客户端的当前连接数。
Waiting:当前等待请求的空闲客户端连接数。
zabbix监控nginx

2、创建脚步获取nginx.status数据

vim /server/scripts/nginx_status.sh 
#!/bin/bash
# Description:zabbix监控nginx性能以及进程状态 
HOST="172.16.1.21"
PORT="80"
# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
 
function reading {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
 
function writing {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
 
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
 
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
 
function handled {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
 
function requests {
    /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| awk NR==3 | awk '{print $3}'
}

$1
# 执行function

3、创建key,为zabbix提供变量获取参数

 vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf 
UserParameter=nginx.status[*],/bin/bash /server/scripts/nginx_status.sh $

4、赋予脚步执行权限

chmod +x /server/scripts/nginx_status.sh
#测试脚步
sh /server/scripts/nginx_status.sh active

5、创建模版

zabbix监控nginx
zabbix监控nginx
zabbix监控nginx

zabbix监控nginx
zabbix监控nginx
zabbix监控nginx

#在zabbix服务器上面测试获取key值
zabbix_get -s 172.16.1.21 -p 10050 -k nginx.status[ping]
上一篇:zabbix获取历史告警问题


下一篇:Prometheus的优劣势与Zabbix的对比