prometheus監(jiān)控nginx的實(shí)現(xiàn)
簡(jiǎn)述
監(jiān)控Nginx主要用到以下三個(gè)模塊:
- nginx-module-vts:Nginx virtual host traffic statusmodule,Nginx的監(jiān)控模塊,能夠提供JSON格式的數(shù)據(jù)產(chǎn)出。
- nginx-vts-exporter:Simple serverthat scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集Nginx的監(jiān)控?cái)?shù)據(jù),并給Prometheus提供監(jiān)控接口,默認(rèn)端口號(hào)9913。
- Prometheus:監(jiān)控Nginx-vts-exporter提供的Nginx數(shù)據(jù),并存儲(chǔ)在時(shí)序數(shù)據(jù)庫(kù)中,可以使用PromQL對(duì)時(shí)序數(shù)據(jù)進(jìn)行查詢和聚合。
1.下載nginx-module-vts模塊
解壓 unzip nginx-module-vts-master.zip mv nginx-module-vts-master /usr/local/
2.安裝nginx
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配置文件,新起一個(gè)vhost暴露給server端訪問(wèn)數(shù)據(jù):
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模塊介紹:
這是一個(gè)Nginx模塊,提供對(duì)虛擬主機(jī)狀態(tài)信息的訪問(wèn)。它包含當(dāng)前狀態(tài),例如servers, upstreams, caches。這類似于nginx plus的實(shí)時(shí)活動(dòng)監(jiān)視。內(nèi)置的html和舊版本的演示頁(yè)面也保持一致。這個(gè)模塊主要就是來(lái)監(jiān)控nginx虛擬主機(jī)狀態(tài)的。
首先,指令vhost_traffic_status_zone是必需的,如果指令vhost_traffic_status_display被設(shè)置,可以通過(guò)下方式訪問(wèn):
/status/format/json
請(qǐng)求/status/format/json將用一個(gè)包含當(dāng)前活動(dòng)數(shù)據(jù)的json文檔進(jìn)行響應(yīng),以便在實(shí)時(shí)儀表板和三方監(jiān)視工具中使用。
/status/format/html
請(qǐng)求/status/format/html將會(huì)用一個(gè)內(nèi)置的內(nèi)置的html儀表板網(wǎng)頁(yè)進(jìn)行響應(yīng),該儀表盤的內(nèi)部請(qǐng)求走/status/format/json。
/status/format/jsonp
請(qǐng)求/status/format/jsonp將用一個(gè)jsonp回調(diào)函數(shù)進(jìn)行響應(yīng),該函數(shù)包含用于實(shí)時(shí)儀表板和三方監(jiān)視工具的當(dāng)前活動(dòng)數(shù)據(jù)。
/status/format/prometheus
請(qǐng)求/status/format/prometheus將用包含當(dāng)前活動(dòng)數(shù)據(jù)的prometheus文檔來(lái)響應(yīng)。
/status/control
請(qǐng)求/status/control將返回基于查詢語(yǔ)句字符串重置或刪除區(qū)域后的JSON文檔。更多可以參考Control.
測(cè)試nginx配置文件是否正確:
/usr/local/nginx/sbin/nginx -t
如果正確沒(méi)問(wèn)題,啟動(dòng)nginx
啟動(dòng)nginx:
/usr/local/nginx/sbin/nginx
此時(shí)訪問(wèn)http://IP地址/status可以看到nginx的狀態(tài)信息了。

3.安裝nginx-vts-exporter
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 通過(guò)nginx-vts-exporter二進(jìn)制文件來(lái)執(zhí)行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這個(gè)地方的ip地址是nginx的IP地址 nginx-vts-exporter的監(jiān)聽端口是9913
也可以使用systemctl管理nginx-vts-exporter進(jìn)程。
[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
[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:
- 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’]這個(gè)ip地址是nginx-vts-exporter程序所在機(jī)器的ip地址
5.在grafana界面導(dǎo)入nginx json文件

到此這篇關(guān)于prometheus監(jiān)控nginx的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)prometheus監(jiān)控nginx內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Prometheus 和 Grafana 通過(guò)nginx-exporter監(jiān)控nginx的詳細(xì)步驟
- 解析prometheus+grafana監(jiān)控nginx的方法
- prometheus監(jiān)控nginx并實(shí)現(xiàn)可視化的操作指南
- Prometheus監(jiān)控實(shí)戰(zhàn)篇Nginx、Hbase操作詳解
- prometheus監(jiān)控nginx的兩種方式
- 詳解Prometheus 抓取 nginx 訪問(wèn)日志的指標(biāo)
- Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn)
- Nginx使用Prometheus+Grafana實(shí)現(xiàn)日志分析與監(jiān)控
- 通過(guò)Nginx(basic auth)實(shí)現(xiàn)Prometheus賬號(hào)密碼登錄
相關(guān)文章
Nginx使用if指令實(shí)現(xiàn)多個(gè)proxy_pass方式
這篇文章主要介紹了Nginx使用if指令實(shí)現(xiàn)多個(gè)proxy_pass方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
LNMP 解決Access Denied錯(cuò)誤詳細(xì)介紹
這篇文章主要介紹了LNMP 解決Access Denied錯(cuò)誤詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-10-10
在Nginx服務(wù)器下配置StartSSL和SSL的教程
這篇文章主要介紹了在Nginx服務(wù)器下配置StartSSL和SSL的教程,其中申請(qǐng)證書的步驟確實(shí)比較麻煩一些,不過(guò)出于安全考慮:p需要的朋友可以參考下2015-07-07
Nginx同端口部署多個(gè)vue以及unapp項(xiàng)目
文章詳細(xì)介紹了如何在同一端口下部署PC端和App端項(xiàng)目,包括Nginx配置、前端打包配置、manifest.json配置以及針對(duì)Vue3+vite項(xiàng)目的特殊配置,通過(guò)示例項(xiàng)目A和項(xiàng)目B,展示了如何修改Vite配置文件、調(diào)整路由配置,并通過(guò)Nginx進(jìn)行關(guān)鍵配置2026-01-01
Nginx 根據(jù)URL帶的參數(shù)轉(zhuǎn)發(fā)的實(shí)現(xiàn)
這篇文章主要介紹了Nginx 根據(jù)URL帶的參數(shù)轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Nginx服務(wù)器中配置GeoIP模塊來(lái)攔截指定國(guó)家IP
Nginx中自帶GeoIP模塊可以屏蔽指定IP的請(qǐng)求,只不過(guò)默認(rèn)沒(méi)有被編譯,打開以后我們只要再下載一個(gè)IP規(guī)則就行,Nginx服務(wù)器中配置GeoIP模塊來(lái)攔截指定國(guó)家IP2016-06-06
nginx配置同一域名同一端口下部署多個(gè)vue項(xiàng)目的實(shí)現(xiàn)
本地開發(fā)好了多個(gè)前端微信網(wǎng)頁(yè)項(xiàng)目,想部署上線,本文就來(lái)介紹一下nginx配置同一域名同一端口下部署多個(gè)vue項(xiàng)目的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

