prometheus監(jiān)控nginx的兩種方式
Nginx監(jiān)控搭建介紹說明
文章介紹兩種不同的Nginx監(jiān)控方法,第一種是nginx自帶的tub_status模塊進行監(jiān)控,第二種是用vts監(jiā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提供了一個簡單頁面用于展示狀態(tài)數(shù)據(jù),該頁面由tub_status模塊提供,如果已在本地服務(wù)安裝nginx,進入nginx/sbin目錄下執(zhí)行
./nginx -V 2>&1 | grep -o with-http_stub_status_module
- 如果在終端輸出with-http_stub_status_module,說明nginx已啟用tub_status模塊;

yum安裝的是二進制文件,意思是已經(jīng)編譯好的nginx,它只有配置文件和二進制文件,沒有源代碼,所以你想加第三方模塊,只能去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
- 確認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;
}
}
- 執(zhí)行命令啟動nginx-prometheus -exporter ;
nohup ./nginx-prometheus-exporter -nginx.scrape-uri http://127.0.0.1:80/nginx_status &
啟動成功如圖所示

- prometheus.yml文件添加被監(jiān)控的機器節(jié)點;
- job_name: 'nginx_status_module' # 采集nginx的指標 metrics_path: '/metrics' # 拉取指標的接口路徑 scrape_interval: 10s # 采集指標的間隔周期 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 #整個路徑添加權(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的兩種方式的詳細內(nèi)容,更多關(guān)于prometheus監(jiān)控nginx的資料請關(guān)注腳本之家其它相關(guān)文章!
- Prometheus 和 Grafana 通過nginx-exporter監(jiān)控nginx的詳細步驟
- 解析prometheus+grafana監(jiān)控nginx的方法
- prometheus監(jiān)控nginx并實現(xiàn)可視化的操作指南
- Prometheus監(jiān)控實戰(zhàn)篇Nginx、Hbase操作詳解
- 詳解Prometheus 抓取 nginx 訪問日志的指標
- Nginx配置Prometheus監(jiān)控的實現(xiàn)
- prometheus監(jiān)控nginx的實現(xiàn)
- Nginx使用Prometheus+Grafana實現(xiàn)日志分析與監(jiān)控
- 通過Nginx(basic auth)實現(xiàn)Prometheus賬號密碼登錄
相關(guān)文章
nginx?搭建http-flv(rtmp)流媒體的方法步驟
本文主要介紹了nginx?搭建http-flv(rtmp)流媒體的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2023-06-06
解析prometheus+grafana監(jiān)控nginx的方法
?在prometheus需要向ngxin中打入探針,通過探針獲取ngxin信息,并通過接口輸出。下文將講述如何監(jiān)控ngxin,感興趣的朋友跟隨小編一起看看吧2021-11-11
Nginx配置真實IP地址轉(zhuǎn)發(fā)的實現(xiàn)示例
在許多web應(yīng)用程序中,獲取客戶端的真實 IP 地址非常重要,本文就來介紹一下Nginx配置真實IP地址轉(zhuǎn)發(fā)的實現(xiàn)示例,感興趣的可以了解一下2024-11-11

