此操作均在Zabbix3.2.6
yum install nginx -y
vi /etc/nginx/conf.d/default.conf
location /nginx_status{
stub_status on;
access_log on;
allow 127.0.0.1;
allow 192.168.31.0/24; 只允许192.168.31.0这个网段访问
deny all;
}
## deny all , 拒绝除 allow 中的主机之外所有主机访问此 URL ,实现过程中如果遇到 403 ,有可能是你把自己测试的机器拒绝了!
nginx -t 检查语法
nginx -s reload 重新加载配置文件
查看nginx 状态信息:
[root@localhost ~]# curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
3721 3721 3714
Reading: 0 Writing: 1 Waiting: 0
注解:
Active connections: 1 当前活动的连接数
server accepts handled requests
3721 3721 3714
3721 从启动到现在一共处理的连接数
3721 从启动到现在成功创建的握手的次数
3714 总共处理的请求数(requests)
请求的丢失数=(握手-连接)
connection 连接数,tcp连接
request http请求,GET/POST/DELETE
Reading: 0 Writing: 1 Waiting: 0
Reading: 0 读取客户端Header的信息数 请求头
Writing: 1 返回给客户端的header的信息数 响应头
Waiting: 0 等待的请求数
mkdir /usr/local/zabbix/scripts -p
vi /usr/local/zabbix/scripts/nginx_status.sh
#!/bin/bash
#Time:2017-11-19
#Author: bks.com
#HOST=`/sbin/ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'`
# Functions to return nginx stats
# 检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# Run the requested function
$1
# 对脚本赋予执行权限
chmod +x /usr/local/zabbix/scripts/nginx_status.sh
编辑agent配置文件,定义Key
vim /etc/zabbix/zabbix_agentd.conf
UserParameter=nginx.status[*],/usr/local/zabbix/scripts/nginx_status.sh $1
# $1表示[*]这里面的参数,在此为"active",如果命令有$存在,那么在$前面在加上一个$
配置完后一定记得重启:
/etc/init.d/zabbix-agent restart
server端测试:
[root@CentOS7 ~]# zabbix_get -s 192.168.31.155 -p 10050 -k "nginx.status[active]"
1
#有数字信息返回则表示配置正常
图形化操作:
配置-->模板-->导入
模板下载:
zbx_export_templates.xml
http://pan.baidu.com/s/1pLFUJc3 密码:1234
为对应的主机导入nginx模板
配置-->主机-->模板-->添加