Prometheus 和 Grafana 通過nginx-exporter監(jiān)控nginx的詳細步驟
在生產(chǎn)環(huán)境下,您已經(jīng)部署了 Prometheus 和 Grafana,并希望通過它們來監(jiān)控另一臺 Ubuntu 20.04 上的 Nginx 服務。以下是配置步驟:
1. 安裝和配置 nginx-exporter (Nginx 的 Prometheus 導出器)
nginx-exporter 是 Prometheus 用來從 Nginx 收集指標的組件。
安裝步驟:
1.在目標 Ubuntu 20.04 服務器上安裝 nginx-exporter:
- 您可以使用官方的 Go 程序編譯,或者直接下載預編譯的二進制文件:
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:
- 假設您的 Nginx 的狀態(tài)頁在
http://localhost:8080/status(這個 URL 需要在 Nginx 配置中開啟并允許 Prometheus 訪問),啟動nginx-exporter:
nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
3.配置為服務(可選):
- 為了保證
nginx-exporter能在系統(tǒng)重啟后自動啟動,您可以將其配置為系統(tǒng)服務:
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 的指標
在 Prometheus 的配置文件中(通常為 prometheus.yml),添加 Nginx 的目標:
scrape_configs:
- job_name: 'nginx'
static_configs:
- targets: ['<Nginx_Server_IP>:9113']- 這里
<Nginx_Server_IP>是您 Ubuntu 服務器的 IP 地址。 9113是nginx-exporter默認暴露的端口。
3. 在 Grafana 中創(chuàng)建 Nginx 的儀表盤
1.進入 Grafana,添加 Prometheus 數(shù)據(jù)源。
2.導入 Nginx 的現(xiàn)有儀表盤模板或創(chuàng)建自定義儀表盤:
- 您可以在 Grafana 官方模板庫中找到 Nginx 的儀表盤模板(例如,Dashboard ID:11199 )。
3.設置數(shù)據(jù)源為您在 Prometheus 中配置的 Nginx 監(jiān)控源,保存并應用。
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)化和安全設置
- 您可以在生產(chǎn)環(huán)境中考慮使用認證或限制 IP 來保護 Nginx 狀態(tài)頁。
- 優(yōu)化 Prometheus 抓取間隔,避免對服務器造成過大壓力。
通過以上步驟,您應該能夠成功在生產(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)信息。假設您要在
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 服務以應用配置:
sudo systemctl reload nginx
4.測試配置是否生效,訪問 http://localhost:8080/status:
curl http://localhost:8080/status
預期輸出應類似于:
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
假設您的 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)服務(可選)
為了確保 nginx-exporter 在系統(tǒng)重啟后自動運行,可以將其配置為系統(tǒng)服務:
1.創(chuàng)建一個新的 systemd 服務文件:
sudo nano /etc/systemd/system/nginx-prometheus-exporter.service
2.將以下內(nèi)容復制到服務文件中:
[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 服務:
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 是否正常工作。訪問時應看到 Prometheus 格式的指標數(shù)據(jù)。
通過以上步驟,您的 nginx-exporter 應該已經(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 訪問日志的指標
- 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出現(xiàn)403?Forbidden的幾種簡單解決方式
這篇文章主要介紹了Nginx出現(xiàn)403?Forbidden的幾種解決思路,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
nginx用正則表達式實現(xiàn)泛域名自動匹配目錄的方法
這篇文章主要介紹了nginx用正則表達式實現(xiàn)泛域名自動匹配目錄的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息
本文主要介紹了Nginx漏洞整改實現(xiàn)限制IP訪問&隱藏nginx版本信息,通過配置Nginx的ACL,可以輕松實現(xiàn),下面就來具體介紹一下,感興趣的可以了解一下2024-03-03

