Nginx
第三方模块nginx_module_vts最新版已经支持Prometheus metrics格式数据,重新编译Nginx加入模块即可。
编译安装
1.准备编译环境
环境依赖:wget、gcc、automake、autoconf、libtool、make
编译依赖:pcre、pcre-devel、zlib、zlib-devel、openssl、openssl-devel、libxslt-devel、gd-devel、perl-devel、perl-ExtUtils-Embed、geoip-devel、gperftools
# 安装
yum install -y wget gcc automake autoconf libtool \
make pcre pcre-devel zlib zlib-devel openssl openssl-devel \
libxslt-devel gd-devel perl-devel perl-ExtUtils-Embed \
geoip-devel gperftools2.新增Nginx用户、用户组
useradd参数
-M:不要自动简历用户的登入目录
-g:指定用户所属的群组,也可以跟GID
-s:指定用户登入后所使用的shell,默认为/bin/bash
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx3.编译安装
下载Nginx源码
下载nginx-module-vts源码
编译安装
4.配置nginx.conf
需要做两点修改:
修改运行用户
添加配置文件目录
这时候可以来测试配置
但有可能会报错
我们手动来创建文件夹,因为有可能上一层文件夹也不存在,所以需要加-p参数
然后再来测试配置文件,配置通过
在检查的时候也许会遇到这样的问题
这是因为在nginx 1.15版本之后更改了配置文件的规则,以前是这么写的:
现在需要这么写:
5.配置Nginx为Systemd服务
6.配置nginx-module-vts
因为刚刚我们已经在nginx.conf配置文件中include了一个文件夹,而且是在http下,所以只需要建立如下配置文件即可。 实际在配置中,有时候会出现配置无法生效的情况,配置在/etc/nginx/nginx.conf即可。
测试后重新载入配置即可。
访问http://ip/status/format/prometheus即可获得Prometheus数据。 如果防火墙没有放行,可能还需要执行如下程序:
7.更改Job metrics path
官方文档中,对于默认的metrics path说明可以重写:Configuration | Prometheus 所以只需要在Prometheus的yaml配置文件中,新增参数修改默认配置即可。 而且默认为80端口也可省略。
因为我们采用80端口采集数据,所以防火墙不需新建端口,直接重启Prometheus使配置生效。
Last updated
Was this helpful?