zoukankan      html  css  js  c++  java
  • Solr Zookeeper ACL权限配置

    首先注意:在配置ACL的时候,请关闭solr运行实例!!否则可能对集群造成不可恢复的损坏

    开始:

    1.修改solr.xml,在solrCloud节点添加,告诉solr要使用的provider:

        <!--zkACL-->
        <str name="zkCredientialsProvider">org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider</str>
        <str name="zkACLProvider">org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider</str>

    2.给zkcli.sh添加两个变量,并把变量加到PATH变量中,这样使用zkcli.sh访问zk的时候,就提供了provider和相关用户名密码

    添加的内容:

    #ZK_ACLS
    SOLR_ZK_CREDS_AND_ACLS="-DzkDigestUsername=admin-user -DzkDigestPassword=admin-password -DzkDigestReadonlyUsername=readonly-user -DzkDigestReadonlyPassword=readonly-password"
    SOLR_ZK_PROVIDERS="-DzkACLProvider=org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider -DzkCredentialsProvider=org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider"

    修改的内容:

    3.在bin/solr.in.sh底部添加如下用户名密码的配置,目的是为了让bin/solr 脚本能够有访问zk配置文件的权限(也就是说让solr的web界面里能够显示zk配置文件)

    #ZK ACLS
    SOLR_ZK_CREDS_AND_ACLS="-DzkDigestUsername=admin-user -DzkDigestPassword=admin-password -DzkDigestReadonlyUsername=readonly-user -DzkDigestReadonlyPassword=readonly-password"
    SOLR_OPTS="$SOLR_OPTS $SOLR_ZK_CREDS_AND_ACLS"

    好了,配置完成。

    下面我们来测试一下,

    假设我们原本的zk里面文件夹节点/collections,我们来给它添加权限,执行:

    sh zkcli.sh -zkhost 10.172.85.105 -cmd updateacls /collections

    执行完成后我们进入zk客户端命令行,执行:

    ls /collections,结果如下:

    证明我们成功给/collections这个节点添加了权限。

    我们来查看一下/collections这个节点的权限设置:

    如图中所示,代表有两个用户admin-user和readonly-user拥有这个节点的权限,admin-user的权限是cdrwa,readonly-user的权限是r。

    我们授予权限admin-user,然后再查看,这时候就可以查看了:

    接下来我们启动solr,在solr admin的管理页面里查看zk的配置文件:

    如图,查看成功,这说明之前我们配置的solr.xml和solr.in.sh成功的在solr启动时给予solr集群访问zk的权限。

    备注:

    1.上述我们是手动给/collections添加了权限,对于solr自动创建的文件,如果是在我们配置ACL之前已经生成的文件,都需要我们手动添加权限,对于配置ACL之后生成的文件,全部会自动添加solr.in.sh中配置的权限。

    2.zk的权限设置是非继承的,也就是说如果A文件夹节点里有子文件夹节点B,我们在zk的客户端命令行中给A设置权限,那么B不会受影响,任意用户都可以访问B。然而上述我们用zkcli.sh的updateacls命令给/collections目录节点设置权限时,实际上solr内部的org.apache.solr.cloud.ZkCLI 会递归地将collections下的全部文件夹节点/文件节点都设置上权限。

  • 相关阅读:
    PTA考试几点注意事项
    网易云信在融合通信场景下的探索和实践之 SIPGateway 服务架构
    破旧立新,精准测试之道
    从 0 到 1 构建实时音视频引擎
    云信小课堂|如何实现音视频通话
    Python 回调函数实现异步处理
    数据结构--链表--约瑟夫问题
    Python 轻松实现ORM
    leetcode 递归编程技巧-链表算法题
    Tornado 初识
  • 原文地址:https://www.cnblogs.com/sheeva/p/5489248.html
Copyright © 2011-2022 走看看