“Apache Ranger使用Apache Solr存储审核日志,并提供通过审核日志进行的UI搜索。在安装RangerAdmin或任何Ranger组件插件之前,必须先安装和配置Solr。”
安装模式:
- Solr - Standalone
Solr 单节点易于安装,且对 Zookeeper 无依赖。如果是测试 Ranger或者非生产环境中,推荐该安装模式。 - SolrCloud
这是Ranger的首选设置。 SolrCloud是可伸缩的体系结构,可以运行单节点或多节点群集。它具有复制和分片等其他功能,这些功能对于高可用性(HA)和可伸缩性很有用。您需要根据群集大小计划部署。 - Self Install
如果安装了自己的Solr,则可以使用Ranger提供的schema.xml和托管模式在设置中创建集合
1. 有用的链接
在大规模环境中配置Apache Solr可能具有挑战性。如果您期望大量的审核日志,请查看以下链接:
- https://risdenk.github.io/2017/12/18/ambari-infra-solr-ranger.html
- https://community.hortonworks.com/articles/63853/solr-ttl-auto-purging-solr-documents-ranger-audits.html
请注意,如果您使用的是Apache Ambari,则Ambari会维护它自己的solr-config模板。因此,请确保还更新模板,否则,您的手动更改可能会被覆盖。
2. 前提
- JDK 1.7 or above. Apache Solr 5.2 or above
- Solr占用大量内存和CPU。如果您的生产系统具有大量访问请求,请确保运行Solr的服务器具有足够的内存,CPU和磁盘。
- 由于审核记录会急剧增长,因此计划在Solr将用于存储索引数据的卷中至少有1 TB的可用空间。
- Solr与32GB RAM配合良好。计划为Solr进程提供尽可能多的内存
- 最后,SolrCloud支持复制和分片。强烈建议将SolrCloud与至少两个在不同服务器上运行且已启用复制的Solr节点一起使用。
- 如果使用SolrCloud,则还需要安装和配置ZooKeeper。
3. 安装和配置步骤
- git clone https://github.com/apache/ranger.git
- cd security-admin/contrib/solr_for_audit_setup
- 编辑install.properties(请参阅后续部分中的说明)
- ./setup.sh
- 打开 $SOLR_RANGER_HOME/install_notes.txt 以获取更多说明
4. Solr 安装
您可以从 Apache Solr Downloads 下载Solr软件包。确保Solr版本为5.2或更高。您可能还允许Ranger脚本setup.sh为您自动下载,安装和配置Solr。如果要setup.sh安装Solr,请在install.properties中设置以下属性,然后从下一节中选择一个配置选项。
Property Name | Sample Values | Description |
---|---|---|
SOLR_INSTALL_FOLDER | /opt/solr | 您要安装Solr的位置。 |
SOLR_INSTALL | true | 如果将其设置为true,则setup.sh将下载Solr软件包并进行安装。 |
SOLR_DOWNLOAD_URL | http://apache.cs.utah.edu/lucene/solr/8.4.1/solr-8.4.1-src.tgz | 下载链接 |
5. 配置选项
您可以将Solr配置为 Standalone 或 SolrCloud 运行。如果要setup.sh配置为Standalone,请遵循本节 Standalone Configuration.。如果要为SolrCloud配置,请遵循本节 SolrCloud Configuration。如果要配置自己的Solr,请参阅本节 Self Install。
5.1 Configure Standalone Solr
修改install.properties的以下属性
Property Name | Sample Values | Description |
---|---|---|
SOLR_MAX_MEM | 2g | 这是分配给Solr的内存 |
SOLR_RANGER_PORT | 6083 | 您要Solr侦听的端口 |
SOLR_INSTALL_FOLDER | /opt/solr | Solr的安装位置 |
SOLR_RANGER_HOME | /opt/solr/ranger_audit_server | 这是与Ranger相关的配置和架构文件将被复制的位置 |
SOLR_RANGER_DATA_FOLDER | /opt/solr/ranger_audit_server/data | 这是您要在其中存储索引数据的文件夹 |
SOLR_LOG_FOLDER | /var/log/solr/ranger_audits | Solr日志文件夹 |
SOLR_USER | solr | 用于运行Solr的Linux用户 |
SOLR_DEPLOYMENT | standalone | standalone模式运行 |
JAVA_HOME | /usr/local/jdk1.8.0_161 | JDK位置 |
使用上述值更新install.properties后,运行以下命令:
./setup.sh
<logs ...>
########## Done ###################
Created file /opt/solr/ranger_audit_server/install_notes.txt with instructions to start and stop
###################################
setup.sh成功返回后,打开文件$ SOLR_RANGER_HOME / install_notes.txt以获取有关启动和停止Solr的说明。
在启动Solr for RangerAudit之后,Solr将收听$ {SOLR_PORT}。例如,通过从浏览器访问http:// $ {SOLR_HOST}:6083来检查Solr。
5.2 Configure SolrCloud
安装和配置SolrCloud需要几个额外的步骤。我们需要以下几点:
- 将Ranger Audit配置(包括schema.xml)添加到ZooKeeper
- 在Solr中创建集合。
首先,将install.properties修改为以下属性:
Property Name | Sample Values | Description |
---|---|---|
JAVA_HOME | /usr/local/jdk1.8.0_161 | JDK位置 |
SOLR_USER | solr | 用于运行Solr的Linux用户 |
SOLR_INSTALL_FOLDER | /opt/solr | Solr的安装位置 |
SOLR_RANGER_HOME | /opt/solr/ranger_audit_server | 这是与Ranger相关的配置和架构文件将被复制的位置 |
SOLR_RANGER_PORT | 6083 | 您要Solr侦听的端口 |
SOLR_DEPLOYMENT | solrcloud | solrcloud模式运行 |
SOLR_ZK | ${zk_host}:2181/ranger_audits | 建议提供子文件夹来创建与Ranger Audit相关的配置 |
SOLR_SHARDS | 1 | 如果您希望分发审核日志,则可以使用多个分片 |
SOLR_REPLICATION | 1 | 强烈建议至少设置2个节点并复制索引 |
SOLR_LOG_FOLDER | /var/log/solr/ranger_audits | Solr日志文件夹 |
SOLR_MAX_MEM | 2g | 分配给Solr的内存 |
使用上述值更新install.properties后,运行以下命令:
./setup.sh
<logs ...>
########## Done ###################
Created file /opt/solr/ranger_audit_server/install_notes.txt with instructions to start and stop
###################################
setup.sh成功返回后,打开文件$ SOLR_RANGER_HOME / install_notes.txt以执行其他步骤.
要配置SolrCloud,您需要执行以下操作:
- 使用./setup.sh脚本,在所有其他节点上安装和配置Solr for Ranger Audits(尚未启动)
- 执行 /opt/solr/ranger_audit_server/scripts/add_ranger_audits_conf_to_zk.sh (从安装了solr的任何节点仅一次)
- 在所有节点启动 Solr: /opt/solr/ranger_audit_server/scripts/start_solr.sh
- 创建Ranger 审计集合: /opt/solr/ranger_audit_server/scripts/create_ranger_audits_collection.sh (从安装了solr的任何节点仅一次)
确保您有足够的磁盘空间用于索引。建议至少有1TB的可用空间。
在启动Solr for RangerAudit之后,Solr将收听$ {SOLR_PORT}。例如,通过从浏览器访问http:// $ {SOLR_HOST}:6083来检查Solr。
5.3 Self Install
如果您足够智慧,那么可以自定义安装Solr并对其进行配置。软件包中的conf文件夹包含参考solrconflig.xml和schema.xml。
cd ranger/security-admin/contrib/solr_for_audit_setup
$SOLR_INSTALL_HOME/bin/solr create_collection -c ranger_audits -d conf -shards 1 -replicationFactor 1
6. 配置Ranger Admin和Ranger插件
Ranger Admin和Ranger插件需要URL才能收集Solr。检查install_notes.txt以获取适当的值。示例URL是:
http://${SOLR_HOST}:6083/solr/ranger_audits (替换 ${SOLR_HOST} solr 安装的节点。
对于Ranger Admin,在install.properties中配置以下属性:
#Source for Audit DB
# * audit_db is solr or db
audit_store=solr
# * audit_solr_url URL to Solr. E.g. http://<solr_host>:6083/solr/ranger_audits
audit_solr_urls=http://localhost:6083/solr/ranger_audits
对于所有插件,在install.properties中配置以下属性
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://localhost:6083/solr/ranger_audits
(replace localhost with the Solr host)
7. 附录
Sample Ranger Admin UI 截图