logstash output到kafka 配置SSL 加密

1. 使用keytool来为集群的每台机器生成密钥和证书。

1. 先执行下面的脚本

会要输入很多次密码建议密码都一样

#!/bin/bash
#Step 1
#以下注意修改时间  默认时间365
keytool -keystore server.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey
#Step 2
openssl req -new -x509 -keyout ca-key -out ca-cert -days 365
keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert
keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert
#Step 3
keytool -keystore server.keystore.jks -alias localhost -certreq -file cert-file
#得修改时间和密码 -passin pass:你的密码
openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:123456
keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert
keytool -keystore server.keystore.jks -alias localhost -import -file cert-signed
#Step 4
keytool -keystore client.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey

在这里插入图片描述

2. 参数解释

  • keystore: 密钥仓库的位置
  • ca-cert: CA的证书
  • ca-key: CA的私钥
  • ca-password: CA的密码
  • cert-file: 出口,服务器的未签名证书
  • cert-signed: 已签名的服务器证书

2. 配置kafka

注意: 内网传输未配置ssl 加密, 使用ssl 加密会影响性能

  1. 在server.properties 中增加以下配置
#改为自己的主机名或ip
listeners=PLAINTEXT://host.name:9092,SSL://host.name:9093
#记得修改路径为你秘钥的路径
ssl.keystore.location=/export/servers/kafka_2.11-2.4.1/bin/cart/server.keystore.jks
ssl.keystore.password=123456
ssl.key.password=123456
#记得修改路径为你秘钥的路径
ssl.truststore.location=/export/servers/kafka_2.11-2.4.1/bin/cart/server.truststore.jks
ssl.truststore.password=123456
  1. 注释掉以下内容
advertised.listeners=PLAINTEXT://node01:9092
  1. 进入kafka bin目录重启kafka,注意观察是否报错
bin/kafka-server-start.sh ./config/server.properties

3. 遇到的问题

  1. cluster.id 不正确解决

进入kafka的logs 目录, 也就是server.properties 中配置的log.dir 的路径
找到meta.properties 修改为报错中的值

  1. 连接被拒绝
  1. kafka 内部问题
  2. 9093端口未开放
  3. 主机hosts 问题 映射成指定的主机名

4. 配置logstash输出到kafka的output

把之前通过keytool 生成的 server.keystore.jks 和 server.truststore.jks 文件拷贝到 logstash 节点

output {
        kafka {
        codec => json
        topic_id => "logstash_test"
        ssl_keystore_location => "/opt/cart/server.keystore.jks"
        ssl_keystore_password => "123456"
        ssl_keystore_type => "JKS"
        ssl_truststore_location => "/opt/cart/server.truststore.jks"
        ssl_truststore_password => "123456"
        ssl_truststore_type => "JKS"
        ssl_key_password => "123456"
        bootstrap_servers => "host.name:9093"
        security_protocol => "SSL"
        # 不以主机名作为判断不加会连接不上
        ssl_endpoint_identification_algorithm => ""
      }
}

5. 最后

欢迎在评论区留言探讨。

参考链接

https://www.orchome.com/171
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值