阅读 241

kakfa配置文件说明、 kafka监控与运维

server.properties

  • broker.id=0

    • kafka集群是由多个节点组成的,每个节点称为一个broker,中文翻译是代理。每个broker都有一个不同的brokerId,由broker.id指定,是一个不小于0的整数,各brokerId必须不同,但不必连续。如果我们想扩展kafka集群,只需引入新节点,分配一个不同的broker.id即可。

    • 启动kafka集群时,每一个broker都会实例化并启动一个kafkaController,并将该broker的brokerId注册到zooKeeper的相应节点中。集群各broker会根据选举机制选出其中一个broker作为leader,即leader kafkaController。leader kafkaController负责主题的创建与删除、分区和副本的管理等。当leader kafkaController宕机后,其他broker会再次选举出新的leader kafkaController。

  • log.dir = /export/data/kafka/

    • broker持久化消息到哪里,数据目录

  • log.retention.hours = 168

    • log文件最小存活时间,默认是168h,即7天。相同作用的还有log.retention.minutes、log.retention.ms。retention是保存的意思。

    • 数据存储的最大时间超过这个时间会根据log.cleanup.policy设置的策略处理数据,也就是消费端能够多久去消费数据。

    • log.retention.bytes和log.retention.hours任意一个达到要求,都会执行删除,会被topic创建时的指定参数覆盖。

  • log.retention.check.interval.ms

    • 多长时间检查一次是否有log文件要删除。默认是300000ms,即5分钟。

  • log.retention.bytes

    • 限制单个分区的log文件的最大值,超过这个值,将删除旧的log,以满足log文件不超过这个值。默认是-1,即不限制。

  • log.roll.hours

    • 多少时间会生成一个新的log segment,默认是168h,即7天。相同作用的还有log.roll.ms、segment.ms。

  • log.segment.bytes

    • log segment多大之后会生成一个新的log segment,默认是1073741824,即1G。

  • log.flflush.interval.messages

    在Linux操作系统中,当我们把数据写入到文件系统之后,数据其实在操作系统的page cache里面,并没有刷到磁盘上去。如果此时操作系统挂了,其实数据就丢了。 1、kafka是多副本的,当你配置了同步复制之后。多个副本的数据都在page cache里面,出现多个副本同时挂掉的概率比1个副本挂掉,概率就小很多了 2、操作系统有后台线程,定期刷盘。如果应用程序每写入1次数据,都调用一次fsync,那性能损耗就很大,所以一般都会在性能和可靠性之间进行权衡。因为对应一个应用来说,虽然应用挂了,只要操作系统不挂,数据就不会丢。 复制代码

    • 指定broker每收到几个消息就把消息从内存刷到硬盘(刷盘)。默认是9223372036854775807 好大。

    • kafka官方不建议使用这个配置,建议使用副本机制和操作系统的后台刷新功能,因为这更高效。这个配置可以根据不同的topic设置不同的值,即在创建topic的时候设置值。

    • 补充说明:

  • log.flflush.interval.ms

    • 指定broker每隔多少毫秒就把消息从内存刷到硬盘。默认值同log.flflush.interval.messages一样,9223372036854775807。

    • 同log.flflush.interval.messages一样,kafka官方不建议使用这个配置。

  • delete.topic.enable=true

    • 是否允许从物理上删除topic

kafka-eagle概述

在生产环境下,在Kafka集群中,消息数据变化是我们关注的问题,当业务前提不复杂时,我们可以使用Kafka命令提供带有Zookeeper客户端工具的工具,可以轻松完成我们的工作。随着业务的复杂性,增加Group和 Topic,那么我们使用Kafka提供命令工具,已经感到无能为力,那么Kafka监控系统目前尤为重要,我们需要观察 消费者应用的细节。

为了简化开发者和服务工程师维护Kafka集群的工作有一个监控管理工具,叫做 Kafka-eagle。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,

搭建安装 kafka-eagle

环境要求:需要安装jdk,启动zk以及kafka的服务

# 启动Zookeeper zkServer.sh start #启动Kafka nohup ./kafka-server-start.sh /export/servers/kafka/config/server.properties 2>&1 & 复制代码

修改本机host文件

192.168.200.20 kafka1 192.168.200.20 kafka2 192.168.200.20 kafka3 192.168.200.11 node1 192.168.200.12 node2 192.168.200.13 node3 复制代码

搭建步骤:

  • 下载kafka-eagle的源码包

    • kafka-eagle官网:download.kafka-eagle.org/
      我们可以从官网上面直接下载最新的安装包即可kafka-eagle-bin-1.3.2.tar.gz这个版本即可

    • 代码托管地址:github.com/smartloli/E…

  • 上传安装包并解压:

    #将安装包上传至 node01服务器的/export/softwares路径下, 然后解压 cd /export/softwares/ unzip kafka-eagle.zip cd cd kafka-eagle-web/target/ tar -zxf kafka-eagle-web-2.0.1-bin.tar.gz -C /export/servers 复制代码

    • yum install unzip

    • unzip xxxx.zip

    • 这里我们选择将kafak-eagle安装在第三台

    • 如果要解压的是zip格式,需要先安装命令支持。

  • 准备数据库:

    --进入mysql客户端: create database eagle; 复制代码

    • kafka-eagle需要使用一个数据库来保存一些元数据信息,我们这里直接使用msyql数据库来保存即可,在node01服务器执行以下命令创建一个mysql数据库即可

  • 修改kafka-eagle配置文件

image.png

cd /export/servers/kafka-eagle-bin-1.3.2/kafka-eagle-web-1.3.2/conf vim system-config.properties #内容如下: kafka.eagle.zk.cluster.alias=cluster1 cluster1.zk.list=node1:2181,node2:2181,node3:2181 kafka.eagle.driver=com.mysql.jdbc.Driver kafka.eagle.url=jdbc:mysql://10.1.192.208:3306/eagle kafka.eagle.username=root kafka.eagle.password=wu7787879 复制代码

默认情况下MySQL只允许本机连接到MYSQL实例中,所以如果要远程访问,必须开放权限:

//修改权限 update user set host = '%' where user ='root';  //刷新配置 flflush privileges;  复制代码

  • 配置环境变量

    • kafka-eagle必须配置环境变量,node03服务器执行以下命令来进行配置环境变量

vi /etc/profile #内容如下: export KE_HOME=/export/servers/kafka-eagle-bin-1.3.2/kafka-eagle-web-1.3.2 export PATH=:$KE_HOME/bin:$PATH #让修改立即生效,执行 source /etc/profile 复制代码

  • 启动kakfa-eagle

cd kafka-eagle-web-1.3.2/bin chmod u+x ke.sh ./ke.sh start 复制代码

  • 访问主界面:http://node03:8048/ke/account/signin?/ke/

    • 用户名:admin

    • 密码:123456


作者:RG
链接:https://juejin.cn/post/7032214643598688269

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐