Kafka监控工具——Kafka-Eagle

摘要:
Kafka监控工具官网https://www.kafka-eagle.org/是什么KafkaEagle是一款用于监控和管理ApacheKafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。而且,在使用消费者API时,尽量#客户端KafkaAPI版本和Kafka服务端的版本保持#一致性。

Kafka监控工具

官网 https://www.kafka-eagle.org/

是什么

Kafka Eagle是一款用于监控和管理Apache Kafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。它提供了完善的管理页面,很方面的去管理和可视化Kafka集群的一些信息,例如Broker详情、性能指标趋势、Topic集合、消费者信息等。

为什么要用

Kafka Eagle监控管理系统,提供了一个可视化页面,使用者可以拥有不同的角色,例如管理员、开发者、游客等。不同的角色对应不同的使用权限。

1.展示Kafka集群的Broker数、Topic数、Consumer数、以及Topic LogSize Top10和Topic Capacity Top10数据。

2.主题创建、主题管理、主题预览、KSQL查询主题、主题数据写入、主题属性配置等

3.监控不同消费者组中的Topic被消费的详情,例如LogSize、Offsets、以及Lag等。同时,支持查看Lag的历史趋势图。

4.Kafka集群和Zookeeper集群的详情展示,例如Kafka的IP和端口、版本号、启动时间、Zookeeper的Leader和Follower。同时,还支持多Kafka集群切换,以及Zookeeper Client数据查看等功能。

5.监控Kafka集群和Zookeeper集群的核心指标,包含Kafka的消息发送趋势、消息大小接收与发送趋势、Zookeeper的连接数趋势等。同时,还支持查看Broker的瞬时指标数据。

6.告警集群异常和消费者应用Lag异常。同时,支持多种IM告警方式,例如邮件、钉钉、微信、Webhook等。

7.包含用户管理,例如创建用户、用户授权、资源管理等。

8.展示消费者和生产者当日及最近7天趋势、Kafka集群读写速度、Kafka集群历史总记录等。

怎么用?

从官网下载linux安装包

文件上传并解压

tar -zxvf xxxxxx

修改名称

mv xxxx  kafka-eagle

打开文件发现还有一个压缩文件, tar -zxvf 该包 解压到当前目录并删除tar包

配置环境变量

vi /etc/profile 
# 这里我在测试环境进行配置的时候发现没有权限,在etc下修改配置文件需要root权限,不过可以使用当前用户的环境变量配置,还可以配置你想要的jdk版本的环境变量  
vi ~/.bash_profile   

# profile
export KE_HOME=/opt/ronnie/kafka/kafka-eagle/kafka-eagle-web-xxx
export PATH=$KE_HOME/bin:$PATH

修改config文件夹下system-config.properties文件进行配置

# 设置集群名和zookeeper集群列表
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=xxx:2181,xxx2181,,,,,,

# Zookeeper线程池最大连接数
kafka.zk.limit.size=25

# Kafka Eagle的页面访问端口
kafka.eagle.webui.port=8048


# 存储消费信息的类型,在0.9版本之前,消费
# 信息会默认存储在Zookeeper中,所以存储类型
# 设置zookeeper即可,如果是在0.10版本之后,
# 消费者信息默认存储在Kafka中,所以存储类型
# 设置为kafka。而且,在使用消费者API时,尽量
# 客户端Kafka API版本和Kafka服务端的版本保持
# 一致性。

cluster1.kafka.eagle.offset.storage=kafka


# 开启性能监控,数据默认保留30天
kafka.eagle.metrics.charts=true
kafka.eagle.metrics.retain=30

# KSQL查询Topic数据默认是最新的5000条,如果
# 在使用KSQL查询的过程中出现异常,可以将下面
# 的false属性修改为true,Kafka Eagle会在
# 系统中自动修复错误。

kafka.eagle.sql.topic.records.max=5000
kafka.eagle.sql.fix.error=false

# 删除Kafka Topic时需要输入删除密钥,由
# 管理员执行

kafka.eagle.topic.token=keadmin


# 开启Kafka ACL特性,例如SCRAM或者PLAIN,
# 一般生产环境会使用SCRAM来做ACL,应为SCRAM
# 可以动态创建和管理用户

cluster1.kafka.eagle.sasl.enable=false
cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster1.kafka.eagle.sasl.mechanism=SCRAM-SHA-256
cluster1.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret";
cluster1.kafka.eagle.sasl.client.id=

cluster2.kafka.eagle.sasl.enable=true
cluster2.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster2.kafka.eagle.sasl.mechanism=PLAIN
cluster2.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
cluster2.kafka.eagle.sasl.client.id=


# 存储Kafka Eagle元数据信息的数据库,目前支持
# MySQL和Sqlite,默认使用Sqlite进行存储

kafka.eagle.driver=com.mysql.jdbc.Driver
kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
kafka.eagle.username=root
kafka.eagle.password=123456

#kafka.eagle.driver=org.sqlite.JDBC
#kafka.eagle.url=jdbc:sqlite:xxxx/sqlite/ke.db
#kafka.eagle.username=root
#kafka.eagle.password=root

在设置数据库的时候,就比如我的部署环境的数据库是oracle,所以更推荐使用sqlite,轻量 好用 掉发少,一般linux系统自带sqlite
查看环境下的sqlite信息 : sqlite3

选择目录,执行 sqlite3 database名称 比如sqlite3 ke.db

此时就可以有一个ke.db的数据库给我去进行eagle的安装了 ,我这里用的默认的账号密码。

Kafka集群的各个Broker节点JMX_PORT开启

vi kafka-server-start.sh

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-server -Xms8G -Xmx8G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
    # 开启JMX_PORT端口,端口开启后,Kafka Eagle系统会自动感知获取
    export JMX_PORT="9999"
    # 注释脚本中默认的信息
    # export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

最后就是启动

# 启动Kafka Eagle系统,执行如下命令:
ke.sh start
# 查看Kafka Eagle运行状态
ke.sh status

# 停止Kafka Eagle
ke.sh stop

# 查看Kafka Eagle GC情况
ke.sh gc

# 查看Kafka Eagle服务器资源占用情况,例如TCP、句柄等
ke.sh stats

# 查看Kafka Eagle版本号
ke.sh version

# 查看Kafka Eagle服务器上JDK的编码情况(如果JDK编码不是UTF-8,可能会有异常出现,执行如下命令,根据提示来修复JDK编码问题)
ke.sh jdk

# 查看Kafka Eagle中是否存在某个类(如果需要精确,类名前面可以加上包名)
ke.sh find [ClassName]

到此kafka-eagle就已经安装成功了,不过感觉数据不够实时,以后再试试其他的监控工具

免责声明:文章转载自《Kafka监控工具——Kafka-Eagle》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ABB机器人功能程序(FUNC)PCL点云分割(2)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker最全教程——从理论到实战(六)

Docker最全教程——从理论到实战(六) 托管到腾讯云容器服务托管到腾讯云容器服务,我们的公众号“magiccodes”已经发布了相关的录屏教程,大家可以结合本篇教程一起查阅。   自建还是托管? 在开始之前,我们先来讨论一个问题——是自建容器服务还是托管到云容器服务? 这里笔者建议大家托管到云容器服务。对于中小团队来说,很多情况下,团队中的运维人员是缺...

【学习】026 Zookeeper

什么Zookeeper Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKe...

七、ES故障排查

在这里记录一下排查es服务故障的思路 1、查看端口 es服务会开启9200跟9300端口 kibana会开启5601端口 es-head会开启9100端口 ss -lntup | grep 9200 ss -lntup | grep 9300 ss -lntup | grep 5601 ss -lntup | grep 9100 2、curl查看 在服务...

在C#中利用Nuget包使用SQLite数据库和Linq to SQLite

本来是学习在VB中使用SQLite数据库和Linq to SQLite,结果先学习到了在C#中使用SQLite数据库和Linq to SQLite的方法,写出来与大家共同学习。(不知道算不算不务正业) 1、建立或打开一个C#项目,如果是新建的项目则需要先保存一下,不然无法安装Nuget包。 2、安装Nuget的Linq to SQLite包,打开Nuget...

spark集群搭建

一.准备工作 1. 准备三台虚拟机,网络互联,安装jdk,配置JAVA_HOME 2.对虚拟机进行hosts配置,以便于免密操作 3.三台虚拟机进行免密登录配置 3.1 执行ssh-keygen -t rsa命令,然后一直回车,会在/root/.ssh/目标下面生成两个文件id_rsa(私钥),id_rsa.pub(公钥) 3.2 将三台虚拟机的cati...

Resin学习之配置resin.properties

  Resin服务器的配置主要有两个文件:resin.properties for most common properties and resin.xml for full customization。Resin的配置最终都转化为resin.xml,其他配置文件主要为了保持配置的可管理性。一般情况下只需要修改resin.properties即可。   r...