Prometheus 和 Grafana 通過nginx-exporter監(jiān)控nginx的詳細(xì)步驟
在生產(chǎn)環(huán)境下,您已經(jīng)部署了 Prometheus 和 Grafana,并希望通過它們來監(jiān)控另一臺(tái) 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
(這個(gè) URL 需要在 Nginx 配置中開啟并允許 Prometheus 訪問),啟動(dòng)nginx-exporter
:
nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
3.配置為服務(wù)(可選):
- 為了保證
nginx-exporter
能在系統(tǒng)重啟后自動(dòng)啟動(dò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. 驗(yàn)證配置
- 確保在 Grafana 中能看到 Nginx 的相關(guān)監(jiān)控?cái)?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。
好的,下面我會(huì)具體舉例說明如何配置 Nginx 的狀態(tài)頁并允許 Prometheus 訪問,以便啟動(dòng) nginx-exporter
。
1. 配置 Nginx 的狀態(tài)頁
首先,您需要在 Nginx 中啟用狀態(tài)頁。可以通過在 Nginx 配置文件中添加 stub_status
模塊來實(shí)現(xiàn)。
例子:配置 Nginx 的狀態(tài)頁
- 打開 Nginx 的主配置文件,通常位于
/etc/nginx/nginx.conf
或者/etc/nginx/sites-available/default
。 - 在配置文件中添加一個(gè)新的 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. 啟動(dòng) nginx-exporter
配置好 Nginx 的狀態(tài)頁后,接下來就是啟動(dòng) nginx-exporter
。
例子:啟動(dòng) nginx-exporter
假設(shè)您的 nginx-exporter
已經(jīng)安裝在 /usr/local/bin/
路徑下,可以通過以下命令啟動(dòng):
nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
這個(gè)命令告訴 nginx-exporter
從 http://localhost:8080/status
獲取 Nginx 的狀態(tài)信息并轉(zhuǎn)換為 Prometheus 可識(shí)別的格式。
配置 nginx-exporter
為系統(tǒng)服務(wù)(可選)
為了確保 nginx-exporter
在系統(tǒng)重啟后自動(dòng)運(yùn)行,可以將其配置為系統(tǒng)服務(wù):
1.創(chuàng)建一個(gè)新的 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 并啟動(dòng) nginx-exporter 服務(wù):
sudo systemctl daemon-reload sudo systemctl start nginx-prometheus-exporter sudo systemctl enable nginx-prometheus-exporter
3. 驗(yàn)證 nginx-exporter 工作情況
您可以通過訪問 http://<Nginx_Server_IP>:9113/metrics
來檢查 nginx-exporter
是否正常工作。訪問時(shí)應(yīng)看到 Prometheus 格式的指標(biāo)數(shù)據(jù)。
通過以上步驟,您的 nginx-exporter
應(yīng)該已經(jīng)正確配置并在工作了,Prometheus 也可以開始抓取 Nginx 的監(jiān)控?cái)?shù)據(jù)了。
到此這篇關(guān)于Prometheus 和 Grafana 通過nginx-exporter監(jiān)控nginx的文章就介紹到這了,更多相關(guān)Prometheus 和 Grafana 監(jiān)控nginx內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx?502?Bad?Gateway錯(cuò)誤解決詳細(xì)指南與實(shí)例
這篇文章主要介紹了Nginx?502?Bad?Gateway錯(cuò)誤解決的相關(guān)資料,502BadGateway錯(cuò)誤是Web開發(fā)和運(yùn)維中常見的錯(cuò)誤,表示一個(gè)服務(wù)器在充當(dāng)網(wǎng)關(guān)或代理時(shí),從上游服務(wù)器收到了一個(gè)無效的響應(yīng),需要的朋友可以參考下2024-11-11Nginx修復(fù)CORS漏洞的實(shí)現(xiàn)方法
本文主要介紹了CORS不安全配置漏洞的修復(fù)方法,通過修改Nginx配置,將Access-Control-Allow-Origin設(shè)置為正確的域名,以防止跨域資源共享時(shí)的隱私泄露風(fēng)險(xiǎn)2024-11-11nginx+redis實(shí)現(xiàn)session共享
這篇文章主要為大家詳細(xì)介紹了nginx+redis實(shí)現(xiàn)session的共享,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Nginx基礎(chǔ)配置(main、events、http、server、location)
本文主要介紹了Nginx基礎(chǔ)配置(main、events、http、server、location),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06