prometheus監(jiān)控nginx的兩種方式
Nginx監(jiān)控搭建介紹說明
文章介紹兩種不同的Nginx監(jiān)控方法,第一種是nginx自帶的tub_status模塊進(jìn)行監(jiān)控,第二種是用vts監(jiān)控工具進(jìn)行監(jiān)控。都是基于prometheus、grafana結(jié)合第三方模塊或監(jiān)控工具搭建,監(jiān)控Nginx中間件的使用情況 。
方法一、tub_status模塊監(jiān)控
- 下載 https://github.com/nginxinc/nginx-prometheus-exporter/releases
- 解壓 tar -zxvf
- 開啟nginx_stub_status模塊
開源nginx提供了一個(gè)簡單頁面用于展示狀態(tài)數(shù)據(jù),該頁面由tub_status模塊提供,如果已在本地服務(wù)安裝nginx,進(jìn)入nginx/sbin目錄下執(zhí)行
./nginx -V 2>&1 | grep -o with-http_stub_status_module
- 如果在終端輸出with-http_stub_status_module,說明nginx已啟用tub_status模塊;

yum安裝的是二進(jìn)制文件,意思是已經(jīng)編譯好的nginx,它只有配置文件和二進(jìn)制文件,沒有源代碼,所以你想加第三方模塊,只能去nginx的官方網(wǎng)站:http://nginx.org 下載源代碼,使用**–with-http_stub_status_module**參數(shù)從源碼重新編譯安裝;
./configure --prefix=/DATA/soft/nginx/ --with-http_stub_status_module --add-module=nginx-module-vts make sudo make install
- 確認(rèn)stub_status模塊啟動之后,修改nginx的配置文件指定status頁面的URL;
server {
listen 80;
#端口可以自己重新起一個(gè),配置文件要在外層nginx.conf中添加
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
- 執(zhí)行命令啟動nginx-prometheus -exporter ;
nohup ./nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1:80/nginx_status &
啟動成功如圖所示

- prometheus.yml文件添加被監(jiān)控的機(jī)器節(jié)點(diǎn);
- job_name: 'nginx_status_module' # 采集nginx的指標(biāo) metrics_path: '/metrics' # 拉取指標(biāo)的接口路徑 scrape_interval: 10s # 采集指標(biāo)的間隔周期 static_configs: - targets: ['127.0.0.1:9113'] # nginx-prometheus-exporter服務(wù)的ip和端口
重新啟動prometheus后,導(dǎo)入grafan模板;
模板鏈接:https://grafana.com/grafana/dashboards/12708

方法二、vts工具監(jiān)控
- vts模塊下載,鏈接:https://github.com/vozlt/nginx-module-vts
- tar -zxvf 解壓nginx-module-vts,監(jiān)控模塊放至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;
- 添加系統(tǒng)變量,啟動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 #整個(gè)路徑添加權(quán)限
- nginx-vts-exporter設(shè)置系統(tǒng)變量
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替換成需要監(jiān)控的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導(dǎo)入nginx-vts-exporter監(jiān)控模板
模板鏈接:https://grafana.com/grafana/dashboards/2949


以上就是prometheus監(jiān)控nginx的兩種方式的詳細(xì)內(nèi)容,更多關(guān)于prometheus監(jiān)控nginx的資料請關(guān)注腳本之家其它相關(guān)文章!
- Prometheus 和 Grafana 通過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 抓取 nginx 訪問日志的指標(biāo)
- Nginx配置Prometheus監(jiān)控的實(shí)現(xiàn)
- prometheus監(jiān)控nginx的實(shí)現(xiàn)
- Nginx使用Prometheus+Grafana實(shí)現(xiàn)日志分析與監(jiān)控
- 通過Nginx(basic auth)實(shí)現(xiàn)Prometheus賬號密碼登錄
相關(guān)文章
網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報(bào)錯的原因與解決方法
502 bad gateway nginx/1.20.1 是一個(gè)錯誤提示,通常出現(xiàn)在訪問網(wǎng)站時(shí)出現(xiàn)問題,這篇文章主要給大家介紹了關(guān)于網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報(bào)錯的原因與解決方法,需要的朋友可以參考下2024-03-03
在Nginx服務(wù)器上安裝SSL證書完成HTTPS請求的步驟詳解(springboot項(xiàng)目)
這篇文章主要介紹了在Nginx服務(wù)器上安裝SSL證書完成HTTPS請求(springboot項(xiàng)目),首先需要下載證書到本地接著在Nginx獨(dú)立服務(wù)器上安裝證書,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-04-04
nginx proxy_set_header設(shè)置自定義header的實(shí)現(xiàn)步驟
在Nginx中,使用?proxy_set_header指令可以自定義header并在反向代理時(shí)傳遞到后端服務(wù)器,本文就來詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
基于nginx設(shè)置瀏覽器協(xié)商緩存過程詳解
這篇文章主要介紹了基于nginx設(shè)置瀏覽器協(xié)商緩存過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
nginx 部署前端vue項(xiàng)目的方法實(shí)踐
本文主要介紹了Nginx的基本概念及其優(yōu)點(diǎn),并詳細(xì)闡述了如何使用Nginx部署前端Vue項(xiàng)目的步驟,主要包括安裝Nginx、打包Vue項(xiàng)目和配置Nginx三個(gè)步驟,感興趣的可以了解一下2024-10-10
nginx?攔截指定ip訪問指定url的實(shí)現(xiàn)示例
本文主要介紹了nginx?攔截指定ip訪問指定url的實(shí)現(xiàn)示例,使用$http_x_forwarded_for變量來獲取客戶端的真實(shí)IP地址,感興趣的可以了解一下2024-12-12
Nginx rewrite和proxy_pass的區(qū)別及說明
這篇文章主要介紹了Nginx rewrite和proxy_pass的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Nginx動態(tài)IP黑名單的實(shí)現(xiàn)步驟
為了封禁某些爬蟲或者惡意用戶對服務(wù)器的請求,我們需要建立一個(gè)動態(tài)的?IP?黑名單,本文主要介紹了Nginx動態(tài)IP黑名單的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02

