Prometheus+Grafana新手友好教程:從零開始輕松掌握強大警報系統
一、預警方案
Prometheus+Grafana 實現郵件報警的方案主要有以下兩種:
方案一:使用 Prometheus 的 Alertmanager 組件
Prometheus 的 Alertmanager 組件是一個專門用于告警的組件,它可以將告警發送到多種通知渠道,包括郵件。要使用 Alertmanager 實現郵件報警,需要在 Alertmanager 的配置文件中添加郵件通知配置。以下是郵件通知配置的示例:
receivers:
- name: "mail"
email_configs:
- to: "user@example.com"
from: "alertmanager@example.com"
server: "smtp.example.com"
port: 25
username: "user"
password: "password"
在 Grafana 中,可以創建告警規則,并將告警規則與 Alertmanager 的郵件通知配置關聯起來。
方案二:使用 Grafana 的 Alert Notification
Grafana 的 Alert Notification 功能可以讓您直接在 Grafana 中配置郵件通知。
要使用 Grafana 的 Alert Notification 實現郵件報警,需要在 Grafana 的配置文件中添加郵件通知配置。以下是郵件通知配置的示例:
alerts:
- name: "CPU usage is too high"
alert_rules:
- alert_rule_id: "1"
notification_channels:
- name: "mail"
email_configs:
- to: "user@example.com"
from: "alertmanager@example.com"
server: "smtp.example.com"
port: 25
username: "user"
password: "password"
在 Grafana 中,可以創建告警規則,并將告警規則與 Grafana 的郵件通知配置關聯起來。
方案三:使用第三方告警組件
除了 Prometheus 和 Grafana 自帶的告警功能外,還可以使用第三方告警組件來實現郵件報警。例如,OneAlert 是一個開源的告警組件,它可以將告警發送到多種通知渠道,包括郵件。要使用 OneAlert 實現郵件報警,需要在 OneAlert 的配置文件中添加郵件通知配置。以下是郵件通知配置的示例:
alerts:
- name: "CPU usage is too high"
alert_rules:
- alert_rule_id: "1"
notification_channels:
- name: "mail"
email_configs:
- to: "user@example.com"
from: "alertmanager@example.com"
server: "smtp.example.com"
port: 25
username: "user"
password: "password"
在 Grafana 中,可以創建告警規則,并將告警規則與 OneAlert 的郵件通知配置關聯起來。
二、搭建預警
環境準備
以下是本文所需的環境:
- 一臺運行 Linux 的服務器(建議使用 CentOS 或 Ubuntu)
- Docker環境
- Prometheus
- Node Exporter
Grafana安裝
修改配置文件。
vim /data/grafana/grafana.ini
復制以下內容。
###SMTP / Emailing ###
[smtp]
enabled = true
host = smtp.exmail.qq.com:465 #這里換成自己的smtp及端口
user = xx.qq.com #這里換成自己的郵箱地址
password = xx #這里換成自己的郵箱密碼
;cert_file =
;key_file =
;skip_verify = false
from_address = xx.qq.com #一般與上面的郵箱地址一致
from_name = Grafana
ehlo_identity =
startTLS_policy =
[emails]
welcome_email_on_sign_up = true
templates_pattern = emails/*.html, emails/*.txt
content_types = text/html
除了注明要改的其它的都可以不變,然后啟動docker。
docker run -d --name=grafana -p 3000:3000 \
-v /data/grafana/grafana.ini:/etc/grafana/grafana.ini \
grafana/grafana
基本設置
打開grafana的控制臺:http://xx.xx.xx.xx:3000/ 用戶名、密碼:admin/admin。
設置數據源,如果設置過的可以跳過。
保存就可以了,接下來我們來設置預警。
Contact points(創建告警渠道)
進入后選擇Contact points->New contact points。
設置完成后可以試試郵件是否設置成功,點擊Test。
彈出的窗體點擊。
這樣就說明郵件設置成功,如果有異常這里也會紅色的提示。
這是收到的測試郵件效果。
沒問題后就保存。
Notification policies(創建告警通道匹配規則)
Alert rules(配置告警策略)
Folder下拉沒有東西,可以隨便填個名稱:
填寫時會在下拉列表出現Create:的效果。
在這欄。
的最下面會多出一條。
我們選擇一個變量,并設置它的預警規則。
當最近的F值(可用內存值)高于3時就會預警。
條件就是上面的G表達式不用變,下面的時間可以調整一下,每30秒進行一次規則檢查,如果符合報警條件,延遲5分鐘進行報警。
Add details for your alert,這里填寫一個信息就可以保存。
等待 30s - 1min之后,觀察是否可以接收到告警。
如果發現這些按鈕的地址都是localhost想修改的話。
可以vim grafana.ini增加。
[server]
protocol = http
http_port = 3000
domain = 10.9.2.50
然后docker restart grafana。