prometheus监控nginx的两种方式
Nginx监控搭建介绍说明
文章介绍两种不同的Nginx监控方法,第一种是nginx自带的tub_status模块进行监控,第二种是用vts监控工具进行监控。都是基于prometheus、grafana结合第三方模块或监控工具搭建,监控Nginx中间件的使用情况 。
方法一、tub_status模块监控
- 下载 https://github.com/nginxinc/nginx-prometheus-exporter/releases
- 解压 tar -zxvf
- 开启nginx_stub_status模块
开源nginx提供了一个简单页面用于展示状态数据,该页面由tub_status模块提供,如果已在本地服务安装nginx,进入nginx/sbin目录下执行
./nginx -V 2>&1 | grep -o with-http_stub_status_module
- 如果在终端输出with-http_stub_status_module,说明nginx已启用tub_status模块;

yum安装的是二进制文件,意思是已经编译好的nginx,它只有配置文件和二进制文件,没有源代码,所以你想加第三方模块,只能去nginx的官方网站:http://nginx.org 下载源代码,使用**–with-http_stub_status_module**参数从源码重新编译安装;
./configure --prefix=/DATA/soft/nginx/ --with-http_stub_status_module --add-module=nginx-module-vts make sudo make install
- 确认stub_status模块启动之后,修改nginx的配置文件指定status页面的URL;
server {
listen 80;
#端口可以自己重新起一个,配置文件要在外层nginx.conf中添加
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
- 执行命令启动nginx-prometheus -exporter ;
nohup ./nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1:80/nginx_status &
启动成功如图所示

- prometheus.yml文件添加被监控的机器节点;
- job_name: 'nginx_status_module' # 采集nginx的指标 metrics_path: '/metrics' # 拉取指标的接口路径 scrape_interval: 10s # 采集指标的间隔周期 static_configs: - targets: ['127.0.0.1:9113'] # nginx-prometheus-exporter服务的ip和端口
重新启动prometheus后,导入grafan模板;
模板链接:https://grafana.com/grafana/dashboards/12708

方法二、vts工具监控
- vts模块下载,链接:https://github.com/vozlt/nginx-module-vts
- tar -zxvf 解压nginx-module-vts,监控模块放至nginx目录下

- nginx源码文件重新编译安装
./configure --prefix=/DATA/soft/nginx/ --with-http_stub_status_module --add-module=nginx-module-vts make sudo make install
- 修改nginx配置
#nginx配置server中添加:
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
#http中添加:
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;
- 添加系统变量,启动nginx
vi /usr/lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/DATA/soft/nginx/sbin/nginx ExecReload=DATA/soft/nginx/sbin/nginx -s reload ExecStop=DATA/soft/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
# 完成启动: systemctl enable nginx.service systemctl start nginx.service systemctl status nginx.service
启动nginx后访问http://locahost/status

- 安装启动nginx-vts-exporter
下载链接:https://github.com/hnlq715/nginx-vts-exporter
tar -zxvf解压
chmod +x /usr/local/nginx_exporter/bin/nginx-vts-exporter -R #整个路径添加权限
- nginx-vts-exporter设置系统变量
vim /usr/lib/systemd/system/nginx_exporter.service [Unit] Description=nginx_vts_exporter After=network.target [Service] Type=simple ExecStart=/usr/local/nginx_exporter/bin/nginx-vts-exporter -nginx.scrape_uri http://192.168.62.75/status/format/json #ip替换成需要监控的ip Restart=on-failure [Install] WantedBy=multi-user.target
启动nginx_exporter
systemctl enable nginx_exporter.service systemctl status nginx_exporter.service systemctl start nginx_exporter.service

- 修改prometheus配置文件并重启
netstat -anlp | grep nginx-vts #查看nginx_vts_exporter启动的端口
- job_name: 'nginx'
static_configs:
- targets: ['127.0.0.1:9913'] #9913为工具启动的端口
labels:
instance: nginx
grafana导入nginx-vts-exporter监控模板
模板链接:https://grafana.com/grafana/dashboards/2949


以上就是prometheus监控nginx的两种方式的详细内容,更多关于prometheus监控nginx的资料请关注脚本之家其它相关文章!
相关文章
网页502 Bad Gateway nginx/1.20.1报错的原因与解决方法
502 bad gateway nginx/1.20.1 是一个错误提示,通常出现在访问网站时出现问题,这篇文章主要给大家介绍了关于网页502 Bad Gateway nginx/1.20.1报错的原因与解决方法,需要的朋友可以参考下2024-03-03
在Nginx服务器上安装SSL证书完成HTTPS请求的步骤详解(springboot项目)
这篇文章主要介绍了在Nginx服务器上安装SSL证书完成HTTPS请求(springboot项目),首先需要下载证书到本地接着在Nginx独立服务器上安装证书,本文给大家介绍的非常详细,需要的朋友参考下吧2022-04-04
nginx proxy_set_header设置自定义header的实现步骤
在Nginx中,使用 proxy_set_header指令可以自定义header并在反向代理时传递到后端服务器,本文就来详细的介绍一下,具有一定的参考价值,感兴趣的可以了解一下2024-05-05
Nginx rewrite和proxy_pass的区别及说明
这篇文章主要介绍了Nginx rewrite和proxy_pass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-06-06


最新评论