Kafka安全--(三).查询消费者组状态

3.查询消费者组状态

用admin用户创建对应的JAAS文件acl_admin_jaas.conf

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

拷贝一份新的kafka-consumer-groups.sh,修改文件后保存退出。

cp kafka-consumer-groups.sh acl-kafka-consumer-groups.sh
# 把文件中的这一行
exec $(dirname $0)/kafka-run-class.sh kafka.admin.ConsumerGroupCommand "$@"

# 修改为
exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/opt/kafka/config/acl_admin_jaas.conf kafka.admin.ConsumerGroupCommand "$@"

同时也要设置以下两个参数,将期保存到bin/admin_sasl.config文件中:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

然后运行acl-kafka-consumer-groups.sh脚本查询消费者组的消费进度:

[root@kafka01 kafka]# bin/acl-kafka-consumer-groups.sh --bootstrap-server kafka01:9092 --group reader-group --describe --command-config bin/admin_sasl.config 

GROUP           TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                                  HOST            CLIENT-ID
reader-group    first           0          8               8               0               consumer-reader-group-1-38c4bf8b-2a95-49e4-addd-572c8b25a3be /10.10.86.101   consumer-reader-group-1

使用go客户端操作:

func TestConsumerGroup(t *testing.T) {

	config := sarama.NewConfig()
	config.Consumer.Offsets.AutoCommit.Enable = true
	config.Net.SASL.Enable = true
	config.Net.SASL.User = "admin"
	config.Net.SASL.Password = "admin"

	admin, _ := sarama.NewClusterAdmin(addrs, config)
	result, err := admin.DescribeConsumerGroups([]string{"reader-group"})
	if err != nil {
		t.Fatal(err)
	}

	for _, v := range result {
		fmt.Println(v.GroupId, v.Members, v.State, v.Protocol, v.ProtocolType, v.Err)
	}

}
ACL相关操作

在配置好SASL后,启动Zookeeper集群和Kafka集群之后,就可以使用kafka-acls.sh脚本来操作ACL机制。

(1)查看:在kafka-acls.sh脚本中传入list参数来查看ACL授权新

[hadoop@dn1 bin]$ kafka-acls.sh --list --authorizer-properties zookeeper.connect=kafka01:2181

(2)创建:创建待授权主题之前,在kafka-acls.sh脚本中指定JAAS文件路径,然后在执行创建操作

[hadoop@dn1 bin]$ kafka-topics.sh --create --zookeeper dn1:2181 --replication-factor 1 --partitions 1 --topic kafka_acl_topic

(3)生产者授权:对生产者执行授权操作

[hadoop@dn1 ~]$ kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=dn1:2181 --add --allow-principalUser:producer --operation Write --topic kafka_acl_topic

(4)消费者授权:对生产者执行授权后,通过消费者来进行验证

[hadoop@dn1 ~]$ kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=dn1:2181 --add --allow-principalUser:consumer --operation Read --topic kafka_acl_topic

(5)删除:通过remove参数来回收相关权限

[hadoop@dn1 bin]$ kafka-acls.sh --authorizer-properties zookeeper.connect=dn1:2181 --remove --allow-principal User:producer --operation Write --topic kafka_acl_topic3

(6)消费者组授权

kafkabin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=kafka01:2181 --add --allow-principal User:reader --operation Read --group reader-group1

注意:开启acl后,消费者消费的topic和消费者组都需要授权才能访问。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值