Prometheus Grafana新手友好教程:从零开始轻松掌握强大警报系统
创始人
2025-07-07 00:31:27
0

一、预警方案

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。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...