• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

kafka内外网和安全配置

武飞扬头像
langy1990
帮助1

内外网不通集群部署模式

       分别给kafka配置不同网段的监听

        broker.id=70

       listener.security.protocol.map=INTERNAL:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
       #SASL_PLAINTEXT 表示需要先经过安全认证,如果没有安全认证就会启动失败

      listeners=INTERNAL://0.0.0.0:19091,EXTERNAL://0.0.0.0:19092
      advertised.listeners=INTERNAL://10.30.92.7:19091,EXTERNAL://10.255.206.22:19092
      inter.broker.listener.name=INTERNAL

      

学新通

    无需安全认证

       listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT

      listeners=INTERNAL://0.0.0.0:19091,EXTERNAL://0.0.0.0:19092
      advertised.listeners=INTERNAL://10.30.92.7:19091,EXTERNAL://10.255.206.22:19092
      inter.broker.listener.name=INTERNAL

      这样可以实现可以实现两个不同的网段的主机都能连接同一个kafka集群

     10.30.92.0/24网段和10.255.206.0/24网段两者之间的主机互不相通,但是他们却可以通过10.30.92.78:19091和10.255.206.22:19092来连接到同一台主机上的kafka

broker.id=70

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL://0.0.0.0:19091,EXTERNAL://0.0.0.0:19092
advertised.listeners=INTERNAL://10.30.92.7:19091,EXTERNAL://10.255.206.22:19092
inter.broker.listener.name=INTERNAL

num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=4194304
socket.receive.buffer.bytes=4194304
socket.request.max.bytes=104857600
log.dirs=/data/soc/logs/kafka/log
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=96
log.retention.bytes=-1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.30.92.70:2181,10.30.92.71:2181,10.30.92.73:2181
zookeeper.connection.timeout.ms=6000000
delete.topic.enable=true
auto.create.topics.enable=true
default.replication.factor=1
offsets.topic.replication.factor=1

配置样例1

############################# Server Basics #############################
#broker 的 id,必须唯一
broker.id=6

############################# Socket Server Settings #############################
#监听地址
#listeners=SASL_PLAINTEXT://:9092
#advertised.listeners=SASL_PLAINTEXT://10.255.206.189:9092




#sasl相关配置
#security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN


#0519 
#listeners=INSIDE://10.32.3.6:9091,OUTSIDE://10.255.206.189:9092
#advertised.listeners=INSIDE://10.32.3.6:9091,OUTSIDE://10.255.206.189:9092
###listener.security.protocol.map=OUTSIDE:PLAINTEXT
#listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
#inter.broker.listener.name=INSIDE




listener.security.protocol.map=INTERNAL:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
listeners=INTERNAL://0.0.0.0:9091,EXTERNAL://0.0.0.0:9092
advertised.listeners=INTERNAL://10.32.3.66:9091,EXTERNAL://10.255.206.18:9092
inter.broker.listener.name=INTERNAL






#listeners=SASL_PLAINTEXT://0.0.0.0:9092
#advertised.listeners=SASL_PLAINTEXT://10.255.206.189:9092


#listeners=SASL_PLAINTEXT://kddos-node-6:9092
#advertised.listeners=SASL_PLAINTEXT://10.255.206.189:9092




#sasl相关配置
#security.inter.broker.protocol=SASL_PLAINTEXT
#sasl.mechanism.inter.broker.protocol=PLAIN
#sasl.enabled.mechanisms=PLAIN

#Broker 用于处理网络请求的线程数
num.network.threads=6

#Broker 用于处理 I/O 的线程数,推荐值 8 * 磁盘数
num.io.threads=24

#在网络线程停止读取新请求之前,可以排队等待 I/O 线程处理的最大请求个数
queued.max.requests=1000

#socket 发送缓冲区大小
socket.send.buffer.bytes=102400

#socket 接收缓冲区大小
socket.receive.buffer.bytes=102400

#socket 接收请求的最大值(防止 OOM)
socket.request.max.bytes=104857600


############################# Log Basics #############################

#数据目录
log.dirs=/data/ddos/logs/kafka/log

#清理过期数据线程数
num.recovery.threads.per.data.dir=3

#单条消息最大 10 M
message.max.bytes=10485760

############################# Topic Settings #############################

#允许自动创建 Topic
auto.create.topics.enable=true

#不允许 Unclean Leader 选举。
unclean.leader.election.enable=false

#不允许定期进行 Leader 选举。
auto.leader.rebalance.enable=false

#默认分区数
num.partitions=3

#默认分区副本数
default.replication.factor=3

#当生产者将 acks 设置为 "all"(或"-1")时,此配置指定必须确认写入的副本的最小数量,才能认为写入成功
min.insync.replicas=2

#允许删除主题
delete.topic.enable=true

############################# Log Flush Policy #############################

#建议由操作系统使用默认设置执行后台刷新
#日志落盘消息条数阈值
#log.flush.interval.messages=10000
#日志落盘时间间隔
#log.flush.interval.ms=1000
#检查是否达到flush条件间隔
#log.flush.scheduler.interval.ms=200

############################# Log Retention Policy #############################

#日志留存时间 7 天
log.retention.hours=168

#最多存储 256GB 数据
log.retention.bytes=274877906944
                    
#日志文件中每个 segment 的大小为 1G
log.segment.bytes=1073741824

#检查 segment 文件大小的周期 5 分钟
log.retention.check.interval.ms=300000

#开启日志压缩
log.cleaner.enable=true

#日志压缩线程数
log.cleaner.threads=8

############################# Zookeeper #############################

#Zookeeper 连接参数
zookeeper.connect=10.32.3.6:2181,10.32.3.7:2181,10.32.3.8:2181

#连接 Zookeeper 的超时时间
zookeeper.connection.timeout.ms=6000


############################# Group Coordinator Settings #############################

#为了缩短多消费者首次平衡的时间,这段延时期间 10s 内允许更多的消费者加入组
group.initial.rebalance.delay.ms=10000

#心跳超时时间默认 10s,设置成 6s 主要是为了让 Coordinator 能够更快地定位已经挂掉的 Consumer
session.timeout.ms = 6s

#心跳间隔时间,session.timeout.ms >= 3 * heartbeat.interval.ms。
heartbeat.interval.ms=2s

#最长消费时间 5 分钟
max.poll.interval.ms=300000

配置样例2

kafka安全认证配置

  listener.security.protocol.map=INTERNAL:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT

############################# Server Basics #############################
#broker 的 id,必须唯一
broker.id=6

############################# Socket Server Settings #############################
#监听地址
#listeners=SASL_PLAINTEXT://:9092
#advertised.listeners=SASL_PLAINTEXT://10.255.206.189:9092




#sasl相关配置
#security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN


#0519 
#listeners=INSIDE://10.32.3.6:9091,OUTSIDE://10.255.206.189:9092
#advertised.listeners=INSIDE://10.32.3.6:9091,OUTSIDE://10.255.206.189:9092
###listener.security.protocol.map=OUTSIDE:PLAINTEXT
#listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
#inter.broker.listener.name=INSIDE




listener.security.protocol.map=INTERNAL:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
listeners=INTERNAL://0.0.0.0:9091,EXTERNAL://0.0.0.0:9092
advertised.listeners=INTERNAL://10.32.3.66:9091,EXTERNAL://10.255.206.18:9092
inter.broker.listener.name=INTERNAL






#listeners=SASL_PLAINTEXT://0.0.0.0:9092
#advertised.listeners=SASL_PLAINTEXT://10.255.206.189:9092


#listeners=SASL_PLAINTEXT://kddos-node-6:9092
#advertised.listeners=SASL_PLAINTEXT://10.255.206.189:9092




#sasl相关配置
#security.inter.broker.protocol=SASL_PLAINTEXT
#sasl.mechanism.inter.broker.protocol=PLAIN
#sasl.enabled.mechanisms=PLAIN

#Broker 用于处理网络请求的线程数
num.network.threads=6

#Broker 用于处理 I/O 的线程数,推荐值 8 * 磁盘数
num.io.threads=24

#在网络线程停止读取新请求之前,可以排队等待 I/O 线程处理的最大请求个数
queued.max.requests=1000

#socket 发送缓冲区大小
socket.send.buffer.bytes=102400

#socket 接收缓冲区大小
socket.receive.buffer.bytes=102400

#socket 接收请求的最大值(防止 OOM)
socket.request.max.bytes=104857600


############################# Log Basics #############################

#数据目录
log.dirs=/data/ddos/logs/kafka/log

#清理过期数据线程数
num.recovery.threads.per.data.dir=3

#单条消息最大 10 M
message.max.bytes=10485760

############################# Topic Settings #############################

#允许自动创建 Topic
auto.create.topics.enable=true

#不允许 Unclean Leader 选举。
unclean.leader.election.enable=false

#不允许定期进行 Leader 选举。
auto.leader.rebalance.enable=false

#默认分区数
num.partitions=3

#默认分区副本数
default.replication.factor=3

#当生产者将 acks 设置为 "all"(或"-1")时,此配置指定必须确认写入的副本的最小数量,才能认为写入成功
min.insync.replicas=2

#允许删除主题
delete.topic.enable=true

############################# Log Flush Policy #############################

#建议由操作系统使用默认设置执行后台刷新
#日志落盘消息条数阈值
#log.flush.interval.messages=10000
#日志落盘时间间隔
#log.flush.interval.ms=1000
#检查是否达到flush条件间隔
#log.flush.scheduler.interval.ms=200

############################# Log Retention Policy #############################

#日志留存时间 7 天
log.retention.hours=168

#最多存储 256GB 数据
log.retention.bytes=274877906944
                    
#日志文件中每个 segment 的大小为 1G
log.segment.bytes=1073741824

#检查 segment 文件大小的周期 5 分钟
log.retention.check.interval.ms=300000

#开启日志压缩
log.cleaner.enable=true

#日志压缩线程数
log.cleaner.threads=8

############################# Zookeeper #############################

#Zookeeper 连接参数
zookeeper.connect=10.32.3.6:2181,10.32.3.7:2181,10.32.3.8:2181

#连接 Zookeeper 的超时时间
zookeeper.connection.timeout.ms=6000


############################# Group Coordinator Settings #############################

#为了缩短多消费者首次平衡的时间,这段延时期间 10s 内允许更多的消费者加入组
group.initial.rebalance.delay.ms=10000

#心跳超时时间默认 10s,设置成 6s 主要是为了让 Coordinator 能够更快地定位已经挂掉的 Consumer
session.timeout.ms = 6s

#心跳间隔时间,session.timeout.ms >= 3 * heartbeat.interval.ms。
heartbeat.interval.ms=2s

#最长消费时间 5 分钟
max.poll.interval.ms=300000

添加认证配置

   2.在kafka的安装目录下添加认证配置文件

      

学新通

  3.kafka的server.properties中如果配置成SASL_PLAINTEXT  那么就一定要在config的目录下创建kafka_server_jaas.conf和kafka_client_jaas.conf配置文件,否则kafka无法正常启动

  4.配置文件实例

      

学新通

KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="11111";
};

kafka_client_jaas.conf

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="22222"
    user_admin="11111";
};

kafka_server_jaas.conf   

学新通

kafka集群重启异常

        修改kafka的配置后重启kafka服务 提示

        Error while executing topic command : Replication factor: 1 larger than available brokers: 0.

       集群重启操作步骤

       1.先把所有节点的kafka停止 supervisorctl stop kafka

       2.把所有节点的zookeeper重启  supervisorctl restart zookeeper

       3.最后把所有节点的kafka启动   supervisorctl start kafka

       4.修改kafka的配置后不能仅仅重启kafka本身 还需要先重启kafka的依赖服务zookeeper

kafka外网转发

        

学新通

            

学新通

 配置项目解析

     配置多个IP监听

broker.id=70

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,OUTSIDE:PLAINTEXT
listeners=INTERNAL://0.0.0.0:19091,EXTERNAL://0.0.0.0:19093,OUTSIDE://0.0.0.0:19092
advertised.listeners=INTERNAL://1.1.1.1:19091,EXTERNAL://2.2.2.2:19093,OUTSIDE://3.3.3.3:19092
inter.broker.listener.name=INTERNAL

View Code     

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibehaj
系列文章
更多 icon
同类精品
更多 icon
继续加载