Grafana Prometheus 通过JMX监控kafka

这篇具有很好参考价值的文章主要介绍了Grafana Prometheus 通过JMX监控kafka。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第三方kafka exporter方案

目前网上关于使用Prometheus 监控kafka的大部分资料都是使用一个第三方的
kafka exporter,他的原理大概就是启动一个kafka客户端,获取kafka服务器的信息,然后提供一些metric接口供Prometheus使用,随意它能展示的监控信息比较有限,只有每个主题的分区数,每秒/分钟消息数,消费组的lag数。但是kafka本身的JMX有提供500+的监控信息可以进行监控,当然不是说这这么监控指标都很重要,相比kafka exporter直接使用JMX可监控的选项会更多。
Grafana Prometheus 通过JMX监控kafka,grafana,prometheus,kafka

Prometheus官方方案

Prometheus官方提供的jmx_exporter可以将JMX转换为Prometheus Metrics格式。

Prometheus JMX exporter使用方式选择

jmx_exporter提供两种用法:

  • 一种是启动独立的进程。JVM 启动时指定参数,暴露 JMX 的 RMI 接口,JMX_Exporter 调用 RMI 获取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。
  • 一种是JVM进程内启动,通过java agent的形式运行,进程内读取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。官方比较推荐使用这种方式。

使用JMX exporter监控kafka

在kafka-server-start.sh最上面添加下面的代码:

export KAFKA_OPTS="-javaagent:/opt/kafka_2.11-1.1.0/bin/jmx_prometheus_javaagent-0.19.0.jar=9990:/opt/kafka_2.11-1.1.0/bin/kafka-jmx.yml"

jmx_exporter官网下载最新的jmx_prometheus_javaagent-0.19.0.jar包。

kafka-jmx.yml

lowercaseOutputName: true

rules:
# Special cases and very specific rules
- pattern : kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
  name: kafka_server_$1_$2
  type: GAUGE
  labels:
    clientId: "$3"
    topic: "$4"
    partition: "$5"
- pattern : kafka.server<type=(.+), name=(.+), clientId=(.+), brokerHost=(.+), brokerPort=(.+)><>Value
  name: kafka_server_$1_$2
  type: GAUGE
  labels:
    clientId: "$3"
    broker: "$4:$5"
- pattern : kafka.coordinator.(\w+)<type=(.+), name=(.+)><>Value
  name: kafka_coordinator_$1_$2_$3
  type: GAUGE

# Generic per-second counters with 0-2 key/value pairs
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+), (.+)=(.+)><>Count
  name: kafka_$1_$2_$3_total
  type: COUNTER
  labels:
    "$4": "$5"
    "$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+)><>Count
  name: kafka_$1_$2_$3_total
  type: COUNTER
  labels:
    "$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*><>Count
  name: kafka_$1_$2_$3_total
  type: COUNTER

- pattern: kafka.server<type=(.+), client-id=(.+)><>([a-z-]+)
  name: kafka_server_quota_$3
  type: GAUGE
  labels:
    resource: "$1"
    clientId: "$2"

- pattern: kafka.server<type=(.+), user=(.+), client-id=(.+)><>([a-z-]+)
  name: kafka_server_quota_$4
  type: GAUGE
  labels:
    resource: "$1"
    user: "$2"
    clientId: "$3"

# Generic gauges with 0-2 key/value pairs
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Value
  name: kafka_$1_$2_$3
  type: GAUGE
  labels:
    "$4": "$5"
    "$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Value
  name: kafka_$1_$2_$3
  type: GAUGE
  labels:
    "$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Value
  name: kafka_$1_$2_$3
  type: GAUGE

# Emulate Prometheus 'Summary' metrics for the exported 'Histogram's.
#
# Note that these are missing the '_sum' metric!
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Count
  name: kafka_$1_$2_$3_count
  type: COUNTER
  labels:
    "$4": "$5"
    "$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*), (.+)=(.+)><>(\d+)thPercentile
  name: kafka_$1_$2_$3
  type: GAUGE
  labels:
    "$4": "$5"
    "$6": "$7"
    quantile: "0.$8"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Count
  name: kafka_$1_$2_$3_count
  type: COUNTER
  labels:
    "$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*)><>(\d+)thPercentile
  name: kafka_$1_$2_$3
  type: GAUGE
  labels:
    "$4": "$5"
    quantile: "0.$6"
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Count
  name: kafka_$1_$2_$3_count
  type: COUNTER
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>(\d+)thPercentile
  name: kafka_$1_$2_$3
  type: GAUGE
  labels:
    quantile: "0.$4"	

配置好kafka-server-start.sh后还需要重启kafka。

Prometheus配置

在Prometheus的prometheus.yml添加如下内容。注意端口号为KAFKA_OPTS配置的端口。

- job_name: "kafka_jmx"
    metrics_path: /metrics
    static_configs:
      - targets: ['192.168.249.1:9990','192.168.249.2:9990','192.168.249.3:9990']

配置完成后重新加载Prometheus配置文件就可以了。

grafana 配置

通过上面配置后,可以在grafan中找到对应的面板直接来用。

https://grafana.com/grafana/dashboards/18276-kafka-dashboard/

效果

Grafana Prometheus 通过JMX监控kafka,grafana,prometheus,kafka文章来源地址https://www.toymoban.com/news/detail-639064.html

到了这里,关于Grafana Prometheus 通过JMX监控kafka的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于kafka_exporter&prometheus&grafana的kafka监控实现

    下载kafka_exporter 启动kafka_exporter Error Init Kafka Client: kafka: client has run out of available brokers to talk to (Is your cluster reachable?) 报错原因:kafka_exporter版本太低 !!! 防火墙开放端口(未启动防火墙不需要) kafka_exporter启动脚本 其中,kafka监控账号:user/pwd【md5(pwd)】 监听端口号:–

    2024年01月21日
    浏览(38)
  • 超详细教程:Centos安装Prometheus、Grafana监控Kafka及Linux主机

    下载 node_exporter 解压到指定 /app/exporter 编写管理脚本 control_node_exporter.sh ,并给予权限  chmod + x control_node_exporter.sh ,脚本内容如下: 执行命令:   查看同级目录下的 node_exporter.log 日志 浏览器访问  host:9100 ,是否看到下面的页面 出现如上的界面,表示此部分的部署成功。

    2024年02月04日
    浏览(50)
  • Prometheus服务器、Prometheus被监控端、Grafana、Prometheus服务器、Prometheus被监控端、Grafana

    day03Prometheus概述部署Prometheus服务器环境说明:配置时间安装Prometheus服务器添加被监控端部署通用的监控exporterGrafana概述部署Grafana展示node1的监控信息监控MySQL数据库配置MySQL配置mysql exporter配置mysql exporter配置prometheus监控mysql自动发现机制概述基于文件自动发现修改Prometheus使

    2024年02月14日
    浏览(47)
  • Prometheus+Grafana监控PG

    Prometheus是由SoundCloud开发的开源监控报警系统和时间序列数据库(TSDB),它是一个监控采集与数据存储框架(监控服务器端),具体采集什么数据依赖于Exporter(监控客户端) Grafana是一个高“颜值”的监控绘图程序,也是一个可视化面板(Dashboard)。Grafana的厉害之处除了高

    2024年02月07日
    浏览(41)
  • 使用Prometheus+Grafana实现监控

    我们用 actuator 暴露应用本身的线程、bean 等信息,但是这些信息还是独立于 Prometheus 之外的。下面我们 将介绍如何将 SpringBoot Actuator 与 Prometheus 结合起来。 我们同样从 Spring Initializr 创建一个名为 spring-web-prometheus-demo 的项目,选取的依赖包括: Spring Web Spring Boot Actuator Prome

    2024年02月12日
    浏览(45)
  • Prometheus + grafana 的监控平台部署

    vim /opt/module/prometheus-2.44.0/prometheus.yml 命令 修改配置文件 命令 分发 /opt/module/node_exporter-1.6.0 目录到需要监控的节点 使用systemctl 管理node_exporter服务 分发到各个节点,并且启动服务 使用systemctl管理 kafka_exporter 服务 命令 使用systemctl 管理grafana 服务 命令 1.7.1 导入 grafana Dashboa

    2024年02月09日
    浏览(45)
  • Prometheus + Grafana 搭建监控仪表盘

    目标要求 1、需要展现的仪表盘: SpringBoot或JVM仪表盘 Centos物理机服务器(实际为物理分割的虚拟服务器)仪表盘 2、展现要求: 探索Prometheus + Grafana搭建起来的展示效果,尽可能展示能展示的部分。 监控系统核心:prometheus-2.45.0.linux-amd64.tar 下载地址:https://github.com/prometheus

    2024年04月23日
    浏览(47)
  • 性能监控平台 | Prometheus+InfluxDB + Grafana!

    在本文中,我将把几个常用的监控部分给梳理一下。前面我们提到过,在性能监控图谱中,有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web 服务器、存储、代码等很多需要监控的点。显然这些监控点不能在一个专栏中全部覆盖并一一细化

    2024年02月13日
    浏览(73)
  • Prometheus配置Grafana监控大屏(Docker)

    从容器拷贝配置文件至对应目录 查看内容 删除临时docker容器 相关参数说明 http://ip:3000/,注意端口开放 修改中文界面(不需要可以跳过) 点击右上角头像,选择Profile 打开菜单,在连接中选择数据源 选择Prometheus 填写服务地址 确保服务可以访问后,点击保存 最方便就是通过

    2024年01月24日
    浏览(47)
  • Prometheus+Grafana 监控平台实践-搭建&常用服务监控&告警

    Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机服务,分享日常使用的一些使用经验 文章较长,已安装可略

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包