Prometheus+Grafana搭建运维平台,通知自定义java服务 实现Jenkins自动构建+飞书告警

本文介绍了如何利用Prometheus和Grafana搭建运维平台,通过监控Java应用内存情况,结合飞书告警功能,当服务挂掉时自动触发Jenkins构建,并演示了如何配置交换区以缓解内存压力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

今年7月份,公司生产项目有个微服务挂掉了,排查了好一会,最终定位到是因为操作系统的OOM killer杀掉了这个微服务,该服务占用大量的内存,关于OOM killer可以参考下面这篇文章,这里就不多做介绍OOM killer
在这里插入图片描述
可以看到在今年7月22号,操作系统触发了OOM killer机制,杀掉了pid=28469的java进程,往上看日志发现上一次是在本年的一月份,问了下之前的同事 发现今年一月份确实有天早上来的时候服务用不了。
本来我想调整JVM参数+优化下代码 彻底解决这个服务内存占用的问题,折腾了两三天后 还是放弃了,用阿里的arthas去分析jvm的内存,并且导出了dump文件,在本地分析,但还是定位不到具体的业务代码的位置,不像定位多线程死锁那样能定位到具体代码位置,而且调整jvm参数 还得一点点的微调 去试,所以最终决定放弃,想了个折中的方法,不管什么原因导致的服务挂掉,直接重启并飞书通知,所以最终主角Prometheus+Grafana登场了。

插个题外话,我们线上的服务器的交换区之前一直没有配置,默认为0,后面我增加了交换区的空间,也能在一定程度上缓和内存占用的压力,虽然在一定程度上牺牲了性能,不过我们的业务系统可以说是一个纯业务系统 对性能的要求也不大哈哈,所以这里可以调整交换区。

介绍

Prometheus是目前比较主流的开源监控平台,可以搭配Grafana实现监控+运维的效果。
官网链接: Prometheus Grafana

本文使用的版本分别是 Pometheus2.37.8和Grafana 9.5.7-1,其他版本可能在配置和web界面上会有一些细微的差别,请知晓!

大致原理其实也不难,通过prometheus的各种exporter去采集各种运维监控指标,然后prometheus server定期抓取数据,再根据设立的PromQL告警规则 判断是否有告警事件发生,有的话推送告警事件到 Alertmanager中,再由alertmanager通知配置的reveiver,这里receiver可以是 邮箱、webhook等,自行配置,本人采用的是飞书机器人通知,把飞书机器人的webhook url配置进去就好了。
Prometheus原理

这里我是在Grafana的web页面中配置的告警规则和通知规则,其实也可以手动配置alertmanager配置文件,然后在prometheus.yml中将这些配置文件配置进去,这种方式可以自行搜索配置即可。

飞书机器人webhook获取

在飞书中创建群组
创建群组
然后配置群组的机器人,并获取机器人的webhook url
获取机器人webhook url

通过url触发Jenkins自动构建任务

触发Jenkins自动构建Url配置

调整交换区

如果系统没有交换区,可以创建一个交换区文件来代替,交换区文件将在磁盘上分配一块空间用作虚拟内存
1、创建交换区文件:
sudo fallocate -l 4G /path/to/swapfile

注意上面的命令不支持xfs的文件系统,如果挂在卷的文件系统是xfs的话,使用下面的

dd if=/dev/zero of=/swapfile bs=1M count=10240

• 交换区的大小通常被建议设置为物理内存大小的两倍,但也可以根据具体需求进行调整。
• 交换区不应过大,因为过度使用交换区可能导致性能下降。

2、设置交换区文件的权限
sudo chmod 600 /swapfile

600 只有文件所有者具有读和写的权限

3、将文件转换为交换区
sudo mkswap /swapfile

4、启用交换区
sudo swapon /swapfile

5、永久设置交换区大小,防止系统重启后变更
vi /etc/fstab
在末尾加上
/swapfile swap swap defaults 0 0

6、检查交换区设置是否生效

sudo swapon --show

Prometheus、Grafana、Alertmanager安装包和相关配置文档和常用命令

百度网盘文件链接
提取码 : cnty

自定义服务

Watch-Dog

实现效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值