prometheus jmx exporter + prometheus + grafana

Prometheus+JmxExporter 监控告警最佳实践 概述 当你的 Java 应用运行起来之后,如果对其进行监控呢?Prometheus 社区开发了 JMX Exporter 来导出 JVM 的监控指标和自定义指标(自定义MBean),以便使用 Prometheus 来采集监控数据。本文将介绍如何利用 Prometheus 与 JMX Exporter 来监控你 Java 应用,并使用Grafana和Alertmanager对指标进行监控和告警。​ 动手之前,容我先简单介绍一下Prometheus和JmxExporter Prometheus简介 Prom. 阅读详情

一、Java 应用接入 prometheus jmx exporter

1.1 下载 prometheus jmx exporter

下载地址:https://github.com/prometheus/jmx_exporter/releases

1.2 jar 应用接入 prometheus jmx exporter

java -javaagent:jmx_prometheus_javaagent-0.18.0.jar=12345:config.yaml -jar yourJar.jar
  • mx_prometheus_javaagent-0.18.0.jar : 是Exporter包所在路径;
  • 12345 :Exporter 暴露HTTP服务端口;
  • config.yaml :Exporter 配置文件所在路径

1.2.1 一个最小化的 config.yaml:

hostPort: localhost:9999
rules:
- pattern: ".*"

常用yaml示例:https://github.com/prometheus/jmx_exporter/tree/main/example_configs

1.2.2 查看监控数据

访问 http://localhost:12345/metrics 查看监控数据
image.png

1.3 Tomcat 接入 prometheus jmx exporter

1.3.1 prometheus jmx export 准备

在 {CATALINA_HOME} 下新建 prometheus-exporter 目录,将 jmx_prometheus_javaagent-0.18.0.jar 和 tomcat.yml 放到此目录下
image.png

1.3.2 {CATALINA_HOME}/bin/catalina.sh 中添加 JVM 参数

PROMETHEUS_JMX_EXPORTER_OPTS="-javaagent:../prometheus-exporter/jmx_prometheus_javaagent-0.18.0.jar=12345:../prometheus-exporter/tomcat.yml"
JAVA_OPTS="$JAVA_OPTS $PROMETHEUS_JMX_EXPORTER_OPTS"

image.png

1.3.3 启动Tomcat

cd ${CATALINA_HOME}
./startup.sh

1.3.4 访问prometheus jmx exporter HTTP服务获取监控数据

http://ip:12345/metrics
image.png

二、prometheus 部署

2.1 docker 启动 prometheus

#!/bin/bash

run_id=`docker ps | grep "prometheus" |  awk '{print $1}'`
run_name=`docker ps | grep "prometheus" |  awk '{print $12}'`
if [ -n "$run_id" ]
then
    echo "docker $run_name is running, exit shell"
    exit 0
fi

c_id=`docker ps -a | grep "prometheus" |  awk '{print $1}'`
if [ -n "$c_id" ]
then
    echo "restarting prometheus container ..., port: 9090"
    docker start $c_id
    echo "restarting prometheus container ..., port: 9090"
else
    echo "starting prometheus container ..., port: 9090"
    docker run --name prometheus \
    -d \
    -p 9090:9090 \
    -v /Users/yangdejun/Documents/apps/docker-apps/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus
    echo "startted prometheus container ..., port: 9090"
fi

2.2 访问prometheus

http://localhost:9090
image.png

2.3 修改 prometheus.yml 配置扫描 prometheus jmx exporter

# my global config
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).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# 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:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  # 添加扫描目标
  - job_name: "Tomcat"
    static_configs:
      - targets: ["192.168.1.10:12345"]

2.4 重启 prometheus 和 Java 应用

docker restart prometheus

重启Java应用后访问prometheus即可看到应用已经接入到prometheus
image.png

三、Grafana 部署

3.1 docker 启动 Grafana

#!/bin/bash

run_id=`docker ps | grep "grafana" |  awk '{print $1}'`
run_name=`docker ps | grep "grafana" |  awk '{print $12}'`
if [ -n "$run_id" ]
then
    echo "docker $run_name is running, exit shell"
    exit 0
fi

c_id=`docker ps -a | grep "grafana" |  awk '{print $1}'`
if [ -n "$c_id" ]
then
    echo "restarting grafana container ..., port: 3000"
    docker start $c_id
    echo "restarting grafana container ..., port: 3000"
else
    echo "starting grafana container ..., port: 3000"
    docker run --name grafana \
    -d \
    -p 3000:3000 \
    grafana/grafana
    echo "startted grafana container ..., port: 3000"
fi

3.2 访问Grafana

http://localhost:3000
默认用户:admin
默认密码:admin
image.png

3.3 添加数据源

Configuration -> Data sources -> Add data source 选择 Prometheus
image.png
image.png
image.png
image.png
image.png

3.4 添加dashboard

Dashboards -> Import
image.png
image.png
image.png
image.png

3.5 官方 Dashboard 模板

https://grafana.com/grafana/dashboards/
image.png
image.png

jmx_exporter监控java应用(tomcat/jar) 一、整合jmx_exporter+tomcat 1、下载jmx_exporter: 下载地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar 2、配置jmx_exporter: jmx_exporter config文件示例地址:https://github.com/prometheus/jmx_exporter/t 阅读详情

相关推荐

hadoop exporter配置Prometheus & Grafana

实践 hadoop exporter prometheus grafana配置

longxibo的博客 2306

prometheus整合JMX_exporter

prometheus整合jmx

u013218342的博客 1920

grafana+promethus+jmx_export监控jvm

使用一个小demo模拟jvm进程,并开启jmx端口8077 下载并启动jmx_export组件 下载https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar本文使用0.3.1版本,因为grafana里现成的面板模板很多都是基于老版本的,新版本修改了标签名称会无法在grafana里显示出来。两种启动方式,两种jar...

shy_snow的专栏 1959

JMX的快速入门与使用+使用JMX Exporter监控+集成OpenTelemetry

文章目录JMX应用场景JMX使用定义一个MXBean实现该MXBean将MXBean注册到JMX中去使用Jconsole监控JMX官方文档源码地址 JMX应用场景 用来监控JVM内各种对象的信息。一个经典场景就是,某一天我们忽然被前方告知,业务大面积瘫痪,这时经过排查,发现由于bug导致数据库连接使用完了没有被释放,导致后续业务没有可用的数据库连接而超时报错。 假如我们使用JMX来监控我们系统中数据库连接池的信息,当数据库连接池出现短时间内连接被大量使用,这个时候可以搭配我们的监控报警系统(如Nagios)

本博客已迁移到 https://jacksparrow414.com 1万+

【云原生】prometheus结合jmx exporter 的http server模式采集tomcat监控实战

【云原生】prometheus结合jmx exporter 的http server模式采集tomcat监控实战

低调,谦虚,自律,反思,成长,保持热爱,奔赴梦想 5681

jmx_prometheus_javaagent-0.12.0.jar

代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar

【集群监控】JMX exporter+Prometheus+Grafana监控Hadoop集群

下载jmx_exporter的jar包 https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar 创建配置文件namenode.yaml(datanode.yaml)放在任意位置,内容为你想要的metrics 参考配...

weixin_30776273的博客 2304

GMSL2摄像头接入避坑指南:从FMC子卡配置到V4L2调用的完整流程(附Ubuntu20.04实测)

本文详细解析了GMSL2摄像头接入的全流程,从FMC子卡配置到V4L2调用的完整指南。基于XC7Z100平台实测经验,提供了硬件选型、带宽优化、Linux驱动配置及高分辨率采集的实战技巧,帮助开发者规避常见问题,提升系统稳定性与性能。

weixin_33737774的博客 418

hadoop 集群监测_【集群监控】JMX exporter+Prometheus+Grafana监控Hadoop集群

下载jmx_exporter的jar包创建配置文件namenode.yaml(datanode.yaml)放在任意位置,内容为你想要的metrics参考配置:---startDelaySeconds:0hostPort: master:1234 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口(可设置为未被占用的端口)#jmxUrl: service:jmx...

weixin_39851977的博客 1305

Redis简介和项目应用

内存优先架构简介Redis的读写操作都是在内存中执行的,计算机内存的读写速度极快,比机械硬盘的读写快很多,因此也会比MySql采用机械读写的方式性能更高。但是这样会产生一个问题,当Redis重启之后,内存中的数据就会丢失,为了保证数据不会因为服务器重启而丢失,Redis实现了数据持久化的机制,这个机制会把数据存储到磁盘中,当服务器重启的时候,能够从磁盘中恢复原有的数据。

人工智能、机器学习 759

使用Gitlab 搭建私有镜像仓库(外置Nginx)

为了让团队尽快使用Gitlab的CI进行工作,必须做好Gitlab的初始化工作,大家都知道拉取镜像由于某些原因,会比较慢,因此构建自己的私有镜像仓库就成为了关键的一步。当然私有镜像仓库的搭建有很多种方式,这里直接使用Gitlab提供的镜像仓库功能。一揽子解决方案比较香。gitlab真的越来越好用了,有了这个镜像仓,也没必要再使用三方的镜像仓库了。Devops 真好用!

网尘的技术专栏 1829

grafana+prometheus+hiveserver2(jmx_exporter+metrics)

grafana+prometheus+hiveserver2(jmx_exporter+metrics)

manweizhizhuxia的博客 2136

Windows 11 安装 MySQL 8.4:安装包方式、下载、安装、使用

本文详细介绍了在 Windows 11 系统下通过 MSI 安装包方式安装 MySQL 8.4 LTS 社区版的完整流程,包括版本选择、下载、自定义安装路径、服务配置、日志设置、示例数据库创建及后续使用方法。同时提供了命令行客户端与图形化工具 DBeaver 的连接与操作演示,适合初学者和开发者快速搭建本地 MySQL 开发环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2263

搭建 Jmx_exporter + Prometheus + Grafana 监控kafka

一、 启动jmx_exporter 1. 下载并打包(mvn package)jmx_exporter https://github.com/prometheus/jmx_exporter 测试jar包(kafka的jmx端口为9898): java -cp collector/target/collector-0.15.1-SNAPSHOT.jar io.prometheus.jmx.JmxScraper service:jmx:rmi:///jndi/rmi://localhost:9898/jm

w363403269的专栏 1813

零基础基于U-Net网络实战眼底图像血管提取

文章目录1 前言2 血管提取任务概述3 U-Net架构简介4 眼底图像血管分割代码5 结果评估可视化(ROC曲线)6 改进U-Net网络完成眼底图像血管提取任务思路 1 前言 本文基于U-Net架构完成了视网膜血管的提取任务,基于Keras框架更简单的实现分割,网络、工具类、训练和预测的代码一目了然

NJU phd 在读。 5203

【1】Java 部分笔试题解析

解析A.abstract关键字应该放在class关键字之前。C.抽象方法不能有方法体。D缺少了class关键字。

博客 3943

将jmx_exporter导入prometheus,并添加grafana

介绍了将jmx_exporter导入prometheus,并添加grafana,还有核心指标讲解

weixin_44093727的博客 1635

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文) 附安装包网盘下载

Hadoop+Spark+Flink+Zookeeper+Kafka+Hbase+Hive完全分布式高可用集群搭建 Hadoop高可用集群搭建 Spark高可用集群搭建 Flink高可用集群搭建 Zookeeper高可用集群搭建 Kafka高可用集群搭建 Hbase高可用集群搭建 Hive高可用集群搭建 mysql搭建 jdk部署 大数据集群环境搭建

Mr.L-OAM的博客 2万+

容器化Java服务监控实战:Prometheus+JMX Exporter+Grafana全解析

在云原生与容器化部署普及的背景下,JVM运行环境从物理机迁移到Docker后,传统jstack、jstat与JMX直连方式逐渐失效。理解JVM与cgroup内存限制之间的关系,是构建容器内可观测性的前提。通过Java agent方式暴露JMX指标,配合Prometheus的服务发现与拉取模型,能够实现堆内存、GC频率、线程数等核心指标的自动采集;Grafana仪表盘则让数据可视化与告警更加直观。该方案适用于Spring Boot、Netty等各类Java服务,也适合动态扩缩容场景。文章围绕这一技术链路,分享

weixin_34178244的博客 472

(8-5)图像特征提取:基于LoG、DoG 和DoH 的斑点检测器

然后,根据给定的参数(标准差、尺度因子),通过调用cv2.GaussianBlur函数创建了两个不同尺度的高斯滤波器,并对图像进行滤波操作。然后,通过遍历DoG滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。然后,通过遍历DoH滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。接下来,通过遍历滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。DoH是一种基于Hessian矩阵的特征检测方法,通过计算Hessian矩阵的行列式来检测图像中的斑点。:实现DoH斑点检测器。

码农三叔 1606

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【运维监控】Prometheus+grafana监控tomcat运行情况

通过jmx_exporter收集tomcat的运行情况,将数据收集到prometheus中,然后通过grafana的dashboard导入模板进行可视化

alanchanchn的专栏 4万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

prometheus+grafana 监控hadoop、yarn

主要是以jmx_exporter、prometheus为主导进行对hadoop的metrics进行收集,通过grafana进行展示、预警。 1、安装jmx_exporter以及配置文件 1、通过https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaag...

c275090933的专栏 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

kafka监控(JMX_exporter+prometheus+Grafana)

kafka 暴露的JMX如下 # HELP jmx_config_reload_failure_total Number of times configuration have failed to be reloaded. # TYPE jmx_config_reload_failure_total counter jmx_config_reload_failure_total 0.0 # HEL...

define_us的专栏 1万+

Jvm jmx_exporter Prometheus dubbo Grafana 重点看端口要对应上 单独进程和程序进程内jmx_exporter

JVM 启动时指定参数,通过 javaagent 的形式运行 JMX-Exporter 的 jar 包,进程内读取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。官方不推荐使用第一种方式,一方面配置复杂,另一方面因为它需要一个单独的进程,而这个进程本身的监控又成了新的问题,所以本文重点围绕第二种用法讲如何使用 JMX Exporter 暴露 JVM 监控指标给Prometheus并展示在Grafana上。地址一样 点击下载即可。

银河系天城知识宝库_技术专家蒋浩宇 2472

在k8s集群中,利用prometheus的jmx_exporter进行tomcat的JVM性能监控,并用grafana作前端展示...

查找了很多文档,没有完全达到我要求的, 于是,作了一定的调整,成现在这样。 操作步骤如下: 一,准备好两个文件。 jmx_prometheus_javaagent-0.3.1.jar jmx_exporter.yml jmx_exporter.yml作最简单配置如下: --- rules: - pattern: ".*" 二,tomcat的启动项,一直在bin下单独的s...

weixin_30576827的博客 2340

kafka metric java,jmx_exporter+prometheus+grafana实现kafka metric监控

2.配置kafka的JMX PORT,修改bin/kafka-server-start.sh,添加一行export JMX_PORT="9999",我这里用了9999端口。3.下载jmx_exporter,链接 https://github.com/prometheus/jmx_exporter, 我将文件放在/opt/kafka/kafka_2.11-1.0.0/jmx_prometheus_j...

weixin_34602954的博客 596
上一篇: Java进程占用CPU过高问题分析
下一篇: 内网部署 yapi
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值