Web服务器-Nginx监控&备份

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

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

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

Nginx监控

Nginx默认监控模块

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

监控指标

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.部署编译依赖包

     yum install gcc make pcre-devel zlib-devel openssl-devel git

    2.下载同版本nginx​​​​​​​

    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源码

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

    4.动态编译​​​​​​​

    cd nginx-${NGINX_VERSION}
    ./configure --with-compat  --add-dynamic-module=../nginx-module-vts
    
    make modules

    5.配置动态模块加载​​​​​​​

    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并配置监控信息​​​​​​​

    #在nginx.conf主配置文件 http模块下添加参数
    #这样配置需要为每个网站配置 location
    vhost_traffic_status_zone;
    
    #下面这个配置就可以全局的
    vhost_traffic_status_zone shared:vhost_traffic_status:10m;
    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​​​​​​​

    #json指标地址
    #还需要启动exporter, 从这里读取数据 
    http://192.168.31.126/status/format/json

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

    图片

    备份

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

    运维小路

    一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

    关注微信公众号《运维小路》获取更多内容。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值