您好,登錄后才能下訂單哦!
這篇文章主要介紹Prometheus如何整合AlertManager,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Alertmanager 主要用于接收 Prometheus 發送的告警信息,它很容易做到告警信息的去重,降噪,分組,策略路由,是一款前衛的告警通知系統。它支持豐富的告警通知渠道,可以將告警信息轉發到郵箱、企業微信、釘釘等。
啟動 http-simulator 度量模擬器:
docker run --name http-simulator -d -p 8080:8080 pierrevincent/prom-http-simulator:0.1
啟動 Prometheus,為了方便更新配置,使用掛載配置文件的方式:
docker run --name prometheus -d -p 9090:9090 -v /Users/huanchu/Documents/prometheus-data:/prometheus-data \ prom/prometheus --web.enable-lifecycle --config.file=/prometheus-data/prometheus.yml
啟動添加了參數 —web.enable-lifecycle,讓Prometheus支持通過web端點動態更新配置。
訪問 http://127.0.0.1:9090/targets ,Prometheus 自身的 metrics 和 http-simulator 的 metrics 處于up 狀態 ,那么準備工作就做好了。
在prometheus-data文件夾下,創建告警配置文件 simulator_alert_rules.yml:
groups: - name: simulator-alert-rule rules: - alert: HttpSimulatorDown expr: sum(up{job="http-simulator"}) == 0 for: 1m labels: severity: critical
配置文件的意思是 http-simulator 服務up狀態為 0 ,并且持續1分鐘時,產生告警 ,級別為 “嚴重的”。
修改prometheus.yml,引用simulator_alert_rules.yml文件,prometheus.yml 內容如下:
global: scrape_interval: 5s evaluation_interval: 5s scrape_timeout: 5s rule_files: - "simulator_alert_rules.yml" scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'http-simulator' metrics_path: /metrics static_configs: - targets: ['192.168.43.121:8080']
更新Prometheus配置:
curl -X POST http://localhost:9090/-/reload
訪問 http://127.0.0.1:9090/config,可以看到已經為更新了配置:
訪問 http://127.0.0.1:9090/rules,Rules 下出現了新添加的告警規則:
訪問 http://127.0.0.1:9090/alerts ,Alerts 下 HttpSimulatorDown 為綠色,處于INACTIVE 狀態,表示什么都沒有發生。
關閉 http-simulator 服務:
docker stop http-simulator
訪問 http://127.0.0.1:9090/alerts,HttpSimulatorDown 變成黃色,處于 PENDING 狀態,表示報警即將被激活。
一分鐘后,HttpSimulatorDown 變成紅色,處于 FIRING 狀態,表示報警已經被激活了。
在simulator_alert_rules.yml文件中增加告警配置:
- alert: ErrorRateHigh expr: sum(rate(http_requests_total{job="http-simulator", status="500"}[5m])) / sum(rate(http_requests_total{job="http-simulator"}[5m])) > 0.02 for: 1m labels: severity: major annotations: summary: "High Error Rate detected" description: "Error Rate is above 2% (current value is: {{ $value }}"
配置文件的意思是 http-simulator 請求的錯誤率對2% ,并且持續1分鐘時,產生告警 ,級別為 “非常嚴重的”
更新Prometheus配置:
curl -X POST http://localhost:9090/-/reload
訪問 http://127.0.0.1:9090/alerts,ErrorRateHigh 為綠色的 INACTIVE 狀態。
把 http-simulator 的錯誤率調到 10%
curl -H 'Content-Type: application/json' -X PUT -d '{"error_rate": 10}' http://localhost:8080/error_rate
稍等一會后,訪問 http://127.0.0.1:9090/alerts, 可以看到錯誤率已經大2%,ErrorRateHigh 為紅色的 FIRING 狀態,報警已經被激活了。
通過docker 掛載文件的方式安裝AlertManager,在本地創建文件夾 alertmanager-data 文件夾,在其中創建 alertmanager.yml,內容如下:
global: smtp_smarthost: 'smtp.163.com:25' smtp_from: 'xxxxx@163.com' smtp_auth_username: 'xxxxx@163.com' smtp_auth_password: 'xxxxx' route: group_interval: 1m #當第一個報警發送后,等待'group_interval'時間來發送新的一組報警信息 repeat_interval: 1m # 如果一個報警信息已經發送成功了,等待'repeat_interval'時間來重新發送他們 receiver: 'mail-receiver' receivers: - name: 'mail-receiver' email_configs: - to: 'xxxxxx@163.com'
啟動 AlertManager:
docker run --name alertmanager -d -p 9093:9093 -v /Users/huanchu/Documents/alertmanager-data:/alertmanager-data \ prom/alertmanager --config.file=/alertmanager-data/alertmanager.yml
在Prometheus目錄下,修改prometheus.yml配置Alertmanager地址:
# Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: - 192.168.43.121:9093
更新Prometheus配置:
curl -X POST http://localhost:9090/-/reload
訪問 http://127.0.0.1:9093,訪問Alertmanager UI界面,可以看到接收到ErrorRateHigh告警:
郵箱會收到告警信息:
以上是“Prometheus如何整合AlertManager”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。