首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Web服务器-Nginx监控&备份

Web服务器-Nginx监控&备份

作者头像
运维小路
发布于 2025-04-21 00:03:02
发布于 2025-04-21 00:03:02
8090
举报
文章被收录于专栏:运维小路运维小路

我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。

任何应用软件,部署以后,都需要考虑到监控和备份的问题。我们这一章的Nginx也不例外。

Nginx监控

Nginx默认监控模块

代码语言:javascript
复制
server {
    listen 80;
    server_name localhost;
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 192.168.31.0/24;  # 限制访问IP,根据需要 
        deny all;
    }
}

监控指标

代码语言:javascript
复制
Active connections: 3 
server accepts handled requests
 3 3 6 
Reading: 0 Writing: 1 Waiting: 2 

Active connections:当前活跃连接数。

accepts vs handled:若差异大,可能有连接被丢弃。

Reading/Writing/Waiting:分别代表读取头、响应写入、空闲客户端连接数。

Prometheus的监控

上面的监控信息,实在是简单了,而且随着云原生的发展,大部分监控都需要接入到Prometheus里面,所以我们必须要把我们的监控数据兼容Prometheus格式。

下面我们将使用动态加载mod的方式加载的vts模块,也算是弥补我们在Lua的使用动态加载的遗憾。也是这个模块才会有更详细的监控数据。

1.部署编译依赖包

代码语言:javascript
复制
 yum install gcc make pcre-devel zlib-devel openssl-devel git

2.下载同版本nginx

代码语言:javascript
复制
NGINX_VERSION=$(nginx -v 2>&1 | awk -F'/' '{print $2}')
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -zxvf nginx-${NGINX_VERSION}.tar.gz

3.下载vts源码

代码语言:javascript
复制
#也可以不安装git命令,手工上传源码包 
git clone https://github.com/vozlt/nginx-module-vts.git

4.动态编译

代码语言:javascript
复制
cd nginx-${NGINX_VERSION}
./configure --with-compat  --add-dynamic-module=../nginx-module-vts

make modules

5.配置动态模块加载

代码语言:javascript
复制
cp objs/ngx_http_vhost_traffic_status_module.so /usr/share/nginx/modules/
echo "load_module /usr/share/nginx/modules/ngx_http_vhost_traffic_status_module.so;" > /usr/share/nginx/modules/vts.conf

6.重载nginx并配置监控信息

代码语言:javascript
复制
#在nginx.conf主配置文件 http模块下添加参数
#这样配置需要为每个网站配置 location
vhost_traffic_status_zone;

#下面这个配置就可以全局的
vhost_traffic_status_zone shared:vhost_traffic_status:10m;
代码语言:javascript
复制
server {
    listen 80;
    server_name localhost;
    location /status {
      vhost_traffic_status_display;
      vhost_traffic_status_display_format html;
      access_log off;
      allow 192.168.31.0/24;  # 按需开放访问IP
      deny all;
    }
  }

7.暴露给exporter

代码语言:javascript
复制
#json指标地址
#还需要启动exporter, 从这里读取数据 
http://192.168.31.126/status/format/json

放一个网上找的Grafana的Nginx监控大屏。

备份

Nginx的核心其实就是配置文件,所以备份的核心也是这些配置文件,可以通过任何计划定时把配置文件同步到其他地方。如果还涉及到静态文件,也可以同步备份。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • Nginx默认监控模块
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档