Kafka-日常运维命令

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了中间件:Zookeeper,本章将介绍另外一个中间件:Kafka。目前这2个中间件都是基于JAVA语言的。

对于运维来说,一个正常的Kafka的集群,一般情况下我们是不需要去操作ZooKeeper来维护它的集群状态的。我们对Kafka的操作,大部分都通过Kafka自带的脚本来操作它,下面我们就来介绍下使用较多的命令。(部分命令在前面的操作里面已经有演示)。

yaml 复制代码
#下面都是默认自带的脚本
#根据环境和需求不一样,大部分我们都用不到,我们最常用就那么几个 
[root@localhost ~]# ll /root/kafka_2.13-2.8.2/bin/
total 156
-rwxr-xr-x 1 root root  1423 Sep  2  2022 connect-distributed.sh
-rwxr-xr-x 1 root root  1396 Sep  2  2022 connect-mirror-maker.sh
-rwxr-xr-x 1 root root  1420 Sep  2  2022 connect-standalone.sh
-rwxr-xr-x 1 root root   861 Sep  2  2022 kafka-acls.sh
-rwxr-xr-x 1 root root   873 Sep  2  2022 kafka-broker-api-versions.sh
-rwxr-xr-x 1 root root   860 Sep  2  2022 kafka-cluster.sh
-rwxr-xr-x 1 root root   864 Sep  2  2022 kafka-configs.sh
-rwxr-xr-x 1 root root   945 Sep  2  2022 kafka-console-consumer.sh
-rwxr-xr-x 1 root root   944 Sep  2  2022 kafka-console-producer.sh
-rwxr-xr-x 1 root root   871 Sep  2  2022 kafka-consumer-groups.sh
-rwxr-xr-x 1 root root   948 Sep  2  2022 kafka-consumer-perf-test.sh
-rwxr-xr-x 1 root root   871 Sep  2  2022 kafka-delegation-tokens.sh
-rwxr-xr-x 1 root root   869 Sep  2  2022 kafka-delete-records.sh
-rwxr-xr-x 1 root root   866 Sep  2  2022 kafka-dump-log.sh
-rwxr-xr-x 1 root root   863 Sep  2  2022 kafka-features.sh
-rwxr-xr-x 1 root root   870 Sep  2  2022 kafka-leader-election.sh
-rwxr-xr-x 1 root root   863 Sep  2  2022 kafka-log-dirs.sh
-rwxr-xr-x 1 root root   873 Sep  2  2022 kafka-metadata-shell.sh
-rwxr-xr-x 1 root root   862 Sep  2  2022 kafka-mirror-maker.sh
-rwxr-xr-x 1 root root   886 Sep  2  2022 kafka-preferred-replica-election.sh
-rwxr-xr-x 1 root root   959 Sep  2  2022 kafka-producer-perf-test.sh
-rwxr-xr-x 1 root root   874 Sep  2  2022 kafka-reassign-partitions.sh
-rwxr-xr-x 1 root root   874 Sep  2  2022 kafka-replica-verification.sh
-rwxr-xr-x 1 root root 10329 Sep  2  2022 kafka-run-class.sh
-rwxr-xr-x 1 root root  1376 Sep  2  2022 kafka-server-start.sh
-rwxr-xr-x 1 root root  1361 Sep  2  2022 kafka-server-stop.sh
-rwxr-xr-x 1 root root   860 Sep  2  2022 kafka-storage.sh
-rwxr-xr-x 1 root root   945 Sep  2  2022 kafka-streams-application-reset.sh
-rwxr-xr-x 1 root root   863 Sep  2  2022 kafka-topics.sh
-rwxr-xr-x 1 root root   958 Sep  2  2022 kafka-verifiable-consumer.sh
-rwxr-xr-x 1 root root   958 Sep  2  2022 kafka-verifiable-producer.sh
-rwxr-xr-x 1 root root  1714 Sep  2  2022 trogdor.sh
drwxr-xr-x 2 root root  4096 Sep  2  2022 windows
-rwxr-xr-x 1 root root   867 Sep  2  2022 zookeeper-security-migration.sh
-rwxr-xr-x 1 root root  1393 Sep  2  2022 zookeeper-server-start.sh
-rwxr-xr-x 1 root root  1366 Sep  2  2022 zookeeper-server-stop.sh
-rwxr-xr-x 1 root root  1019 Sep  2  2022 zookeeper-shell.sh
一.基本操作
1. kafka-topics.sh(主题管理)
  • 用途:创建、查看、删除 Topic,管理分区和副本。

  • 常用子命令

    创建 Topic(指定分区数、副本因子)

    kafka-topics.sh --bootstrap-server broker:port --create --topic <topic_name> --partitions --replication-factor

    列出所有 Topic

    kafka-topics.sh --bootstrap-server broker:port --list

    查看 Topic 详细信息(分区、副本分布、ISR 等)

    kafka-topics.sh --bootstrap-server broker:port --describe --topic <topic_name>

    删除 Topic

    kafka-topics.sh --bootstrap-server broker:port --delete --topic <topic_name>

  1. kafka-console-producer.sh(控制台生产者)
3. kafka-console-consumer.sh(控制台消费者)
4. kafka-consumer-groups.sh(消费者组管理)
5. kafka-configs.sh(动态配置管理)
  • 用途:修改 Topic、Broker 或客户端的动态配置。

  • 常用子命令

    查看 Topic 的配置

    kafka-configs.sh --bootstrap-server broker:port --entity-type topics --entity-name <topic_name> --describe

    修改 Topic 的消息保留时间

    kafka-configs.sh --bootstrap-server broker:port --entity-type topics --entity-name <topic_name> --alter --add-config retention.ms=86400000

  1. kafka-acls.sh(权限管理)
  • 用途:管理 Kafka 的访问控制列表(ACL)。

  • 常用子命令

    授予生产者权限

    kafka-acls.sh --bootstrap-server broker:port --add --allow-principal User: --producer --topic <topic_name>

    授予消费者权限

    kafka-acls.sh --bootstrap-server broker:port --add --allow-principal User: --consumer --topic <topic_name> --group <group_id>

二、集群管理命令

1. kafka-server-start.sh(启动 Broker)
  • 用途:启动 Kafka Broker 服务。

  • 常用方式

    指定配置文件启动

    kafka-server-start.sh /path/to/server.properties

2. kafka-reassign-partitions.sh(分区重分配)

三、调试与监控

1. kafka-dump-log.sh(日志分析)
  • 用途:解析分区日志文件(查看消息内容)。

  • 常用参数

    查看某个分区日志的头部和尾部消息

    kafka-dump-log.sh --files /path/to/partition-log-00000 --print-data-log

2. kafka-producer-perf-test.sh(生产者压测)
  • 用途:测试生产者吞吐量。

  • 常用参数

    kafka-producer-perf-test.sh --topic <topic_name> --num-records 100000 --record-size 1000 --throughput 1000 --producer-props bootstrap.servers=broker:port

总结

  • 最常用命令
    kafka-topics.sh, kafka-console-producer.sh, kafka-console-consumer.sh, kafka-consumer-groups.sh, kafka-configs.sh, kafka-server-start.sh.

  • 关键参数
    --bootstrap-server(新版替代 --zookeeper)、--describe--alter--reset-offsets

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
可爱又迷人的反派角色“yang”15 分钟前
ansible剧本编写(三)
linux·网络·云计算·ansible
石像鬼₧魂石5 小时前
内网渗透靶场实操清单(基于 Vulhub+Metasploitable 2)
linux·windows·学习·ubuntu
Danileaf_Guo6 小时前
256台H100服务器算力中心的带外管理网络建设方案
运维·服务器
橘子真甜~7 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
拾贰_C7 小时前
【Linux | Windows | Terminal Command】 Linux---grep | Windows--- findstr
linux·运维·服务器
阿华hhh8 小时前
Linux系统编程(标准io)
linux·开发语言·c++
虹科网络安全8 小时前
艾体宝洞察 | 利用“隐形字符”的钓鱼邮件:传统防御为何失效,AI安全意识培训如何补上最后一道防线
运维·网络·安全
石像鬼₧魂石9 小时前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan9 小时前
linux上面写python3日志服务器
linux·运维·服务器
yBmZlQzJ9 小时前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节