This is an automated email from the ASF dual-hosted git repository.
pradeep pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 63df056 RANGER-2854: Make audit bootstrap property configurable
63df056 is described below
commit 63df056c754a2889ee4c6fc17d22529ca0cb7f6d
Author: pradeep <[email protected]>
AuthorDate: Thu Jun 11 17:03:10 2020 +0530
RANGER-2854: Make audit bootstrap property configurable
---
.../ranger/server/tomcat/EmbeddedServer.java | 32 ++++++++++++++++------
security-admin/scripts/install.properties | 5 +++-
security-admin/scripts/setup.sh | 17 +++++++++++-
.../conf.dist/ranger-admin-default-site.xml | 10 +++++--
.../main/resources/conf.dist/ranger-admin-site.xml | 9 ++++++
5 files changed, 60 insertions(+), 13 deletions(-)
diff --git
a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
index e9da9cd..9df95fb 100644
---
a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
+++
b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
@@ -64,7 +64,11 @@ public class EmbeddedServer {
private static final String AUTH_TYPE_KERBEROS = "kerberos";
private static final String AUTHENTICATION_TYPE =
"hadoop.security.authentication";
private static final String ADMIN_USER_PRINCIPAL =
"ranger.admin.kerberos.principal";
+ private static final String AUDIT_SOURCE_TYPE =
"ranger.audit.source.type";
+ private static final String AUDIT_SOURCE_SOLR = "solr";
+ private static final String AUDIT_SOURCE_ES = "elasticsearch";
private static final String SOLR_BOOTSTRAP_ENABLED =
"ranger.audit.solr.bootstrap.enabled";
+ private static final String ES_BOOTSTRAP_ENABLED =
"ranger.audit.elasticsearch.bootstrap.enabled";
private static final String ADMIN_USER_KEYTAB =
"ranger.admin.kerberos.keytab";
private static final String ADMIN_NAME_RULES =
"hadoop.security.auth_to_local";
@@ -292,17 +296,29 @@ public class EmbeddedServer {
String servername =
EmbeddedServerUtil.getConfig("servername");
LOG.info("Server Name : " + servername);
if (servername.equalsIgnoreCase(ADMIN_SERVER_NAME)) {
- boolean solrBootstrapEnabled =
Boolean.valueOf(EmbeddedServerUtil.getConfig(SOLR_BOOTSTRAP_ENABLED, "true"));
- if (solrBootstrapEnabled) {
- try {
- SolrCollectionBootstrapper
solrSetup = new SolrCollectionBootstrapper();
- solrSetup.start();
- } catch (Exception e) {
- LOG.severe("Error while setting
solr " + e);
+ String auditSourceType =
EmbeddedServerUtil.getConfig(AUDIT_SOURCE_TYPE, "db");
+ if
(AUDIT_SOURCE_SOLR.equalsIgnoreCase(auditSourceType)) {
+ boolean solrBootstrapEnabled =
Boolean.valueOf(EmbeddedServerUtil.getConfig(SOLR_BOOTSTRAP_ENABLED, "true"));
+ if (solrBootstrapEnabled) {
+ try {
+
SolrCollectionBootstrapper solrSetup = new SolrCollectionBootstrapper();
+ solrSetup.start();
+ } catch (Exception e) {
+ LOG.severe("Error while
setting solr " + e);
+ }
+ }
+ } else if
(AUDIT_SOURCE_ES.equalsIgnoreCase(auditSourceType)) {
+ boolean esBootstrapEnabled =
Boolean.valueOf(EmbeddedServerUtil.getConfig(ES_BOOTSTRAP_ENABLED, "true"));
+ if (esBootstrapEnabled) {
+ try {
+
ElasticSearchIndexBootStrapper esSchemaSetup = new
ElasticSearchIndexBootStrapper();
+ esSchemaSetup.start();
+ } catch (Exception e) {
+ LOG.severe("Error while
setting elasticsearch " + e);
+ }
}
}
}
-
server.start();
server.getServer().await();
shutdownServer();
diff --git a/security-admin/scripts/install.properties
b/security-admin/scripts/install.properties
index cb79d12..a18bcd5 100644
--- a/security-admin/scripts/install.properties
+++ b/security-admin/scripts/install.properties
@@ -87,6 +87,9 @@ audit_elasticsearch_port=
audit_elasticsearch_protocol=
audit_elasticsearch_user=
audit_elasticsearch_password=
+audit_elasticsearch_index=
+audit_elasticsearch_bootstrap_enabled=true
+
# * audit_solr_url URL to Solr. E.g. http://<solr_host>:6083/solr/ranger_audits
audit_solr_urls=
@@ -101,7 +104,7 @@ audit_solr_no_shards=1
audit_solr_no_replica=1
audit_solr_max_shards_per_node=1
audit_solr_acl_user_list_sasl=solr,infra-solr
-
+audit_solr_bootstrap_enabled=true
#------------------------- DB CONFIG - END ----------------------------------
diff --git a/security-admin/scripts/setup.sh b/security-admin/scripts/setup.sh
index 61d351d..949c242 100755
--- a/security-admin/scripts/setup.sh
+++ b/security-admin/scripts/setup.sh
@@ -76,6 +76,8 @@ audit_elasticsearch_urls=$(get_prop
'audit_elasticsearch_urls' $PROPFILE)
audit_elasticsearch_port=$(get_prop 'audit_elasticsearch_port' $PROPFILE)
audit_elasticsearch_user=$(get_prop 'audit_elasticsearch_user' $PROPFILE)
audit_elasticsearch_password=$(get_prop 'audit_elasticsearch_password'
$PROPFILE)
+audit_elasticsearch_index=$(get_prop 'audit_elasticsearch_index' $PROPFILE)
+audit_elasticsearch_bootstrap_enabled=$(get_prop
'audit_elasticsearch_bootstrap_enabled' $PROPFILE)
audit_solr_urls=$(get_prop 'audit_solr_urls' $PROPFILE)
audit_solr_user=$(get_prop 'audit_solr_user' $PROPFILE)
audit_solr_password=$(get_prop 'audit_solr_password' $PROPFILE)
@@ -154,7 +156,7 @@ audit_solr_no_shards=$(get_prop 'audit_solr_no_shards'
$PROPFILE)
audit_solr_no_replica=$(get_prop 'audit_solr_no_replica' $PROPFILE)
audit_solr_max_shards_per_node=$(get_prop 'audit_solr_max_shards_per_node'
$PROPFILE)
audit_solr_acl_user_list_sasl=$(get_prop 'audit_solr_acl_user_list_sasl'
$PROPFILE)
-
+audit_solr_bootstrap_enabled=$(get_prop 'audit_solr_bootstrap_enabled'
$PROPFILE)
DB_HOST="${db_host}"
@@ -711,6 +713,10 @@ update_properties() {
propertyName=ranger.audit.solr.urls
newPropertyValue=${audit_solr_urls}
updatePropertyToFilePy $propertyName $newPropertyValue
$to_file_ranger
+
+ propertyName=ranger.audit.solr.bootstrap.enabled
+ newPropertyValue=${audit_solr_bootstrap_enabled}
+ updatePropertyToFilePy $propertyName $newPropertyValue
$to_file_ranger
fi
if [ "${audit_store}" == "elasticsearch" ]
@@ -730,6 +736,15 @@ update_properties() {
propertyName=ranger.audit.elasticsearch.password
newPropertyValue=${audit_elasticsearch_password}
updatePropertyToFilePy $propertyName $newPropertyValue
$to_file_ranger
+
+ propertyName=ranger.audit.elasticsearch.index
+ newPropertyValue=${audit_elasticsearch_index}
+ updatePropertyToFilePy $propertyName $newPropertyValue
$to_file_ranger
+
+ propertyName=ranger.audit.elasticsearch.bootstrap.enabled
+ newPropertyValue=${audit_elasticsearch_bootstrap_enabled}
+ updatePropertyToFilePy $propertyName $newPropertyValue
$to_file_ranger
+
fi
if [ "${audit_store}" != "" ]
diff --git
a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
index fffd950..fcd4bd0 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
@@ -466,9 +466,13 @@
<description>Time in milliseconds</description>
</property>
<property>
- <name>ranger.audit.solr.bootstrap.enabled</name>
- <value>true</value>
- </property>
+ <name>ranger.audit.solr.bootstrap.enabled</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>ranger.audit.elasticsearch.bootstrap.enabled</name>
+ <value>true</value>
+ </property>
<property>
<name>ranger.audit.solr.max.retry</name>
<value>30</value>
diff --git a/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
b/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
index 5dc14ab..c410984 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
@@ -66,6 +66,15 @@
<description></description>
</property>
<property>
+ <name>ranger.audit.elasticsearch.index</name>
+ <value></value>
+ <description></description>
+ </property>
+ <property>
+ <name>ranger.audit.elasticsearch.bootstrap.enabled</name>
+ <value>true</value>
+ </property>
+ <property>
<name>ranger.audit.solr.urls</name>
<value>http://##solr_host##:6083/solr/ranger_audits</value>
<description></description>