zabbix监控nginx状态界面

zabbix监控nginx状态界面

环境说明:

主机名主机作用ip
zabbixzabbix服务端192.168.226.132
nginxnginx+zabbix客户端192.168.226.138

1. 开启状态界面

nginx主机开启status:

location /status {
  stub_status on;
}

**访问状态页面的方式:**http://server_ip/status

Active connections: 2 
server accepts handled requests
 2 2 1 
Reading: 0 Writing: 1 Waiting: 1 

状态页面信息详解:

状态码表示的意义
Active connections 2当前所有处于打开状态的连接数
accepts总共处理了多少个连接
handled成功创建多少握手
requests总共处理了多少个请求
Readingnginx读取到客户端的Header信息数,表示正处于接收请求状态的连接数
Writingnginx返回给客户端的Header信息数,表示请求已经接收完成, 且正处于处理请求或发送响应的过程中的连接数
Waiting开启keep-alive的情况下,这个值等于active - (reading + writing), 意思就是Nginx已处理完正在等候下一次请求指令的驻留连接

2. nginx主机配置

[root@nginx ~]# vim /usr/local/etc/zabbix_agentd.conf
.......
# zabbix-server端的ip地址
Server=192.168.226.132
ServerActive=192.168.226.132
# zabbix-agent端的主机名
Hostname=nginx
#自定义监控打开,创建自定义监控任务
#check_status[*]对应web监控项 <key>
#$1 对应 web界面配置监控项 配key时[]中的内容
UnsafeUserParameters=1
UserParameter=check_status[*],/bin/bash /scripts/nginx_status.sh $1
.......

3. nginx主机上脚本

[root@nginx ~]# mkdir /scripts
[root@nginx ~]# vim /scripts/nginx_status.sh
case $1 in
        "reading")
                curl -s http://192.168.226.138/status  | awk 'NR==4{print $2}'
                ;;
        "writing")
                curl -s http://192.168.226.138/status  | awk 'NR==4{print $4}'
                ;;
        "waiting")
                curl -s http://192.168.226.138/status  | awk 'NR==4{print $6}'
                ;;
esac
    
[root@nginx ~]# chown -R zabbix:zabbix /scripts
[root@nginx ~]# ll /scripts
total 4
-rwxr-xr-x 1 zabbix zabbix 286 Oct 20 10:41 nginx_status.sh

4. zabbix主机测试

[root@zabbix ~]# zabbix_get -s 192.168.226.138 -k check_status[writing]
1

5. zabbix的web界面配置

5.1创建监控主机

在这里插入图片描述

5.2创建监控项

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.3添加触发器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.4测试

测试前,无驻留连接

[root@nginx scripts]# curl 192.168.226.138/status
Active connections: 1 
server accepts handled requests
 97 97 144 
Reading: 0 Writing: 1 Waiting: 0 

测试后,驻留连接大于3,警报

[root@nginx ~]# curl 192.168.226.138/status
Active connections: 5 
server accepts handled requests
 111 111 199 
Reading: 0 Writing: 1 Waiting: 4 

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你写一个监控nginx的脚本,请问你已经安装了zabbix及其相关插件吗?如果还没有,请先安装好。下面是一个简单的监控nginx负载的脚本示例: ```bash #!/bin/bash # Author: your name # Date: YYYY-MM-DD # Description: Monitor Nginx status for Zabbix # Nginx status page URL URL="http://localhost/nginx_status" # Get nginx active connections active_connections=$(curl -s $URL | awk '/Active/{print $NF}') # Get nginx accepted connections accepted_connections=$(curl -s $URL | awk 'NR==3{print $1}') # Get nginx handled connections handled_connections=$(curl -s $URL | awk 'NR==3{print $2}') # Get nginx total requests total_requests=$(curl -s $URL | awk 'NR==3{print $3}') # Get nginx reading connections reading=$(curl -s $URL | awk '/Reading/{print $2}') # Get nginx writing connections writing=$(curl -s $URL | awk '/Writing/{print $4}') # Get nginx waiting connections waiting=$(curl -s $URL | awk '/Waiting/{print $6}') # Send data to zabbix echo "nginx.active_connections $active_connections $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - echo "nginx.accepted_connections $accepted_connections $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - echo "nginx.handled_connections $handled_connections $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - echo "nginx.total_requests $total_requests $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - echo "nginx.reading_connections $reading $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - echo "nginx.writing_connections $writing $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - echo "nginx.waiting_connections $waiting $(date +%s)" | zabbix_sender -z zabbix_server_ip -s nginx_server_name -i - ``` 你需要将脚本中的$URL替换为你实际的nginx状态页面URL,并将$zabbix_server_ip和$nginx_server_name替换为你的zabbix服务器IP和nginx服务器名称。该脚本可以使用zabbix_sender命令将收集的数据发送到zabbix服务器,以便在zabbix监控界面中查看nginx的实时状态和趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值