配置kafkaManager监控SASL/PLAIN认证后的kafka集群

原创
2019/07/13 21:50
阅读数 1.2K

    是否在夜晚仰望星空呢?细数那些闪亮的星星,是否感觉多了一颗,某颗星尘坠落在周围角落,

散发着微光,想要帮你驱散掉周遭的黑暗。


准备工作

kafka集群版本:0.11.0.0,(kafka_2.11-0.11.0.0)。

  • 配置SASL/PLAIN认证加固kafka集群。

  • kafkamanager版本:kafka-manager-2.0.0.2。

  • kafka认证的客户端jaas.conf配置文件。

  • 其中jaas.conf配置内容参考如下:

KafkaClient {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="hyq"
        password="hyqpass";
};
修改kafka-server-start.sh脚本
  • 加入JMXPORT。export JMXPORT="9999",如下:

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx16G -Xms16G"
    export JMX_PORT="9999"
fi
  • 修改kafka-run-class.sh脚本

    • 在JMX设置项中加入:-Djava.rmi.server.hostname=yourip。如下:

# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
  KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=当前kafka节点的ip地址 "
fi
修改manager配置并启动
  • 修改application.conf配置

    • 设置zk集群的地址。

    • 设置manager界面认证的账号和密码

kafka-manager.zkhosts="ip1:port1,ip2:port2,ip3:port3"
basicAuthentication.username="hyq"
basicAuthentication.password="password"
  • 启动

  • 启动时,指定加载jaas配置

 bin/kafka-manager -Djava.security.auth.login.config=/path/to/my-jaas.conf
界面配置认证
  • 设置Security Protocol为SASL_PLAINTEXT

  • 设置SASL Mechanism为PLAIN

  • 设置SASL JAAS Config 为:

org.apache.kafka.common.security.plain.PlainLoginModule required username='hyq' password='hyqpass';
疑难解答
  • 先前一直疑惑,在jaas.conf中配置的是SASLPLAINTEXT ,为什么报错PLAINTEXT找不到,原来是manager界面上默认配置的就是这个,需要在界面上手动修改为SASLPLAINTEXT.

java.util.NoSuchElementException: key not found: PLAINTEXT
  • jmx默认去连接127.0.0.1导致连接被拒绝,需要在kafka-run-class.sh脚本中配置中加入:-Djava.rmi.server.hostname=yourip。

Failed to connect to service:jmx:rmi:///jndi/rmi://ip:9999/jmxrmi
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
        java.net.ConnectException: Connection refused
  • 界面配置jaas config时,记得最后加上分号(;),并且用户名密码使用单引号。如:org.apache.kafka.common.security.plain.PlainLoginModule required username='hyq' password='hyqpass';

Caused by: java.lang.IllegalArgumentException: Value not specified for key 'null' in JAAS config

本文分享 CSDN - 独行侠梦。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部