要使用普羅米修斯監控你的網站主頁 http://gyq.com/
,可以通過以下步驟實現。普羅米修斯本身并不直接支持 HTTP 狀態碼的監控,但可以通過 Blackbox Exporter 來完成這項任務。
方案概述
- Blackbox Exporter?是一個普羅米修斯官方提供的工具,用于探測網絡服務的可用性(如 HTTP、HTTPS、TCP、ICMP 等)。
- 通過配置 Blackbox Exporter,可以定期檢查你的網站是否能正常訪問(HTTP 狀態碼是否為 200)。
- 普羅米修斯會從 Blackbox Exporter 中拉取監控數據,并根據配置設置告警規則。
具體步驟
1. 安裝和配置 Blackbox Exporter
-
下載 Blackbox Exporter
- 下載地址:Download | Prometheus
- 找到對應操作系統的版本并下載(例如 Linux amd64)。
2.解壓
tar -xvzf blackbox_exporter-*.tar.gz
cd blackbox_exporter-*
-
編輯
blackbox.yml
文件,添加對 HTTP 的探測模塊:modules:http_2xx:prober: httptimeout: 5shttp:preferred_ip_protocol: "ip4"valid_http_versions: ["HTTP/1.1", "HTTP/2"] # 允許的 HTTP 版本valid_status_codes: [] # 默認只允許 2xx 狀態碼fail_if_ssl: false # 不強制要求 SSLfail_if_not_ssl: false # 不強制要求非 SSL
- 這個配置表示:如果返回的狀態碼是 2xx,則認為探測成功。
-
啟動 Blackbox Exporter
nohup ./blackbox_exporter --config.file=blackbox.yml &
2. 配置 Prometheus
-
修改 Prometheus 配置文件 編輯
prometheus.yml
文件,添加 Blackbox Exporter 的監控任務:
- job_name: 'gyq.com_monitor'metrics_path: /probeparams:module: [http_2xx] # 使用 Blackbox Exporter 中定義的模塊static_configs:- targets:- http://gyq.com/ # 要監控的目標網址relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.158.183:9115 # Blackbox Exporter 的地址和端口
- 說明:
job_name: 'website_monitor'
:為這個監控任務命名。metrics_path: /probe
:指定 Blackbox Exporter 的探測路徑。params.module: [http_2xx]
:指定使用的探測模塊(即?http_2xx
)。targets
:填寫你要監控的目標 URL(如?http://gyq.com/
)。relabel_configs
:將目標 URL 轉換為 Blackbox Exporter 的參數。
重啟 Prometheus
重新加載 Prometheus 配置:
curl -X POST http://localhost:9090/-/reload
或者直接重啟 Prometheus 服務。
3. 配置告警規則
-
編輯告警規則文件 創建或編輯 Prometheus 的告警規則文件
[root@prometheus rules]# pwd
/usr/local/prometheus/rules
[root@prometheus rules]# cat web_rules.yml
groups:- name: web_gyq_comrules:- alert: gyq_com_Downexpr: probe_success == 0for: 5slabels:severity: criticalannotations:summary: "Website {{ $labels.instance }} is down"description: "這個網站 {{ $labels.instance }} 目前打不開了."
注意:以上規則文件需要在 Prometheus配置文件中定義好規則路徑,修改yml配置后都需要重啟或重新加載才能生效curl -X POST http://localhost:9090/-/reload
驗證監控
-
訪問 Prometheus Web UI 打開瀏覽器訪問
http://<prometheus-ip>:9090
,查看以下指標:probe_success
:是否為 1(表示探測成功)。probe_duration_seconds
:探測耗時。
-
模擬網站故障 暫時關閉
http://gyq.com/
,觀察 Prometheus 和 Alertmanager 是否發出告警。
也可以使用以下命令驗證 Blackbox Exporter 是否正常工作默認端口是9115
curl "http://localhost:9115/probe?module=http_2xx&target=http://gyq.com/"
以上都是正常狀態
接下來關閉網站模擬故障報警
查看界面Prometheus Web UI?發現probe_success值變成了1,狀態為失敗。
再看看釘釘收到了監控告警
最后啟動Nginx
這個時候查看界面Prometheus Web UI?發現恢復了正常
查看釘釘也收到了恢復消息