prometheus的nginx-vts-exporter安装指导

基于prometheus监控nginx可选两个exporter,一个是通过nginx_exporter主要是获取nginx-status中的内建的指标,nginx自身提供status信息,较为简单,promethues中对应的metrics也较少。另外一个是可以通过 nginx-vts-exporter监控更多的指标,但nginx-vts-exporter依赖在编译nginx的时候添加nginx-module-vts模块来实现。vts提供了访问虚拟主机状态的信息,包含server,upstream以及cache的当前状态,指标会更丰富一些。

1.nginx-vts-exporter

  1. 版本:nginx-module-vts-0.2.1

    下载地址:

  2. 安装步骤

# 进入nginx安装目录
cd /usr/local/nginx
# 上传nginx-module-vts安装包
# 解压nginx-module-vts
tar -zxvf nginx-module-vts-0.2.1.tar.gz
# 预编译
./configure --add-module=nginx-module-vts-0.2.1
# 编译(这里只make,不要make install,不然会覆盖。如果是新装nginx,可以继续make install)
make
  1. 调整nginx启动脚本
# 进入nginx的sbin目录
cd /usr/local/nginx/sbin/
# 停止nginx
./nginx -s stop
# 备份原启动脚本
mv nginx nginx.old
# 替换新的启动脚本
cp /usr/local/nginx/nginx-1.20.1/objs/nginx /usr/local/nginx/sbin/
# 启动nginx
cd /usr/local/nginx/sbin/
./nginx

# 查看插件是否安装成功
./nginx -V
configure arguments: 最后是否有 --add-module=nginx-module-vts-0.2.1
  1. 修改配置文件
# 进入nginx的conf目录
cd /usr/local/nginx/conf
# 备份原配置文件
cp nginx.conf nginx.conf.bak

# 修改nginx.conf配置,增加以下内容
http {
    ...
    vhost_traffic_status_zone;  
    vhost_traffic_status_filter_by_host on;
    ...
    server {
        ...   
        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
        }
}

# 重启nginx
/usr/local/nginx/sbin/nginx -s reload

配置解析:

1、打开vhost过滤:
vhost_traffic_status_filter_by_host on;
开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上。

2、在不想统计流量的server区域禁用vhost_traffic_status,配置示例:
server {
        ...
        vhost_traffic_status off;
        ...
}
  1. 验证
    在这里插入图片描述

2.nginx-vts-exporter安装指导

  1. 版本:nginx-vts-exporter-0.10.7
  2. 安装步骤
# 进入nginx安装目录
cd /usr/local/nginx
# 上传nginx-vts-exporter安装包
# 解压nginx-vts-exporter
tar -zxvf nginx-vts-exporter-0.10.7.tar.gz

# 查看默认配置
cd /usr/local/nginx/nginx-vts-exporter-0.10.3.linux-amd64
./nginx-vts-exporter -h

# 输出内容如下
Usage of ./nginx-vts-exporter:
  -insecure
            Ignore server certificate if using https (default true)
  -metrics.namespace string
            Prometheus metrics namespace. (default "nginx")
  -nginx.scrape_timeout int
            The number of seconds to wait for an HTTP response from the nginx.scrape_uri (default 2)
  -nginx.scrape_uri string
            URI to nginx stub status page (default "http://localhost/status")
  -telemetry.address string
            Address on which to expose metrics. (default ":9913")
  -telemetry.endpoint string
            Path under which to expose metrics. (default "/metrics")
  -version
            Print version information.
  1. 将nginx-vts-exporter配置为系统服务
# 进入systemd目录
cd /usr/lib/systemd/system

# 创建文件
vim nginx-vts-exporter.service
 
# 添加如下内容
[Unit]
Description=https://github.com/hnlq715/nginx-vts-exporter
After=network-online.target
 
[Service]
Restart=on-failure
ExecStart=/usr/local/nginx/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_uri http://10.15.111.15/status/format/json
 
[Install]
WantedBy=multi-user.target

# 保存退出后生效系统文件
systemctl daemon-reload

# 设置开机自启
systemctl enable nginx-vts-exporter

# 启动nginx-vts-export
systemctl restart nginx-vts-exporter
  1. 查看nginx-vts-export启动状态
    在这里插入图片描述
  2. 验证
    在这里插入图片描述
  3. 添加prometheus监控配置并重启
# 进入prometheus目录
cd /usr/local/prometheus
# 修改 prometheus.yml
vim prometheus.yml
 
# 添加如下内容
- job_name: 'nginx'
    scrape_interval: 30s
    static_configs:
      - targets: ['39.101.198.57:9913']
        labels:
          instance: '监控(39.101.198.57:9913)'
          
# 重启prometheus
systemctl restart prometheus
  1. 查看nginx监控
    在这里插入图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值