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

文章目录

Prometheus+Grafana+AlertManager监控平台搭建

Docker搭建并配置Prometheus

Docker拉取并配置Grafana

Docker安装并配置Node-Exporter

Docker安装并配置cAdvisor

Docker安装并运行Alertmanager

新建SpringBoot项目

为Prometheus提供指标

新建项目,引入依赖

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

新建接口,运行程序

Prometheus配置文件中已添加该项目地址,运行后到Prometheus页面中查看连接情况

成功

推送指标到pushgateway

引入依赖

java 复制代码
<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

java 复制代码
@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

指标已被推送至Pushgateway

开始监控

Grafana连接Prometheus数据源

点击Add your first data source

选择Prometheus

Prometheus server URL中输入IP地址及端口号

注意:此处IP地址为Prometheus在Docker容器内部的IP地址

查看容器内ID方法:

linux 复制代码
docker exec -it 容器ID sh
linux 复制代码
ifconfig

退出:Ctrl+D

点击底部Save&Test

导入Grafana模板

填入模板号,点击load

选择之前设置的Prometheus作为数据源即可

监控SpringBoot项目

邮件告警通知

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


开启后获得授权码,填到alertmanager配置文件相应位置中,并补全其他必要信息,重启alertmanager服务。

停止SpringBoot项目,等待一段时间。

进入Prometheus的Alerts页面,可以看到有告警信息,提示所监控机器不可用,状态已经为Firing,这表示已经将告警发送至Alertmanager。

进入AlertManager界面,可以看到告警信息。

AlertManager会根据配置好的规则将消息发送至邮箱。


操作完成


同系列文章

Linux安装Docker

Docker搭建并配置Prometheus

Docker拉取并配置Grafana

Docker安装并配置Node-Exporter

Docker安装并配置cAdvisor

Docker安装并运行Alertmanager

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

相关推荐
鱼鳞_17 分钟前
苍穹外卖-Day01(开发环境搭建)
java·spring boot·spring·maven
学不思则罔20 分钟前
SpringBoot启动失败排查指南
spring boot·后端·部署
夕除39 分钟前
spring boot 5
数据库·spring boot·后端
yoyo_zzm1 小时前
ThinkPHP1.X核心特性解析
数据库·spring boot·nginx
hexu_blog1 小时前
前端vue后端java+springboot如何实现pdf,word,excel之间的相互转换
java·前端·vue.js·spring boot·文档转换
倒流时光三十年2 小时前
第9篇 消息不丢:三端协同防丢失方案
spring boot·kafka
Devin~Y2 小时前
大厂Java面试实录:Spring Boot/WebFlux、JVM调优、Redis/Kafka、Spring Cloud 与 RAG/Agent 追问
java·jvm·spring boot·maven·mybatis·jpa·spring webflux
一轮弯弯的明月2 小时前
Spring AOP编程
java·开发语言·spring boot·笔记·spring aop·学习心得
Boop_wu2 小时前
[Java项目] Spring Boot + WebSocket 实现网页在线聊天室|完整项目架构与实战讲解
spring boot·websocket·java-ee·mybatis
蜀道山老天师2 小时前
Prometheus监控Hadoop集群(实操完整版,含避坑指南)
大数据·linux·运维·hadoop·云原生·prometheus