记录一下打开prometheus-nginx监控的方式。
这里使用的技术方案为使用nginx-module-vts的/status/format/prometheus作为数据来源,没有额外使用expoter

环境列表

  1. nginx版本:nginx/1.20.2
  2. prometheus版本:2.37.0
  3. granafa版本:9.0.4
  4. nginx-dashboard-ID:9785
  5. 操作系统版本:centos7.9

nginx编译

1、编译环境准备

安装编译必备的基础包

yum -y install gcc gcc-c++ make automake autoconf libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel libxslt-devel libxml2-devel gd-devel perl-devel perl-ExtUtils-Embed gperftools unzip

2、安装包获取

nginx官网:http://nginx.org/en/download.html
nginx-module-vts官网:https://github.com/vozlt/nginx-module-vts
由于项目及网络问题,选择的是下载后传输到服务器

  • nginx-1.20.2.tar.gz
  • nginx-module-vts-master.zip

3、编译安装

  • nginx源码目录:/root/nginx-1.20.2
  • vts工具包目录:/opt/nginx-module-vts-master

编译命令如下:增加了–add-module=/opt/nginx-module-vts-master,我这里配置较多是因为原有nginx就有这些配置

cd /root/nginx-1.20.2/
./configure  --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --add-module=/opt/nginx-module-vts-master --with-threads

执行安装

cd /root/nginx-1.20.2/
make && make install

4、检查编译结果

有输出则表示编译成功,且已成功加载vts模块

cd /root/nginx-1.20.2/
./objs/nginx  -V 2>&1 | grep -o vts

在这里插入图片描述

服务更新

将编译好的二进制文件替换掉已有的文件,增加相关配置后重启服务即可

  • 替换二进制文件
cp /root/nginx-1.20.2/objs/nginx /usr/sbin/nginx
  • 增加配置
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;
        }
    }
} 

参考下图
在这里插入图片描述

结果验证

  • 访问/status/页面
    在这里插入图片描述
  • 访问/status/format/prometheus页面
    在这里插入图片描述

prometheus配置

job信息如下,保证 metrics_path写正确

  - job_name: 'nginx'
    metrics_path: /status/format/prometheus
    static_configs:
    - targets: ['192.168.xxx.xxx:80']

granafa-dashboard数据展示

导入9785面板
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐