Prometheus 和 Grafana 通過nginx-exporter監(jiān)控nginx的詳細(xì)步驟
在生產(chǎn)環(huán)境下,您已經(jīng)部署了 Prometheus 和 Grafana,并希望通過它們來監(jiān)控另一臺 Ubuntu 20.04 上的 Nginx 服務(wù)。以下是配置步驟:
1. 安裝和配置 nginx-exporter (Nginx 的 Prometheus 導(dǎo)出器)
nginx-exporter 是 Prometheus 用來從 Nginx 收集指標(biāo)的組件。
安裝步驟:
1.在目標(biāo) Ubuntu 20.04 服務(wù)器上安裝 nginx-exporter:
- 您可以使用官方的 Go 程序編譯,或者直接下載預(yù)編譯的二進(jìn)制文件:
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.10.0/nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz tar -xzvf nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz sudo mv nginx-prometheus-exporter /usr/local/bin/
2.配置 nginx-exporter:
- 假設(shè)您的 Nginx 的狀態(tài)頁在
http://localhost:8080/status(這個 URL 需要在 Nginx 配置中開啟并允許 Prometheus 訪問),啟動nginx-exporter:
nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
3.配置為服務(wù)(可選):
- 為了保證
nginx-exporter能在系統(tǒng)重啟后自動啟動,您可以將其配置為系統(tǒng)服務(wù):
sudo tee /etc/systemd/system/nginx-prometheus-exporter.service > /dev/null <<EOL [Unit] Description=Nginx Prometheus Exporter After=network.target [Service] User=nobody ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status Restart=always [Install] WantedBy=multi-user.target EOL sudo systemctl daemon-reload sudo systemctl start nginx-prometheus-exporter sudo systemctl enable nginx-prometheus-exporter
2. 配置 Prometheus 來抓取 Nginx 的指標(biāo)
在 Prometheus 的配置文件中(通常為 prometheus.yml),添加 Nginx 的目標(biāo):
scrape_configs:
- job_name: 'nginx'
static_configs:
- targets: ['<Nginx_Server_IP>:9113']- 這里
<Nginx_Server_IP>是您 Ubuntu 服務(wù)器的 IP 地址。 9113是nginx-exporter默認(rèn)暴露的端口。
3. 在 Grafana 中創(chuàng)建 Nginx 的儀表盤
1.進(jìn)入 Grafana,添加 Prometheus 數(shù)據(jù)源。
2.導(dǎo)入 Nginx 的現(xiàn)有儀表盤模板或創(chuàng)建自定義儀表盤:
- 您可以在 Grafana 官方模板庫中找到 Nginx 的儀表盤模板(例如,Dashboard ID:11199 )。
3.設(shè)置數(shù)據(jù)源為您在 Prometheus 中配置的 Nginx 監(jiān)控源,保存并應(yīng)用。
4. 驗證配置
- 確保在 Grafana 中能看到 Nginx 的相關(guān)監(jiān)控數(shù)據(jù)。如果沒有數(shù)據(jù),檢查以下內(nèi)容:
- Nginx 狀態(tài)頁是否可以被
nginx-exporter訪問。 - Prometheus 是否可以正確抓取
nginx-exporter的數(shù)據(jù)。 - Grafana 中的數(shù)據(jù)源配置是否正確。
- Nginx 狀態(tài)頁是否可以被
5. 其他優(yōu)化和安全設(shè)置
- 您可以在生產(chǎn)環(huán)境中考慮使用認(rèn)證或限制 IP 來保護(hù) Nginx 狀態(tài)頁。
- 優(yōu)化 Prometheus 抓取間隔,避免對服務(wù)器造成過大壓力。
通過以上步驟,您應(yīng)該能夠成功在生產(chǎn)環(huán)境下使用 Prometheus 和 Grafana 監(jiān)控 Nginx。
好的,下面我會具體舉例說明如何配置 Nginx 的狀態(tài)頁并允許 Prometheus 訪問,以便啟動 nginx-exporter。
1. 配置 Nginx 的狀態(tài)頁
首先,您需要在 Nginx 中啟用狀態(tài)頁。可以通過在 Nginx 配置文件中添加 stub_status 模塊來實現(xiàn)。
例子:配置 Nginx 的狀態(tài)頁
- 打開 Nginx 的主配置文件,通常位于
/etc/nginx/nginx.conf或者/etc/nginx/sites-available/default。 - 在配置文件中添加一個新的 location 塊,用于暴露 Nginx 的狀態(tài)信息。假設(shè)您要在
localhost:8080/status暴露狀態(tài)頁,配置如下:
server {
listen 8080;
location /status {
stub_status;
allow 127.0.0.1; # 僅允許本地訪問
deny all; # 拒絕其他所有訪問
}
}stub_status指令啟用 Nginx 的基本狀態(tài)信息。allow 127.0.0.1; deny all;配置限制只有本地可以訪問狀態(tài)頁,您可以根據(jù)需要修改允許訪問的 IP。
3.保存配置文件后,重新加載 Nginx 服務(wù)以應(yīng)用配置:
sudo systemctl reload nginx
4.測試配置是否生效,訪問 http://localhost:8080/status:
curl http://localhost:8080/status
預(yù)期輸出應(yīng)類似于:
Active connections: 1 server accepts handled requests 10 10 10 Reading: 0 Writing: 1 Waiting: 0
2. 啟動 nginx-exporter
配置好 Nginx 的狀態(tài)頁后,接下來就是啟動 nginx-exporter。
例子:啟動 nginx-exporter
假設(shè)您的 nginx-exporter 已經(jīng)安裝在 /usr/local/bin/ 路徑下,可以通過以下命令啟動:
nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
這個命令告訴 nginx-exporter 從 http://localhost:8080/status 獲取 Nginx 的狀態(tài)信息并轉(zhuǎn)換為 Prometheus 可識別的格式。
配置 nginx-exporter 為系統(tǒng)服務(wù)(可選)
為了確保 nginx-exporter 在系統(tǒng)重啟后自動運行,可以將其配置為系統(tǒng)服務(wù):
1.創(chuàng)建一個新的 systemd 服務(wù)文件:
sudo nano /etc/systemd/system/nginx-prometheus-exporter.service
2.將以下內(nèi)容復(fù)制到服務(wù)文件中:
[Unit] Description=Nginx Prometheus Exporter After=network.target [Service] User=nobody ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status Restart=always [Install] WantedBy=multi-user.target
3.保存并退出編輯器。
4.重新加載 systemd 并啟動 nginx-exporter 服務(wù):
sudo systemctl daemon-reload sudo systemctl start nginx-prometheus-exporter sudo systemctl enable nginx-prometheus-exporter
3. 驗證 nginx-exporter 工作情況
您可以通過訪問 http://<Nginx_Server_IP>:9113/metrics 來檢查 nginx-exporter 是否正常工作。訪問時應(yīng)看到 Prometheus 格式的指標(biāo)數(shù)據(jù)。
通過以上步驟,您的 nginx-exporter 應(yīng)該已經(jīng)正確配置并在工作了,Prometheus 也可以開始抓取 Nginx 的監(jiān)控數(shù)據(jù)了。

到此這篇關(guān)于Prometheus 和 Grafana 通過nginx-exporter監(jiān)控nginx的文章就介紹到這了,更多相關(guān)Prometheus 和 Grafana 監(jiān)控nginx內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解析prometheus+grafana監(jiān)控nginx的方法
- prometheus監(jiān)控nginx并實現(xiàn)可視化的操作指南
- Prometheus監(jiān)控實戰(zhàn)篇Nginx、Hbase操作詳解
- prometheus監(jiān)控nginx的兩種方式
- 詳解Prometheus 抓取 nginx 訪問日志的指標(biāo)
- 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)文章
生產(chǎn)環(huán)境部署Nginx服務(wù)器雙機熱備部署keepalived的步驟(多種模式教程)
今天演示下生產(chǎn)環(huán)境keepalived的部署方式,安裝模式有很多,比如說主備模型和雙主模型,主備分:搶占模式 和 非搶占模式,對Nginx keepalived 雙機熱備部署相關(guān)知識感興趣的朋友跟隨小編一起看看吧2024-07-07
Nginx中配置用戶服務(wù)器訪問認(rèn)證的方法示例
這篇文章主要介紹了Nginx中配置用戶服務(wù)器訪問認(rèn)證的方法示例,包括一個用perl腳本來實現(xiàn)的方法,需要的朋友可以參考下2016-01-01
Nginx出現(xiàn)404 Not Found nginx/1.23.4的完美解決方案
在Nginx配置過程中,404 Not Found錯誤是一個常見問題,本文將詳細(xì)解析Nginx 404 Not Found的原因及解決方案,確保您能夠輕松解決這一問題,需要的小伙伴跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧2024-07-07
Nginx location 和 proxy_pass路徑配置問題小結(jié)
本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,進(jìn)行測試,完全還原了整個測試過程,本文給大家介紹Nginx location 基本配置及相關(guān)配置文件,感興趣的朋友跟隨小編一起看看吧2021-09-09
prometheus監(jiān)控nginx的實現(xiàn)
這篇文章主要介紹了prometheus監(jiān)控nginx的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
前端部署項目后nginx轉(zhuǎn)發(fā)接口404(頁面正常)詳解
一個網(wǎng)站項目,肯定是避免不了404頁面的,下面這篇文章主要給大家介紹了關(guān)于前端部署項目后nginx轉(zhuǎn)發(fā)接口404(頁面正常)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
nginx將https協(xié)議反向代理到http協(xié)議請求上
在項目正式上線時,一般會申請域名和證書來實現(xiàn)https的服務(wù),本文主要介紹了nginx將https協(xié)議反向代理到http協(xié)議請求上,具有一定的參考價值,感興趣的可以了解一下2024-05-05

