docker安装prometheus、grafana监控SpringBoot

1. 概述

最新有一个需求, 需要安装一个监控软件,对SpringBoot程序进行监控, 包括机器上cpu, 内存,jvm以及一些日志的统计。

这里需要介绍两款软件: prometheus 和 grafana

  • prometheus: 中文名称, 普罗米修斯,是一款基于时序数据库的开源监控告警系统。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统。
  • grafana: Grafana是一款广受欢迎的数据可视化和监控工具,其能够集成各种数据源。Grafana提供了强大的查询和过滤功能,可以轻松地将数据转换为漂亮、交互式的仪表盘。Grafana支持多种数据源,例如Prometheus、Elasticsearch、InfluxDB等,还能够集成多个数据源进行联合查询。通过Grafana,用户可以深入了解其基础设施和应用程序的运行情况,从而提高其可用性和性能。官网: What's new in Grafana v10.0 | Grafana documentation

这里采用docker compose的方式来安装 prometheus 和 grafana。

2. docker compose 安装prometheus、grafana

docker compose 实际上就是通过编写一个docker compose 文件,然后通过docker compose 命令,可以一次性安装多个软件并进行配置。老的版本使用 docker-compose 命令来进行操作的。在新的版本中,使用docker compose , 相当于成为了docker的一个子命令。这里不具体讲解docker compose的用法。安装好之后就可以进行操作了。

首先我们需要在一个指定的文件夹中,创建一个docker-compose.yml的配置文件,上面就是描述了我们需要安装的软件。下面是案例:

version: "3.7"
services:
node-exporter:image: prom/node-exporter:latestcontainer_name: "node-exporter0"ports:- "9100:9100"restart: always
prometheus:image: prom/prometheus:latestcontainer_name: "prometheus0"restart: alwaysports:- "9090:9090"volumes:- "/opt/monitor_soft//prometheus/conf/prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml "
grafana:image: grafana/grafanacontainer_name: "grafana0"ports:- "3000:3000"restart: always

上面的配置文件中,代表我们要安装三个软件分别是node-exporter, prometheus和grafana。这里我们只用了后面两个,node-exporter是用来采集系统指标的,比如cpu, loa,filesystem,network等,如果需要可以使用,这里我也安装上了,只不过没有使用。

  • image: 代表镜像地址,从docker-hub上可以查询到
  • container_name: 容器名称
  • ports: 代表端口号的映射。 前面是宿主机的,后面是容器的
  • volumes: 文件的挂载目录。

用过docker的应该都会比较熟悉,就是把docker命令中一些常用配置,写到了docker-compose.yml中。

这里要注意,prometheus里的挂载目录很重要,其中挂载了一个配置文件prometheus.yml,后面需要使用这个配置文件,来配置监控的任务。

编写好这个文件之后,我们进入到这一层级的目录: 通过 docker compose up -d 的命令来启动。-d是代表后台运行,后台运行时看不到日志的。 所以我们可以先不加 -d ,看看日志有没有报错。 如果没有报错, 使用docker ps 查看容器的启动情况。 docker compose down 的方式,来停止这些服务。 没问题之后,再把 -d 加上后台启动。

3. 配置SpringBoot

由于我们需要监控SpringBoot项目, 所以我们的SpringBoot要打开相应的监控接口,prometheus会定时的调用接口,来获取相应的指标,并在grafana大屏上进行展示。这也被称为SpringBoot的端点(endPoints) 这里端点默认是关闭的,所以我们要进行打开。步骤如下.

  1. 引入依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
  1. 添加配置

在配置文件中打开prometheus 端点。

management:endpoints:web:exposure:include: prometheusmetrics:tags:application: ${spring.application.name}

上面的include: 后面的值 也可以配置成* ,代表打开所有端点。但是不是很建议。漏洞扫描的时候,有可能被扫描的。 开的越多,风险越大。management为一级配置。

改好之后,重新打包,发布皆可。 我们可以通过http://ip:port/actuator/prometheus 来查看是否配置成功。

3. Prometheus配置监控

SpringBoot的服务配置好了之后,我们需要给Prometheus来配置相应的任务,让他来定时抓取相应的指标数据,然后提供给grafana进行展示。 这个时候,我们就需要修改prometheus的配置文件了。就是我们之前在Docker中映射出来的文件。 prometheus.yml

scrape_configs:- job_name: prometheus-springBootmetrics_path: /actuator/prometheusstatic_configs:- targets: ['ip:port']- job_name: prometheus-springBoot2metrics_path: /actuator/prometheusstatic_configs:- targets: ['ip:port']

上面就是一个简单的案例, 里面的ip和port 需要替换成真实的地址和端口。配置好了之后,重新启动prometheus. 这里面还可以配置其他信息, 不配置就是用的默认。具体配置大家可以参考一下官网。

4. grafana配置Prometheus

现在指标的数据,已经到了Prometheus,但是还需要在grafana上进行展示,所以需要配置一下grafana. 登录: ip:3000 端口号是在docker compose里配置好的。打开页面后,需要登录,默认账号是admin/admin 登录以后,会提示我们修改密码,尽量修改一下,否则很容器被其他人拿到。

首先我们配置一个数据源。

然后选择Prometheus:

然后要求我们填写Prometheus的相关配置,主要是ip和端口。可以起个自己喜欢的名字。

其他的都可以不用填。

点击最下面的 按钮, 看看是否连接成功,成功之后,就会显示添加成功。

然后添加一个面板:

面板,就是展示的一些指标。 本身grafana中提供了很多可以直接使用的模板,我们可以用现成的。

我们点击上面的加号:

填写 12900 就是已经预置好的springBoot 监控模板。点击import引入即可。

然后在dashboard中就会有一个springBoot APM Dashboard 点击就能进入面板。

面板中就会展示相关的信息,大功告成!

好了,关于本篇文章的内容,就介绍到这里了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel 将行和列转置的两种方法

方法一&#xff1a; 方法二&#xff1a;使用transpose公式

Unity数据持久化 之 文件操作(增删查改)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 这里需要弄清几个概念&#xff1a; File&#xff1a;提供文件操作的静态方法&#xff0c;是管理的 Windows.File -…

AI驱动测试管理工具会有哪些发展前景呢?

在软件测试领域&#xff0c;人工智能&#xff08;AI&#xff09;的出现犹如一场技术革命&#xff0c;改变了传统的测试管理方式。随着AI技术的迅速发展&#xff0c;它将如何进一步提升测试管理的效率与准确性&#xff1f;未来的AI驱动测试管理工具又会带来哪些令人期待的创新呢…

Postman环境变量:简化API测试的利器

引言 在当今快速发展的互联网时代&#xff0c;API&#xff08;应用程序接口&#xff09;的重要性不言而喻。无论是内部系统间的通信还是对外服务的提供&#xff0c;API都扮演着至关重要的角色。然而&#xff0c;在API的开发与测试过程中&#xff0c;经常需要处理各种各样的配置…

数学建模强化宝典(10)多元线性回归模型

一、介绍 多元线性回归模型&#xff08;Multiple Linear Regression Model&#xff09;是一种用于分析多个自变量&#xff08;解释变量、预测变量&#xff09;与单个因变量&#xff08;响应变量、被预测变量&#xff09;之间线性关系的统计模型。这种模型假设因变量的变化可以通…

ARM下汇编语言编程

一、ARM汇编语言程序格式 ARM汇编语言是以段(section)为单位来组织源文件的。段是相对独立的、具有特定名称的、不可分割的指令或者数据序列。 段又可以分为代码段和数据段&#xff0c;代码段存放执行代码&#xff0c;数据段存放代码运行时需要用到的数据。一个ARM源程序至少需…

4.1 数据分析-excel 基本操作

第四节&#xff1a;数据分析-excel 基本操作 课程目标 学会excel 基本操作 课程内容 数据伪造 产生一份招聘数据 import pandas as pd from faker import Faker import random import numpy as np# 创建一个Faker实例&#xff0c;用于生成假数据&#xff0c;指定中文本地…

CSS3 文本效果(text-shadow,box-shadow,white-space等)文本溢出隐藏并且显示省略号

一 text-shadow text-shadow 属性是 CSS3 中用于为文本添加阴影效果的工具。它可以增强文本的可读性和视觉吸引力&#xff0c;提供丰富的视觉效果 1 语法 text-shadow: offset-x offset-y blur-radius color;offset-x&#xff1a;阴影相对于文本的水平偏移量。可以是正值&am…

专用于理解游戏场景的开源大模型-VideoGameBunny

大模型在游戏开发领域扮演了重要角色&#xff0c;从AI机器人生成到场景搭建覆盖各个领域。但在游戏场景理解、图像识别、内容描述方面很差。 为了解决这些难题&#xff0c;加拿大阿尔伯塔的研究人员专门开源了一款针对游戏领域的大模型VideoGameBunny&#xff08;以下简称“VG…

集成电路学习:什么是ISP系统编程

一、ISP&#xff1a;系统编程 ISP&#xff08;In-System Programming&#xff09;即系统编程&#xff0c;是一种在系统内部进行的编程方法&#xff0c;主要用于对闪存&#xff08;FLASH&#xff09;、EEPROM等非易失性存储器的编程。ISP编程提供了巨大的灵活性&#xff0c;允许…

网络编程 0903作业

作业 1、将TCP的CS模型再敲一遍 tcpserver.c #include <myhead.h> #define SERPORT 1111 #define SERIP "192.168.58.128" #define BACKLOG 40 int main(int argc, const char *argv[]) {int oldfd socket(AF_INET,SOCK_STREAM,0);//1、产生一个原始套接字…

台球助教预约系统小程序源码开发

引言 随着移动互联网的普及和技术的进步&#xff0c;小程序因其轻量级、便捷性以及良好的用户体验成为了连接线上与线下的重要桥梁。对于台球俱乐部而言&#xff0c;一个高效的小程序不仅可以帮助提高服务质量&#xff0c;还能增强用户粘性&#xff0c;提升品牌形象。本文将探讨…

yolov8目标检测pyside6可视化图形界面+检测源码ui文件——用于计数统计

项目结构 YOLOv8模型加载&#xff1a;加载预训练的YOLOv8模型。PySide6 GUI&#xff1a;设计图形用户界面&#xff0c;用于显示检测结果和控制选项。摄像头/视频输入&#xff1a;从摄像头或视频文件读取图像帧。目标检测&#xff1a;使用YOLOv8模型对输入图像进行实时目标检测…

自动生成对话视频!如何使用Captions的AI视频生成与编辑API工具?

Captions公司最近发布了一套AI驱动的视频生成和编辑API工具&#xff0c;为创作者和开发者提供了一个强大的视频创作生态系统。这个系统包含AI Creator、AI Twin、AI Edit、和AI Translate四大核心功能&#xff0c;每个工具都针对不同的创作需求进行优化。下面我们就一起来详细测…

超越卷积滤波器,HyCoT利用Transformer捕捉高光谱图像的全局依赖性 !

近年来&#xff0c;基于学习的高光谱图像&#xff08;HSI&#xff09;压缩模型的开发引起了大量关注。现有的模型主要使用卷积滤波器&#xff0c;仅捕捉局部依赖性。 此外&#xff0c;它们通常会带来高昂的训练成本&#xff0c;并具有较大的计算复杂性。 为了解决这些问题&…

重新修改 Qt 项目的 Kit 配置

要重新修改 Qt 项目的 Kit 配置&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 打开 Qt Creator 首先&#xff0c;启动 Qt Creator&#xff0c;确保你的项目已经打开。 2. 进入项目设置 在 Qt Creator 中&#xff0c;点击菜单栏的 “Projects” 标签&#xff08;通…

Android - Windows平台下Android Studio使用系统的代理

这应该是第一篇Android的博文吧。以后应该会陆续更新的。记录学习Android的点点滴滴。 之前也看过&#xff0c;不过看完书就忘了&#xff0c;现在重拾Android&#xff0c;记录学习历程。 为何要用代理 因为更新gradle太慢了。 如何使用系统的代理 先找到系统代理的ip和端口。…

OceanMind海睿思参加2024数博会“数据要素赋能生态”活动,获两项数据要素优秀产品认证

近日&#xff0c;2024数博会“数据要素赋能生态”交流活动在贵阳国际生态会议中心成功举办&#xff0c;中新赛克海睿思作为国内数据要素产业优秀服务商代表受邀参加并荣获两项数据要素优秀产品认证。 作为2024数博会的重要组成部分&#xff0c;本次交流活动由北京赛迪出版传媒有…

通配符证书的申请及配置教程

在当今高度互联的世界里&#xff0c;网站和应用程序需要确保其数据传输的安全性&#xff0c;以保护用户的隐私和敏感信息不被窃取。为此&#xff0c;HTTPS协议成为了标准配置&#xff0c;而SSL/TLS证书则是实现这一安全协议的重要组成部分。特别地&#xff0c;对于那些运营着多…

【Linux】CodeServer:云IDE部署

Code-server 是一个开源项目&#xff0c;它允许你在任何地方通过浏览器访问 Visual Studio Code&#xff08;VS Code&#xff09;编辑器。这意味着你可以在远程服务器或云端运行 VS Code&#xff0c;并通过浏览器进行编码、调试和开发&#xff0c;而不需要在本地安装 VS Code。…