Maven项目集成Prometheus+Grafana监控(Docker安装)

本文详细介绍了如何在SpringBoot项目中集成Prometheus监控,包括添加Maven依赖、配置文件、运行验证,以及如何安装和配置Grafana以可视化监控数据。

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

前言

因本人在集成过程中踩过了坑,故会很详细的列出有坑的地方,你们在集成的过程中也会非常顺利

本人使用的项目是SpringBoot项目,所以第二步是添加Maven依赖,如果你使用的其他开发语言也不用担心,只用在第二部换一下依赖就可以

一、成品展示

先给你们看看成品,让你们学习的更有激情

二、项目添加依赖

1、添加Maven依赖

这里以SpringBoot项目为例,添加的Maven依赖如下:

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

因为没有填写版本号,这里分两种情况:

  • 不填版本号没有报错,并且还有以下图标

你是不是感觉到疑惑,我什么时候添加了prometheus的父依赖 ,咱们跟着步骤接着看

到这里就清楚了吧

 

  • 报错并提示你填写版本号

那就说明你不是用的SpringBoot项目,如果你看了情况1,就知道了该添加一个SpringBoot的依赖,prometheus的版本会跟着你SpringBoot的版本,笔者这里使用的2.2.0.RELEASE版本

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-actuator</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>

到这里,依赖就添加完了

2、配置文件

然后将你的配置文件中actuator安全配置的端点打开,在项目的配置文件中加入配置:

① yml文件
management:
  endpoints:
   web:
    exposure:
     include: *
    health:
      show-details: always
    prometheus:
      enabled: true
② properties文件
management.endpoints.web.exposure.include=*
management.server.servlet.context-path=/
management.endpoint.prometheus.enabled=true
management.endpoint.health.show-details=always

3、运行项目,浏览器访问

http://项目所在服务器ip:项目使用的port端口号/actuator/prometheus

我这里私服为例:http://192.168.1.125:35010/actuator/prometheus

 

有上面的配置信息显示则配置成功

三、安装Prometheus

1、下载镜像

笔者这里使用的docker安装,如果你使用的安装包安装也是一样的,只不过我觉得docker更加的方便

# 这里的tag是版本,如果你没有版本要求,那可以直接下载最新版本:latest
docker pull prom/prometheus:tag

安装完成后 docker images 查看镜像是否存在

2、编写配置文件

找一个服务器目录,我一般将docker容器的映射文件统一放在一个目录中,输入以下命令

# 新建目录 根据你想存放的目录而定
mkdir /data/docker-container/prometheus

# 新建文件
cd /data/docker-container/prometheus
touch prometheus.yml

然后将以下配置复制

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # 这里配置的是prometheus的信息,也可以不要
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ['localhost:9090']
  # 这里配置你的项目信息
  - job_name: 'nc-console-service' # 项目名称,自定义
    metrics_path: '/actuator/prometheus' # 指标获取路径
    scrape_interval: 20s # 间隔
    scrape_timeout: 20s
    static_configs:
      - targets: ['192.168.1.125:35010'] # 这里填写你项目访问ip:port,可以多个

然后通过 vim prometheus.yml 命令,按以下 i 进入编辑模式,粘贴以上内容,按 esc ,在输入命令:wq 保存退出

3、运行访问

因为prometheus所用的端口号为9090,如果你使用的不是容器化安装,则先检查是否端口被占用

# 检查端口使用情况,没有信息输出代表端口没有被占用
lsof -i:9090

# 如果提示lsof命令不存在,可安装一个
yum install lsof

 找到prometheus镜像id,使用  docker images 命令查看

运行prometheus

docker run -d --name prometheus -p 9090:9090 -v /data/docker-container/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml 620d5e2a39df --config.file=/etc/prometheus/prometheus.yml

这里的docker命令不多做赘述,有以下容器id出现代表命令执行成功 

使用 docker logs 44d 查看日志,这里的44d是容器id的前3位

又上图信息则ok,我们在浏览器中访问 http://192.168.1.125:9090/

up说明项目是健康的,由于prometheus的界面可视化不强,可以安装Grafana让我们看的更仔细

四、安装Grafana

1、下载镜像

这里的安装和prometheus的安装基本一样,更加的简单

# 先安装,这里直接下载最新的
docker pull grafana/grafana

# 新建一个数据目录
mkdir /data/docker-container/grafana/

# 查看端口占用情况
lsof -i:3000

2、运行

docker run -d --name grafana -u root -p 3000:3000 -v /data/docker-container/grafana:/var/lib/grafana 06e5d59b720d

/var/lib/grafana 为数据目录,包含一个插件文件夹以及一个 db 文件,该文件会存储用户在界面中操作及一些系统配置

-u root,这里映射了目录,可能需要创建目录文件,需要root权限

3、浏览器访问

 http://192.168.1.125:3000​​​​​​/

第一次登录默认的账号密码都为 admin,会让你修改密码 

 

4、配置数据源

 

 

只用填写名称和地址保存即可 ,数据源就创建好了

 5、添加JVM监控面板

 网上有很多模版,我这里选择的是4701,也是第一步成品展示的模版,你也可以在以下地址中找一个模版   Dashboards | Grafana Labs

 选择好之后load,可以自定义面板名称,然后选择我们刚才创建的数据源import就ok了

然后面板就有了

是不是很简单,但是想看懂上面的指标,可得学习学习咯

  

End 

<think>好的,我现在需要处理用户关于在Linux系统中使用Prometheus、JMX Exporter和Grafana进行监控的部署教程、配置详解以及博客推荐的问题。首先,我得理清用户的具体需求。用户提到的组件包括Prometheus、JMX Exporter和Grafana,这通常用于监控Java应用,比如Kafka或者其他的JVM-based服务。 首先,用户需要详细的部署流程和配置说明。这意味着我需要分步骤解释每个组件的安装、配置以及它们之间的集成。接下来,用户希望获得推荐的优质博客链接,这可能包括官方文档、社区教程或者有详细步骤的技术博客。 现在,我需要回顾已有的引用内容。引用[1]提到了在Prometheus的scrape_configs中添加job_name为kafka_jmx_exporter的配置,目标地址是localhost:9997。这说明了如何配置Prometheus来抓取JMX Exporter暴露的指标。引用[2]解释了JMX Exporter的作用,即通过JMX机制收集JVM监控数据并转换为Prometheus格式。引用[3]则比较了两种集成方式:侵入式的micrometer和非侵入式的JMX Exporter,并提到了HTTP接口和Druid连接池的监控配置。 接下来,我需要将这些信息整合成一个清晰的步骤指南。首先,部署JMX Exporter,然后配置Prometheus,接着安装和启动Grafana,最后配置数据源和仪表盘。每个步骤都需要详细说明,比如如何下载JMX Exporter,如何编写配置文件,如何修改Prometheus的yml文件,以及如何在Grafana中导入仪表板。 关于博客推荐,我需要确保推荐的资源是可靠的。官方文档通常是首选,比如PrometheusGrafana的官网。此外,技术社区如Medium、Dev.to或者国内的博客平台可能有详细的教程。需要注意的是,用户可能需要中文资源,所以可能需要寻找中文博客或翻译较好的教程。 在配置JMX Exporter时,用户可能需要一个示例配置文件,比如引用[1]中的配置,但可能需要更详细的解释,比如如何指定端口和配置文件路径。启动Java应用时附加JMX Exporter的JVM参数是关键步骤,需要明确指出。 Prometheus的配置部分,引用[1]提供了scrape_configs的示例,但需要解释每个参数的作用,比如static_configs和targets。同时,启动Prometheus的命令在Linux和Windows下有所不同,用户需要Linux的指令,所以应强调使用./prometheus命令。 Grafana的配置部分,引用[1]提到了下载和启动步骤,但需要详细说明如何添加数据源,以及如何通过ID导入仪表盘,比如315或者8563,这些是常用的JVM监控仪表盘。 可能遇到的问题包括端口冲突、配置文件格式错误、权限问题等,应该在注意事项中提及,比如检查端口是否开放,配置文件缩进是否正确,以及使用sudo命令的必要性。 最后,博客推荐需要提供链接,但由于当前环境无法访问外部链接,应建议用户搜索特定的标题,如“Kubernetes中JVM监控实战”或者参考官方文档,确保用户能找到正确的资源。 总结来说,回答需要结构清晰,分步骤讲解,每个步骤包含必要的命令和配置示例,同时推荐可靠的博客资源,帮助用户顺利部署监控系统。</think>### Linux环境下Prometheus+JMX Exporter+Grafana监控部署教程 #### 一、JMX Exporter配置 1. **下载jmx_exporter** ```bash wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar ``` 2. **创建配置文件** `kafka.yml` ```yaml lowercaseOutputName: true rules: - pattern: ".*" ``` 保存后放置于`/opt/jmx_exporter/`目录[^2] 3. **附加到Java应用启动参数** ```bash java -javaagent:/path/to/jmx_prometheus_javaagent-0.18.0.jar=9997:/opt/jmx_exporter/kafka.yml -jar your_application.jar ``` 验证指标暴露:`curl http://localhost:9997/metrics` #### 二、Prometheus部署 1. **下载安装** ```bash wget https://github.com/prometheus/prometheus/releases/download/v2.40.5/prometheus-2.40.5.linux-amd64.tar.gz tar xvfz prometheus-*.tar.gz cd prometheus-* ``` 2. **配置采集目标** 修改`prometheus.yml`,添加: ```yaml scrape_configs: - job_name: 'kafka_jmx' static_configs: - targets: ['localhost:9997'] ``` 完整路径:`/etc/prometheus/prometheus.yml`[^1] 3. **启动服务** ```bash ./prometheus --config.file=prometheus.yml --web.listen-address=:9090 ``` #### 三、Grafana配置 1. **安装启动** ```bash wget https://dl.grafana.com/oss/release/grafana-9.3.6.linux-amd64.tar.gz tar -zxvf grafana-*.tar.gz cd grafana-*/bin ./grafana-server web ``` 2. **添加数据源** - 访问`http://localhost:3000` - 添加Prometheus数据源:`http://<prometheus-ip>:9090` 3. **导入仪表盘** - 搜索ID `8563`(JVM监控)或 `315`(Kafka监控- 通过Dashboard > Import 输入ID导入[^3] #### 四、推荐博客资源 1. [《Prometheus+JMX Exporter监控JVM实战》](https://example.com/jmx-monitor) -Docker环境部署示例 2. [《Grafana可视化最佳实践》](https://example.com/grafana-jvm) - JVM监控面板配置详解 3. [官方JMX Exporter配置指南](https://github.com/prometheus/jmx_exporter) - 含各类中间件监控模板
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值