小知识:prometheus监控nginx的实现

简述

监控Nginx主要用到以下三个模块:

nginx-module-vts:Nginx virtual host traffic statusmodule,Nginx的监控模块,能够提供JSON格式的数据产出。 nginxvts-exporter:Simple serverthat scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。 Prometheus:监控Nginx-vts-exporter提供的Nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。

1.下载nginx-module-vts模块

?
1
2
3
解压
unzip nginx-module-vts-master.zip
mv nginx-module-vts-master /usr/local/

2.安装nginx

?
1
2
3
4
5
6
tar zxvf nginx-1.15.7.tar.gz
cd nginx-1.15.7
./configure  –prefix=/usr/local/nginx –with-http_gzip_static_module –with-http_stub_status_module –with-http_ssl_module –with-pcre –with-file-aio –with-http_realip_module –add-module=/usr/local/nginx-module-vts-master
make && make install

修改nginx配置文件,新起一个vhost暴露给server端访问数据:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim /usr/local/nginx/conf/nginx.conf
server下添加如下:http {
vhost_traffic_status_zone;  –添加
server {
location /status {
vhost_traffic_status_display;  –添加
vhost_traffic_status_display_format html;  –添加
}
}
}

Nginx-module-vts模块介绍:

这是一个Nginx模块,提供对虚拟主机状态信息的访问。它包含当前状态,例如servers, upstreams, caches。这类似于nginx plus的实时活动监视。内置的html和旧版本的演示页面也保持一致。这个模块主要就是来监控nginx虚拟主机状态的。

首先,指令vhost_traffic_status_zone是必需的,如果指令vhost_traffic_status_display被设置,可以通过下方式访问:

/status/format/json

请求/status/format/json将用一个包含当前活动数据的json文档进行响应,以便在实时仪表板和三方监视工具中使用。

/status/format/html

请求/status/format/html将会用一个内置的内置的html仪表板网页进行响应,该仪表盘的内部请求走/status/format/json。

/status/format/jsonp

请求/status/format/jsonp将用一个jsonp回调函数进行响应,该函数包含用于实时仪表板和三方监视工具的当前活动数据。

/status/format/prometheus

请求/status/format/prometheus将用包含当前活动数据的prometheus文档来响应。

/status/control

请求/status/control将返回基于查询语句字符串重置或删除区域后的JSON文档。更多可以参考Control.

测试nginx配置文件是否正确:

/usr/local/nginx/sbin/nginx -t

如果正确没问题,启动nginx

启动nginx:

/usr/local/nginx/sbin/nginx

此时访问http://IP地址/status可以看到nginx的状态信息了。

%小知识:prometheus监控nginx的实现-猿站网-插图

3.安装nginx-vts-exporter

?
1
2
3
4
5
6
7
8
9
10
https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.9.1/nginx-vts-exporter-0.9.1.linux-amd64.tar.gz
tar -zxvf nginx-vts-exporter-0.9.1.linux-amd64.tar.gz
mv nginx-vts-exporter-0.9.1.linux-amd64  /usr/local/nginx-vts-exporter
chmod +x /usr/local/nginx-vts-exporter-0.5/bin/nginx-vts-exporter
cd /usr/local/nginx-vts-exporter/bin
通过nginx-vts-exporter二进制文件来执行nginx-vts-exporter程序
nohup ./nginx-vts-exporter  -nginx.scrape_uri http://10.10.xx.xx:80/status/format/json &
#注意:http://10.10.xx.xx/status/format/json这个地方的ip地址是nginx的IP地址
nginx-vts-exporter的监听端口是9913

也可以使用systemctl管理nginx-vts-exporter进程。

?
1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost nginx-vts-exporter]# vim /usr/lib/systemd/system/nginx_vts_exporter.service
[Unit]
Description=prometheus_nginx_vts
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/nginx-vts-exporter/nginx-vts-exporter  -nginx.scrape_uri http://10.10.xx.xx:80/status/format/json
Restart=on-failure
[Install]
WantedBy=multi-user.target
?
1
2
3
4
5
6
7
8
9
10
[root@localhost nginx-vts-exporter]# systemctl daemon-reload
[root@localhost nginx-vts-exporter]# systemctl enable  nginx_vts_exporter
[root@localhost nginx-vts-exporter]# systemctl start nginx_vts_exporter
[root@localhost nginx-vts-exporter]# systemctl status nginx_vts_exporter
● nginx_vts_exporter.service – prometheus_nginx_vts
Loaded: loaded (/usr/lib/systemd/system/nginx_vts_exporter.service; disabled; vendor preset: disabled)
Active: active (running) since Fri xxxx-xx-xx xx:xx:xx EDT; 4 days ago
Main PID: 90274 (nginx-vts-expor)
CGroup: /system.slice/nginx_vts_exporter.service
└─90274 /usr/local/nginx-vts-exporter/nginx-vts-exporter -nginx.scrape_uri http://10.10.xx.xx:80/status/format/json

4.修改prometheus-cfg.yaml文件

添加如下job:

?
1
2
3
4
– job_name: nginx
scrape_interval: 5s
static_configs:
– targets: [192.168.124.16:9913]

kubectl apply -f prometheus-cfg.yaml

kubectl delete -f prometheus-deploy.yaml

kubectl apply -f prometheus-deploy.yaml

#注意: – targets: [‘10.10.xx.xx:9913’]这个ip地址是nginx-vts-exporter程序所在机器的ip地址

5.在grafana界面导入nginx json文件

%小知识:prometheus监控nginx的实现-1猿站网-插图

 到此这篇关于prometheus监控nginx的实现的文章就介绍到这了,更多相关prometheus监控nginx内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_34939308/article/details/123604472

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:在Linux分区或逻辑卷中创建文件系统的方法

2023-3-17 5:16:43

建站知识

小知识:Linux环境变量配置的完整攻略

2023-3-17 5:24:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索