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

开发 前端
Prometheus 的 Alertmanager 组件是一个专门用于告警的组件,它可以将告警发送到多种通知渠道,包括邮件。Grafana 的 Alert Notification 功能可以让您直接在 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。

责任编辑:姜华 来源: 今日头条
相关推荐

2023-12-27 08:47:41

PrometheusLinux架构

2023-11-16 08:53:05

NumPy库Python

2022-07-29 21:23:54

Grafana微服务

2010-01-08 12:13:09

ibmdwDB2

2015-10-15 14:16:24

2020-07-02 15:32:23

Kubernetes容器架构

2014-07-22 13:09:21

android

2018-04-18 07:01:59

Docker容器虚拟机

2019-01-18 12:39:45

云计算PaaS公有云

2015-11-17 16:11:07

Code Review

2017-03-14 14:04:24

Python机器学习

2023-02-28 22:52:47

2010-05-26 17:35:08

配置Xcode SVN

2018-09-14 17:16:22

云计算软件计算机网络

2022-03-30 08:24:25

操作系统内核开源软件

2022-02-10 10:10:03

数据库表权限表数据库操作

2023-11-01 08:35:56

Python函数

2024-04-10 07:48:41

搜索引擎场景

2011-04-06 15:55:50

开发webOS程序webOS

2017-05-04 08:00:54

点赞
收藏

51CTO技术栈公众号