zoukankan      html  css  js  c++  java
  • kafka 监控(eagle)

    topic:创建时topic名称

    partition:分区编号

    offset:表示该parition已经消费了多少条message

    logSize:表示该partition已经写了多少条message

    Lag:表示有多少条message没有被消费。

    Owner:表示消费者

    Created:该partition创建时间

    Last Seen:消费状态刷新最新时间。

    这里我们使用的工具的gtihub 地址是:

    https://github.com/smartloli/kafka-eagle

    文档地址是:

    https://ke.smartloli.org/3.Manuals/1.Dashboard.html

    在ELK使用的时候发现两个问题:

    1:consumer 没有返回给producer offset,导致我们从控制台看到offset为0,同时我们的consumer没有指定consumer name ,导致在后台查看的时候我们不是到group_name 是那个topic。默认的是console consumer 加一串随机数,这里监控kafka消费情况用的是KafkaOffsetMonitor,当然也可以使用kafka-manager。比较下来还是使用KafkaOffsetMonitor(操作kafka-manager不当的话,可能会导致kafka集群挂了)

    图片.png

    图片.png

    目前我们发现这种情况,有部分的消息会重复消费,但是有部分的消息不会重复消费,这个很奇怪,请教了一下开发,按理说offset 为 0 的话,这里应该会一直重试,这个问题目前还是没有查到根本原因,也只是暂时解决

    目前暂时的解决方案是:kafka  指定group_id

    2。发现filebeat 进程一重启,日志文件就会重新读取。其实默认情况下filebeat 有把被采集的所有日志的相关信息记录到registry.默认是关键安装目录下的data/registry 文件里,但是我们客户端启动了多个filebeat 进程,每个filebeat 采集不同的日志数据文件,所以所有的采集日志的信息都记录在了这一个registry 文件里。registry文件的内容格式如下:

    {"source":"/data/logs/xdpay/xdpay-listener/xdpay-listener.log","offset":10451444,"FileStateOS":{"inode":539426564,"device":64784},"timestamp":"2018-07-13T15:37:10.067048399+08:00","ttl":-1}]

    这里我们最关注的应该就是这个offset 了。我们可以cat  看到我们的registry文件的内容(我们对每个filebeat进程配置了不同的registry文件路径),这个文件内容永远只有一行,我们会看到这个offset一直在变(当然其他的也在变)。

    调整方案为:每个进程指定一个registry路径 /data/package/filebeat/${APPID}/registry

    这个是临时解决方案,按照官网的说法其实不配置也可以,但是我的环境不配置的话,虽然有默认的registry文件,但是每次重启filebeat的时候会导致日志文件重头读取,所以这个是暂时的解决方案。

    当然后续可能还会陆陆续续有其他的问题,慢慢调吧!!!

  • 相关阅读:
    WinRAR的命令行模式用法介绍
    Linux find命令的用法实践
    Linux服务器磁盘扩展和oracle表空间文件迁移操作记录
    博客园开篇,自己开发的双色球小助手
    解决MySQL安装3306端口占用问题
    html书写行内元素时-tab和换行会在行内元素间引入间距
    FileReader生成图片dataurl的分析
    mysql启动流程
    npm--debug模块
    js之Symbol类型
  • 原文地址:https://www.cnblogs.com/smail-bao/p/9300860.html
Copyright © 2011-2022 走看看