不进行认证配置安装:https://www.cnblogs.com/pzb-shadow/p/13030365.html
安装kerbers:https://blog.csdn.net/huanqingdong/article/details/84979110
kafka-manager3.0安装连接:https://cloud.tencent.com/developer/article/1702379
kafka-manager配置SSL监控:https://cloud.tencent.com/developer/article/1702379
使用Git或者直接从Releases中下载,此处从下面的地址下载2.0.0.2版本:https://github.com/yahoo/kafka-manager/releases
注意上面地址下载下来的是源码包,需要进行编译,需要注意的是3.x版本需要基于JDK11环境,2.0.0.2
及以下版本才兼容JDK1.8。
[root@kafka1-master opt]#wget https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz [root@kafka1-master opt]#cd kafka-manager-2.0.0.2/ [root@kafka1-master opt]#curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo [root@kafka1-master opt]#mv bintray-sbt-rpm.repo /etc/yum.repos.d/ [root@kafka1-master opt]#yum install sbt [root@kafka1-master opt]#sbt-version [root@kafka1-master opt]#./sbt clean dist [root@kafka1-master opt]#cd /usr/local/kafka-manager/target/universal/ [root@kafka1-master opt]#mv kafka-manager-2.0.0.2/ /opt/cloudera/
修改conf/application.conf文件中zk的地址以及启用Kafka-Manager使用账号登录和消费者的配置
##zkhosts kafka-manager.zkhosts="beta1:2181" kafka-manager.zkhosts=${?ZK_HOSTS} pinned-dispatcher.type="PinnedDispatcher" pinned-dispatcher.executor="thread-pool-executor" application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"] akka { loggers = ["akka.event.slf4j.Slf4jLogger"] loglevel = "INFO" } akka.logger-startup-timeout = 60s #开启登录kafka-manager验证 basicAuthentication.enabled=true basicAuthentication.enabled=${?KAFKA_MANAGER_AUTH_ENABLED} basicAuthentication.username="admin" basicAuthentication.username=${?KAFKA_MANAGER_USERNAME} basicAuthentication.password="admin" basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD} basicAuthentication.realm="Kafka-Manager" basicAuthentication.excluded=["/api/health"] # ping the health of your instance without authentification kafka-manager.consumer.properties.file=/usr/local/kafka-manager-1.3.3.18/kafka-manager-1.3.3.18/conf/consumer.properties #kafka-manager.consumer.properties.file=${?CONSUMER_PROPERTIES_FILE}
修改conf/consumer.properties内容如下:
security.protocol=SASL_PLAINTEXT key.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer value.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer sasl.mechanism=GSSAPI sasl.kerberos.service.name=kafka
因为做了kerberos认证,所以需要jaas.conf文件指定到启动命令后面。配置前要保证票据可用!
在kafka-manager/conf的目录创建jaas.conf内容如下,并将keyTab对应的文件也拷贝到当前目录
# 其中Clinet段用于连接zookeeper认证,KafkaClient用于连接kafka服务器认证 Client{ com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/root/test.keytab"#注意对应的keytab路径 principal="test"#对应的keytab前缀 serviceName="kafka" doNotPrompt=true; }; KafkaClient{ com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/root/test.keytab" principal="test" serviceName="kafka" doNotPrompt=true; };
添加启动脚本,/opt/module/kafka-manager/scripts/rm.sh,内容如下
#!/bin/bash echo ‘-------------------------------------------------------------------分界线‘$(date +%F%t%T)> manager.out # 配置kafka-manager元数据使用的zookeeper,此处必须是用export export ZK_HOSTS=centos610:2181 # kafka-manager 路径 MANAGER_HOME=/opt/module/kafka-manager # 可执行文件路径 KAFKA_MANAGER=$MANAGER_HOME/bin/kafka-manager # 日志位置 APP_HOME=-Dapplication.home=$MANAGER_HOME # 端口 HTTP_PORT=-Dhttp.port=9001 # SASL安全认证 JAAS_CONF=-Djava.security.auth.login.config=$MANAGER_HOME/conf/jaas.conf KRB5_CONF=-Djava.security.krb5.conf=$MANAGER_HOME/conf/krb5.conf nohup $KAFKA_MANAGER $JAAS_CONF $KRB5_CONF $APP_HOME $HTTP_PORT >manager.out 2>&1 & echo "$!" echo "$!" >mpid tailf manager.out
添加停止脚本,/opt/module/kafka-manager/scripts/sm.sh,内容如下
echo ‘-------------------------------------------------------------------分界线‘$(date +%F%t%T)> manager.out kill `cat mpid`
cat /dev/vull >mpid tailf manager.out
配置SSL监控:https://cloud.tencent.com/developer/article/1702379
当我们首次打开CMAK的监控页面时,是一片空白的。因为此时我们还没有添加任何需要被监控的集群,所以首先第一步就是要添加集群:
需要注意的是,如果要开启JMX轮询,则必须事先在Kafka的启动脚本中打开JMX的端口号:
[root@localhost ~]# vim /usr/local/kafka/bin/kafka-server-start.sh
# 打开JMX端口
export JMX_PORT=9999
然后重启Kafka:
[root@localhost ~]# kafka-server-stop.sh
[root@localhost ~]# nohub kafka-server-start.sh /usr/local/kafka/config/server.properties &
剩下的配置基本保持默认即可,然后点击“Save”进行保存:
参数解释
Security Protocol :kafka安全认证机制
SASL Mechanism:SASL机制
SASL JAAS Confing:jaas.conf文件的client配置内容
保存成功后,点击“Go to cluster view”:
就可以查看到我们添加的这个集群信息,在“Cluster Summary”一栏中显示了该集群的Topic数量和Broker数量:
点击“Topics”的数字就可以进入到Topic的监控界面:
点击“Brokers”的数字就则是进入到Broker的监控界面:
Tips:这些指标的监控需要打开JMX
在Topic的监控界面中,点击一个具体的Topic可以进入到该Topic的监控页面,并且提供了对Topic的操作支持:
Topic的监控指标里也有与Broker一样的监控指标,只不过这里是针对Topic的,指标的含义都一样:
Kafka的安全措施:
值得一提的是通常情况下都不会给Kafka加安全措施,类似的其他中间件也是。因为通常我们都会将这些中间件部署在一个可信的网络里,例如与外网隔离的内部网络,并且有防火墙进行保护。
而且给Kafka加上SSL或SASL安全机制也会导致性能有所损耗,通常这个损耗在20~30%左右。但如果你的Kafka是允许在外网进行访问的话,那么就需要考虑增加安全机制了。
kafka-manager配置及配置安装Kerberos(CDH)认证
原文:https://www.cnblogs.com/mergy/p/14267127.html