Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知

文章目录

  • Prometheus+Grafana+AlertManager监控平台搭建
  • 新建SpringBoot项目
    • 为Prometheus提供指标
      • 新建项目,引入依赖
      • 新建接口,运行程序
    • 推送指标到pushgateway
  • 开始监控
    • Grafana连接Prometheus数据源
    • 导入Grafana模板
    • 监控SpringBoot项目
  • 邮件告警通知
  • 同系列文章

Prometheus+Grafana+AlertManager监控平台搭建

Docker搭建并配置Prometheus

Docker拉取并配置Grafana

Docker安装并配置Node-Exporter

Docker安装并配置cAdvisor

Docker安装并运行Alertmanager

新建SpringBoot项目

为Prometheus提供指标

新建项目,引入依赖

<!--用于导出prometheus系统类型的指标数据-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.9.8</version>
</dependency>

新建接口,运行程序

Prometheus配置文件中已添加该项目地址,运行后到Prometheus页面中查看连接情况
在这里插入图片描述

成功

推送指标到pushgateway

引入依赖

<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient</artifactId>
    <version>0.12.0</version>
</dependency>
<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient_pushgateway</artifactId>
    <version>0.12.0</version>
</dependency>

新增push接口,用于推送指标(job=B,instance=A)到Pushgateway

@GetMapping("push")
public void executeBatchJob(){
    try{
        String url = "192.168.251.44:9091";
        CollectorRegistry registry = new CollectorRegistry();
        Gauge guage = Gauge.build("my_custom_metric11", "This is my custom metric.").create();
        guage.set(1.22);
        guage.register(registry);
        PushGateway pg = new PushGateway(url);
        Map<String, String> groupingKey = new HashMap<String, String>();
        groupingKey.put("instance", "A");
        pg.pushAdd(registry, "B", groupingKey);
    } catch (Exception e){
        e.printStackTrace();
    }
}

运行后调用接口,访问Pushgateway
Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第1张图片

指标已被推送至Pushgateway

开始监控

Grafana连接Prometheus数据源

点击Add your first data source
在这里插入图片描述

选择Prometheus
Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第2张图片

Prometheus server URL中输入IP地址及端口号
注意:此处IP地址为Prometheus在Docker容器内部的IP地址
在这里插入图片描述

查看容器内ID方法:

docker exec -it 容器ID sh
ifconfig

Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第3张图片
退出:Ctrl+D

点击底部Save&Test
在这里插入图片描述

导入Grafana模板

Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第4张图片
填入模板号,点击load
在这里插入图片描述
选择之前设置的Prometheus作为数据源即可
Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第5张图片

监控SpringBoot项目

Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第6张图片

邮件告警通知

开启邮箱POP3/SMTP服务(以QQ邮箱为例)

Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第7张图片
在这里插入图片描述

开启后获得授权码,填到alertmanager配置文件相应位置中,并补全其他必要信息,重启alertmanager服务。
停止SpringBoot项目,等待一段时间。
进入Prometheus的Alerts页面,可以看到有告警信息,提示所监控机器不可用,状态已经为Firing,这表示已经将告警发送至Alertmanager。
Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第8张图片

进入AlertManager界面,可以看到告警信息。
Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第9张图片
AlertManager会根据配置好的规则将消息发送至邮箱。

Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第10张图片
Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知_第11张图片

操作完成


同系列文章

Linux安装Docker

Docker搭建并配置Prometheus

Docker拉取并配置Grafana

Docker安装并配置Node-Exporter

Docker安装并配置cAdvisor

Docker安装并运行Alertmanager

Prometheus+Grafana+AlertManager监控Linux主机状态

你可能感兴趣的:(后端,运维,Docker,prometheus,grafana,spring,boot)