首页 > 其他 > 详细

kafka-manager配置及配置安装Kerberos(CDH)认证

时间:2021-01-12 16:32:19      阅读:74      评论:0      收藏:0      [点我收藏+]

不进行认证配置安装: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

1.安装包地址

使用Git或者直接从Releases中下载,此处从下面的地址下载2.0.0.2版本:https://github.com/yahoo/kafka-manager/releases

注意上面地址下载下来的是源码包,需要进行编译,需要注意的是3.x版本需要基于JDK11环境,2.0.0.2及以下版本才兼容JDK1.8。

2.下载编译安装包

[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/

3.认证配置:

修改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

Kafka监控界面

配置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的监控界面:

技术分享图片
  • Partitions:Topic的Partition数量
  • Brokers:Topic的Broker数量
  • Replicas:Topic中Partition的副本数量
  • Under Replicated:Topic中的Partition副本处于同步失败或失效状态的比例,该指标过高则代表副本没有复制到足够的Broker上
  • Producer Message/Sec:生产者每秒投递的消息数量
  • Summed Recent Offsets:当前总计的消费偏移量
  • Brokers Spread:看作broker使用率,如kafka集群9个broker,某topic有7个partition,则broker spread: 7 / 9 = 77%
  • Brokers Skew:partition是否存在倾斜,如kafka集群9个broker,某topic有18个partition,正常每个broker应该2个partition。若其中有3个broker上的partition数>2,则broker skew: 3 / 9 = 33%
  • Brokers Leader Skew:leader partition是否存在倾斜,如kafka集群9个broker,某topic14个partition,则正常每个broker有2个leader partition。若其中一个broker有0个leader partition,一个有4个leader partition,则broker leader skew: (4 - 2) / 14 = 14%

点击“Brokers”的数字就则是进入到Broker的监控界面:

技术分享图片
  • Messages in /sec:每秒流入的消息数
  • Bytes in /sec:每秒流入的字节数
  • Bytes out /sec:每秒流出的字节数
  • Bytes rejected /sec:每秒拒绝的字节数
  • Failed fetch request /sec:每秒失败抓取数据请求数
  • Failed produce request /sec:每秒失败的生产数据请求数

Tips:这些指标的监控需要打开JMX

在Topic的监控界面中,点击一个具体的Topic可以进入到该Topic的监控页面,并且提供了对Topic的操作支持:

技术分享图片

Topic的监控指标里也有与Broker一样的监控指标,只不过这里是针对Topic的,指标的含义都一样:

技术分享图片

Kafka SSL签名库生成

Kafka的安全措施:

  • Kafka提供了SSL或SASL机制来保障集群安全
  • Kafka提供了Broker到zk连接的安全机制
  • Kafka支持Client的读写验证

值得一提的是通常情况下都不会给Kafka加安全措施,类似的其他中间件也是。因为通常我们都会将这些中间件部署在一个可信的网络里,例如与外网隔离的内部网络,并且有防火墙进行保护。

而且给Kafka加上SSL或SASL安全机制也会导致性能有所损耗,通常这个损耗在20~30%左右。但如果你的Kafka是允许在外网进行访问的话,那么就需要考虑增加安全机制了。

 

kafka-manager配置及配置安装Kerberos(CDH)认证

原文:https://www.cnblogs.com/mergy/p/14267127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!