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下的全部文件夾節點/文件節點都設置上權限。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM