Prometheus+Grafana新手友好教程:从零开始搭建轻松掌握强大的警报系统

一、预警方案

Prometheus+Grafana 实现邮件报警的方案主要有以下几种:

方案一:使用 Prometheus 的 Alertmanager 组件

Prometheus 的 Alertmanager 组件是一个专门用于告警的组件,它可以将告警发送到多种通知渠道,包括邮件。要使用 Alertmanager 实现邮件报警,需要在 Alertmanager 的配置文件中添加邮件通知配置。以下是邮件通知配置的示例:

vbnet 复制代码
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 的配置文件中添加邮件通知配置。以下是邮件通知配置的示例:

yaml 复制代码
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 的配置文件中添加邮件通知配置。以下是邮件通知配置的示例:

yaml 复制代码
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安装

修改配置文件

bash 复制代码
vim /data/grafana/grafana.ini

复制以下内容

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

bash 复制代码
docker  run -d --name=grafana  -p 3000:3000  \
-v /data/grafana/grafana.ini:/etc/grafana/grafana.ini \
grafana/grafana

基本设置

打开grafana的控制台: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增加

ini 复制代码
[server]
protocol = http
http_port = 3000
domain = 10.9.2.50

然后docker restart grafana

相关推荐
冬天的风滚草1 分钟前
Higress开源版 大规模 MCP Server 部署配置方案
后端
雨落倾城夏未凉2 分钟前
4.信号与槽
后端·qt
考虑考虑1 小时前
JDK9中的dropWhile
java·后端·java ee
martinzh3 小时前
Spring AI 项目介绍
后端
前端付豪3 小时前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
爱学习的小学渣3 小时前
关系型数据库
后端
武子康3 小时前
大数据-33 HBase 整体架构 HMaster HRegion
大数据·后端·hbase
前端付豪3 小时前
19、用 Python + OpenAI 构建一个命令行 AI 问答助手
后端·python
凌览3 小时前
斩获 27k Star,一款开源的网站统计工具
前端·javascript·后端
全栈凯哥3 小时前
02.SpringBoot常用Utils工具类详解
java·spring boot·后端