Prometheus+Grafana新手友好教程:從零開始輕松掌握強(qiáng)大警報(bào)系統(tǒng)
一、預(yù)警方案
Prometheus+Grafana 實(shí)現(xiàn)郵件報(bào)警的方案主要有以下兩種:
方案一:使用 Prometheus 的 Alertmanager 組件
Prometheus 的 Alertmanager 組件是一個專門用于告警的組件,它可以將告警發(fā)送到多種通知渠道,包括郵件。要使用 Alertmanager 實(shí)現(xiàn)郵件報(bào)警,需要在 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 中,可以創(chuàng)建告警規(guī)則,并將告警規(guī)則與 Alertmanager 的郵件通知配置關(guān)聯(lián)起來。
方案二:使用 Grafana 的 Alert Notification
Grafana 的 Alert Notification 功能可以讓您直接在 Grafana 中配置郵件通知。
要使用 Grafana 的 Alert Notification 實(shí)現(xiàn)郵件報(bào)警,需要在 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 中,可以創(chuàng)建告警規(guī)則,并將告警規(guī)則與 Grafana 的郵件通知配置關(guān)聯(lián)起來。
方案三:使用第三方告警組件
除了 Prometheus 和 Grafana 自帶的告警功能外,還可以使用第三方告警組件來實(shí)現(xiàn)郵件報(bào)警。例如,OneAlert 是一個開源的告警組件,它可以將告警發(fā)送到多種通知渠道,包括郵件。要使用 OneAlert 實(shí)現(xiàn)郵件報(bào)警,需要在 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 中,可以創(chuàng)建告警規(guī)則,并將告警規(guī)則與 OneAlert 的郵件通知配置關(guān)聯(lián)起來。
二、搭建預(yù)警
環(huán)境準(zhǔn)備
以下是本文所需的環(huán)境:
- 一臺運(yùn)行 Linux 的服務(wù)器(建議使用 CentOS 或 Ubuntu)
- Docker環(huán)境
- Prometheus
- Node Exporter
Grafana安裝
修改配置文件。
vim /data/grafana/grafana.ini
復(fù)制以下內(nèi)容。
###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
基本設(shè)置
打開grafana的控制臺:http://xx.xx.xx.xx:3000/ 用戶名、密碼:admin/admin。
設(shè)置數(shù)據(jù)源,如果設(shè)置過的可以跳過。
保存就可以了,接下來我們來設(shè)置預(yù)警。
Contact points(創(chuàng)建告警渠道)
進(jìn)入后選擇Contact points->New contact points。
設(shè)置完成后可以試試郵件是否設(shè)置成功,點(diǎn)擊Test。
彈出的窗體點(diǎn)擊。
這樣就說明郵件設(shè)置成功,如果有異常這里也會紅色的提示。
這是收到的測試郵件效果。
沒問題后就保存。
Notification policies(創(chuàng)建告警通道匹配規(guī)則)
Alert rules(配置告警策略)
Folder下拉沒有東西,可以隨便填個名稱:
填寫時會在下拉列表出現(xiàn)Create:的效果。
在這欄。
的最下面會多出一條。
我們選擇一個變量,并設(shè)置它的預(yù)警規(guī)則。
當(dāng)最近的F值(可用內(nèi)存值)高于3時就會預(yù)警。
條件就是上面的G表達(dá)式不用變,下面的時間可以調(diào)整一下,每30秒進(jìn)行一次規(guī)則檢查,如果符合報(bào)警條件,延遲5分鐘進(jìn)行報(bào)警。
Add details for your alert,這里填寫一個信息就可以保存。
等待 30s - 1min之后,觀察是否可以接收到告警。
如果發(fā)現(xiàn)這些按鈕的地址都是localhost想修改的話。
可以vim grafana.ini增加。
[server]
protocol = http
http_port = 3000
domain = 10.9.2.50
然后docker restart grafana。