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主机状态

相关推荐
chanalbert1 小时前
SpringBoot设计基石:约定优于配置与模块化架构
spring boot·spring·spring cloud
风象南3 小时前
Spring Boot 的 3 种动态 Bean 注入技巧
java·spring boot·后端
皮皮林55116 小时前
SpringBoot 加载外部 Jar,实现功能按需扩展!
java·spring boot
考虑考虑19 小时前
feign异常处理
spring boot·后端·spring
gorgor在码农21 小时前
Spring Boot多数据源切换:三种实现方式详解与实战
java·spring boot·后端·mybatis·mybatis plus·多数据源切换
言一木1 天前
【springboot组件开发】三方中间件自定义自动装载(rabbitmq/rocketmq/cmq)
spring boot·java-rocketmq·java-rabbitmq·中组件开发
chanalbert1 天前
Spring Boot诞生背景:从Spring的困境到设计破局
java·spring boot·spring
武昌库里写JAVA1 天前
【微服务】134:SpringCloud
java·开发语言·spring boot·学习·课程设计
cyc&阿灿1 天前
深度解析SpringBoot自动化部署实战:从原理到最佳实践
spring boot·后端·自动化
麦兜*1 天前
Spring Boot 集成国内AI,包含文心一言、通义千问和讯飞星火平台实战教程
java·人工智能·spring boot·后端·spring·ai·文心一言