prometheus监控nginx
prometheus监控ngix,使用nginx-module-vts模块
·
prometheus监控nginx
记录一下打开prometheus-nginx监控的方式。
这里使用的技术方案为使用nginx-module-vts的/status/format/prometheus作为数据来源,没有额外使用expoter
环境列表
- nginx版本:nginx/1.20.2
- prometheus版本:2.37.0
- granafa版本:9.0.4
- nginx-dashboard-ID:9785
- 操作系统版本: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面板
更多推荐
已为社区贡献3条内容
所有评论(0)