Zabbix监控nginx进程

本文将介绍:

  • Nginx开启状态模板
  • 创建Nginx检测脚本
  • 图形化导入Nginx模块

此操作均在Zabbix3.2.6

Nginx开启状态模板(agent端)

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 等待的请求数

创建Nginx检测脚本

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

图形化导入Nginx模块

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模板
    配置-->主机-->模板-->添加
标签:监控ZabbixNginx 发布于:2019-11-02 18:37:17