zabbix-监控nginx

1.nginx七种status详解

  • Active:活跃的连接数量
  • accepts:总共处理了多少个连接
  • handled:成功创建多少次握手
  • requests:总共处理了多少个请求
  • Reading:读取客户端的链接数
  • Writing:响应数据到客户端的数量
  • Waiting:开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

2.在zabbix-02上部署nginx。

2.1使用yum源安装(重点不是nginx安装)

[root@zabbix-02 ~]# yum install nginx -y(先装epel源)
[root@zabbix-02 ~]# cat /etc/nginx/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.liang.com;
        location /nginx_status {###开启状态模块
                stub_status on;###
        }
        location / {
            root   /var/www/html;
            index  index.html index.htm;
        }
    }
}

2.2测试

[root@zabbix-02 ~]# tail -1 /etc/hosts
10.0.0.8 www.liang.com
[root@zabbix-02 ~]# curl http://www.liang.com/nginx_status
Active connections: 1 
server accepts handled requests
 167 167 173 
Reading: 0 Writing: 1 Waiting: 0

3.编写脚本,授权

3.1脚本内容

[root@zabbix-02 ~]# cat /server/scritp/nging_monitiring.sh 
#!/bin/bash
Host=www.liang.com
Port=80
Cache_status="/server/scritp/status.txt"
Status_message="/server/scritp/status_test.txt"
curl http://${Host}:${Port}/nginx_status > ${Status_message} 2>/dev/null
if [ ! -f "$Cache_status" ];then
        cat "$Status_message" > $Cache_status  2>/dev/null
fi
Status_time=`stat -c %Y $Cache_status`
Date=`date +%s`
if [ `expr $Date - $Status_time` -gt 60 ];then
        > $Cache_status
        cat $Status_message > $Cache_status 2>/dev/null
fi
nginx_active(){
        grep -i "active" $Cache_status|awk '{print $NF}'
}

nginx_reading(){
        grep -i "Reading" $Cache_status|awk '{print $2}'
}
nginx_writing(){
        grep -i "Writing" $Cache_status|awk '{print $4}'
}
nginx_waiting(){
        grep -i "Waiting" $Cache_status|awk '{print $NF}'
}
nginx_accepts(){
        awk 'NR==3{print $1}' $Cache_status
}
nginx_handled(){
        awk 'NR==3{print $2}' $Cache_status
}
nginx_requests(){
        awk 'NR==3{print $3}' $Cache_status
}
$1

3.2对脚本及文件授权

[root@zabbix-02 ~]# chown -R zabbix:zabbix /server/

4.自定义key

[root@zabbix-02 ~]# cat -n /etc/zabbix/zabbix_agentd.d/nginx_monitoring.conf  
     1  UserParameter=nginx_monitoring[*],bash  /server/scritp/nging_monitiring.sh $1
[root@zabbix-02 ~]# systemctl restart zabbix-agent

5.zabbix-server测试

[root@zabbix ~]# for i in requests handled accepts waiting writing reading active ;do zabbix_get -s 10.0.0.8 -k nginx_monitoring[nginx_${i}];done
212
206
206
0
1
0
1

6.zabbix-web界面操作

6.1创建模板

这里写图片描述

6.2创建监控项

这里写图片描述

6.3创建主机

这里写图片描述

6.4查看

这里写图片描述

猜你喜欢

转载自blog.csdn.net/liang_operations/article/details/81812722