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

2023年 11月 21日 36.4k 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。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论