You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2018/11/23 19:51:37 UTC
[ambari-logsearch] branch master updated: AMBARI-24949. Log Search:
add Solr node discovery + small cleanups (#40)
This is an automated email from the ASF dual-hosted git repository.
oleewere pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ambari-logsearch.git
The following commit(s) were added to refs/heads/master by this push:
new 664a166 AMBARI-24949. Log Search: add Solr node discovery + small cleanups (#40)
664a166 is described below
commit 664a1663952e574d098a2bac263fc806c8db51e4
Author: Olivér Szabó <ol...@gmail.com>
AuthorDate: Fri Nov 23 20:51:34 2018 +0100
AMBARI-24949. Log Search: add Solr node discovery + small cleanups (#40)
* AMBARI-24949. Log Search: add Solr node discovery + small cleanups
* Review fix
* Make sure do not quit from the loop by an exception
---
.../logfeeder/common/LogFeederConstants.java | 3 +
.../common/LogFeederSolrClientFactory.java | 129 +++++++++++++++++++--
.../ambari/logfeeder/conf/ApplicationConfig.java | 5 +-
.../ambari/logfeeder/conf/LogFeederProps.java | 36 ++++++
.../apache/ambari/logfeeder/output/OutputSolr.java | 5 +-
.../common/LogFeederSolrClientFactoryTest.java | 120 +++++++++++++++++++
.../logsearch/conf/LogSearchConfigApiConfig.java | 2 +-
.../src/main/resources/logsearch.properties | 8 +-
docker/test-config/logsearch/logsearch.properties | 8 +-
.../conf/logsearch.properties | 8 +-
10 files changed, 297 insertions(+), 27 deletions(-)
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederConstants.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederConstants.java
index 2a698a6..62c0533 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederConstants.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederConstants.java
@@ -102,8 +102,11 @@ public class LogFeederConstants {
public static final String MONITOR_SOLR_FILTER_STORAGE_PROPERTY = "logfeeder.configs.filter.solr.monitor.enabled";
public static final boolean MONITOR_SOLR_FILTER_STORAGE_DEFAULT = true;
+ public static final String MONITOR_SOLR_FILTER_INTERVAL_PROPERTY = "logfeeder.configs.filter.solr.monitor.interval";
+
public static final String SOLR_ZK_CONNECTION_STRING = "logfeeder.solr.zk_connect_string";
public static final String SOLR_URLS = "logfeeder.solr.urls";
+ public static final String SOLR_CLOUD_DISCOVER = "logfeeder.solr.cloud.client.discover";
public static final String SOLR_METADATA_COLLECTION = "logfeeder.solr.metadata.collection";
public static final String CLOUD_STORAGE_MODE = "logfeeder.cloud.storage.mode";
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactory.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactory.java
index dec3007..30481aa 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactory.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactory.java
@@ -18,12 +18,23 @@
*/
package org.apache.ambari.logfeeder.common;
+import com.google.common.annotations.VisibleForTesting;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
+import org.apache.solr.common.cloud.ClusterState;
+import org.apache.solr.common.cloud.DocCollection;
+import org.apache.solr.common.cloud.Replica;
+import org.apache.solr.common.cloud.ZkStateReader;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
/**
* Factory for creating specific Solr clients based on provided configurations (simple / LB or cloud Solr client)
@@ -38,32 +49,132 @@ public class LogFeederSolrClientFactory {
* @param zkConnectionString zookeeper connection string, e.g.: localhost1:2181,localhost2:2181/solr
* @param solrUrls list of solr urls
* @param collection name of the Solr collection
+ * @param discover use cloud solr client to discover solr nodes, then uses LB client
* @return created client
*/
- public SolrClient createSolrClient(String zkConnectionString, String[] solrUrls, String collection) {
+ public SolrClient createSolrClient(String zkConnectionString, String[] solrUrls, String collection, boolean discover) {
logger.info("Creating solr client ...");
logger.info("Using collection=" + collection);
- if (solrUrls != null && solrUrls.length > 0) {
+ if (discover && zkConnectionString.length() > 0) {
+ final CloudSolrClient discoverNodesClient = createSolrCloudClient(zkConnectionString, collection);
+ return createLBClientsWithDiscoverNodes(discoverNodesClient, collection);
+ }
+ else if (solrUrls != null && solrUrls.length > 0) {
logger.info("Using lbHttpSolrClient with urls: {}",
StringUtils.join(appendTo("/" + collection, solrUrls), ","));
LBHttpSolrClient.Builder builder = new LBHttpSolrClient.Builder();
builder.withBaseSolrUrls(solrUrls);
return builder.build();
} else {
- logger.info("Using zookeepr. zkConnectString=" + zkConnectionString);
- CloudSolrClient.Builder builder = new CloudSolrClient.Builder();
- builder.withZkHost(zkConnectionString);
- CloudSolrClient solrClient = builder.build();
- solrClient.setDefaultCollection(collection);
- return solrClient;
+ return createSolrCloudClient(zkConnectionString, collection);
+ }
+ }
+
+ @VisibleForTesting
+ ZkConnection createZKConnection(String zkConnectionString) {
+ String split[] = zkConnectionString.split("/", 2);
+ String zkChroot = null;
+ final List<String> zkHosts;
+ if (split.length == 1) {
+ zkHosts = Arrays.asList(split[0].split(","));
+ } else {
+ zkHosts = Arrays.asList(split[0].split(","));
+ zkChroot = ("/" + split[1]).replaceAll("/+", "/");
+ if (zkChroot.endsWith("/")) {
+ zkChroot = zkChroot.substring(0, zkChroot.lastIndexOf("/"));
+ }
}
+ return new ZkConnection(zkHosts, zkChroot);
}
- private String[] appendTo(String toAppend, String... appendees) {
+ @VisibleForTesting
+ String[] appendTo(String toAppend, String... appendees) {
for (int i = 0; i < appendees.length; i++) {
appendees[i] = appendees[i] + toAppend;
}
return appendees;
}
+ private CloudSolrClient createSolrCloudClient(String zkConnectionString, String collection) {
+ logger.info("Using zookeepr. zkConnectString=" + zkConnectionString);
+ final ZkConnection zkConnection = createZKConnection(zkConnectionString);
+ final CloudSolrClient.Builder builder =
+ new CloudSolrClient.Builder(zkConnection.getZkHosts(), Optional.ofNullable(zkConnection.getZkChroot()));
+ CloudSolrClient solrClient = builder.build();
+ solrClient.setDefaultCollection(collection);
+ return solrClient;
+ }
+
+ private LBHttpSolrClient createLBClientsWithDiscoverNodes(CloudSolrClient discoverClient, String collection) {
+ final List<String> baseUrls = waitUntilAvailableBaseUrls(discoverClient, collection);
+ final String[] finalBaseUrls = appendTo("/" + collection, baseUrls.toArray(new String[0]));
+ logger.info("Following URLs will be used for LB Solr client (collection: '{}'): {}", collection, StringUtils.join(finalBaseUrls));
+ return new LBHttpSolrClient.Builder()
+ .withBaseSolrUrls(finalBaseUrls)
+ .build();
+ }
+
+ private List<String> waitUntilAvailableBaseUrls(CloudSolrClient discoverClient, String collection) {
+ final List<String> baseUrls = new ArrayList<>();
+ while(true) {
+ try {
+ ZkStateReader zkStateReader = discoverClient.getZkStateReader();
+ ClusterState clusterState = zkStateReader.getClusterState();
+ if (clusterState != null) {
+ DocCollection docCollection = clusterState.getCollection(collection);
+ if (docCollection != null) {
+ List<Replica> replicas = docCollection.getReplicas();
+ if (replicas != null && !replicas.isEmpty()) {
+ for (Replica replica : replicas) {
+ String baseUrl = replica.getBaseUrl();
+ if (!baseUrls.contains(baseUrl)) {
+ baseUrls.add(baseUrl);
+ }
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error during getting Solr node data by discovery solr loud client", e);
+ }
+ if (baseUrls.isEmpty()) {
+ logger.info("Not found any base urls yet for '{}' collection. Retrying ...", collection);
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ logger.info("Discovery solr cloud client was interrupted", e);
+ Thread.currentThread().interrupt();
+ break;
+ }
+ } else {
+ try {
+ logger.info("Closing discovery solr client for '{}' collection", collection);
+ discoverClient.close();
+ } catch (IOException e) {
+ logger.error("Error during closing solr cloud client for discovering hosts", e);
+ }
+ break;
+ }
+ }
+ return baseUrls;
+ }
+
+ final class ZkConnection {
+ private final List<String> zkHosts;
+ private final String zkChroot;
+
+ ZkConnection(List<String> zkHosts, String zkChroot) {
+ this.zkHosts = zkHosts;
+ this.zkChroot = zkChroot;
+ }
+
+ List<String> getZkHosts() {
+ return zkHosts;
+ }
+
+ String getZkChroot() {
+ return zkChroot;
+ }
+ }
+
}
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/ApplicationConfig.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/ApplicationConfig.java
index 275ce16..97c3f87 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/ApplicationConfig.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/ApplicationConfig.java
@@ -136,7 +136,8 @@ public class ApplicationConfig {
public LogLevelFilterManager logLevelFilterManager() throws Exception {
if (logFeederProps.isSolrFilterStorage()) {
SolrClient solrClient = new LogFeederSolrClientFactory().createSolrClient(
- logFeederProps.getSolrZkConnectString(), logFeederProps.getSolrUrls(), logFeederProps.getSolrMetadataCollection());
+ logFeederProps.getSolrZkConnectString(), logFeederProps.getSolrUrls(), logFeederProps.getSolrMetadataCollection(),
+ logFeederProps.isSolrCloudDiscover());
return new LogLevelFilterManagerSolr(solrClient);
} else if (logFeederProps.isUseLocalConfigs() && logFeederProps.isZkFilterStorage()) {
final HashMap<String, String> map = new HashMap<>();
@@ -156,7 +157,7 @@ public class ApplicationConfig {
if (logFeederProps.isSolrFilterStorage() && logFeederProps.isSolrFilterMonitor()) {
LogLevelFilterUpdater logLevelFilterUpdater = new LogLevelFilterUpdaterSolr(
"filter-updater-solr", logLevelFilterHandler(),
- 30, (LogLevelFilterManagerSolr) logLevelFilterManager(), logFeederProps.getClusterName());
+ logFeederProps.getSolrFilterMonitorInterval(), (LogLevelFilterManagerSolr) logLevelFilterManager(), logFeederProps.getClusterName());
logLevelFilterUpdater.start();
return logLevelFilterUpdater;
}
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/LogFeederProps.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/LogFeederProps.java
index 1e6be21..3be62ae 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/LogFeederProps.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/conf/LogFeederProps.java
@@ -194,6 +194,16 @@ public class LogFeederProps implements LogFeederProperties {
public boolean solrFilterMonitor;
@LogSearchPropertyDescription(
+ name = LogFeederConstants.MONITOR_SOLR_FILTER_INTERVAL_PROPERTY,
+ description = "Time interval (in seconds) between monitoring input config filter definitions from Solr.",
+ examples = {"60"},
+ defaultValue = "30",
+ sources = {LogFeederConstants.LOGFEEDER_PROPERTIES_FILE}
+ )
+ @Value("${" + LogFeederConstants.MONITOR_SOLR_FILTER_INTERVAL_PROPERTY + ":30}")
+ public Integer solrFilterMonitorInterval;
+
+ @LogSearchPropertyDescription(
name = LogFeederConstants.SOLR_ZK_CONNECTION_STRING,
description = "Zookeeper connection string for Solr.",
examples = {"localhost1:2181,localhost2:2181/mysolr_znode"},
@@ -212,6 +222,16 @@ public class LogFeederProps implements LogFeederProperties {
private String solrUrlsStr;
@LogSearchPropertyDescription(
+ name = LogFeederConstants.SOLR_CLOUD_DISCOVER,
+ description = "On startup, with a Solr Cloud client, the Solr nodes will be discovered, then LBHttpClient will be built from that.",
+ examples = {"true"},
+ sources = {LogFeederConstants.LOGFEEDER_PROPERTIES_FILE},
+ defaultValue = "false"
+ )
+ @Value("${" + LogFeederConstants.SOLR_CLOUD_DISCOVER + ":false}")
+ private boolean solrCloudDiscover;
+
+ @LogSearchPropertyDescription(
name = LogFeederConstants.SOLR_METADATA_COLLECTION,
description = "Metadata collection name that could contain log level filters or input configurations.",
examples = {"logsearch_metadata"},
@@ -446,6 +466,14 @@ public class LogFeederProps implements LogFeederProperties {
this.solrFilterMonitor = solrFilterMonitor;
}
+ public Integer getSolrFilterMonitorInterval() {
+ return solrFilterMonitorInterval;
+ }
+
+ public void setSolrFilterMonitorInterval(Integer solrFilterMonitorInterval) {
+ this.solrFilterMonitorInterval = solrFilterMonitorInterval;
+ }
+
public String getSolrUrlsStr() {
return this.solrUrlsStr;
}
@@ -566,6 +594,14 @@ public class LogFeederProps implements LogFeederProperties {
this.solrMetadataCollection = solrMetadataCollection;
}
+ public boolean isSolrCloudDiscover() {
+ return solrCloudDiscover;
+ }
+
+ public void setSolrCloudDiscover(boolean solrCloudDiscover) {
+ this.solrCloudDiscover = solrCloudDiscover;
+ }
+
public String[] getSolrUrls() {
if (StringUtils.isNotBlank(this.solrUrlsStr)) {
return this.solrUrlsStr.split(",");
diff --git a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java
index 90d13ef..8c76e54 100644
--- a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java
+++ b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java
@@ -111,6 +111,7 @@ public class OutputSolr extends Output<LogFeederProps, InputMarker> {
private boolean implicitRouting = false;
private int lastSlotByMin = -1;
private boolean skipLogtime = false;
+ private boolean discoverSolrNodes = false;
private List<String> idFields = new ArrayList<>();
private BlockingQueue<OutputData> outgoingBuffer = null;
@@ -178,6 +179,8 @@ public class OutputSolr extends Output<LogFeederProps, InputMarker> {
throw new IllegalStateException("Collection property is mandatory");
}
+ discoverSolrNodes = logFeederProps.isSolrCloudDiscover();
+
maxBufferSize = getIntValue("flush_size", DEFAULT_MAX_BUFFER_SIZE);
if (maxBufferSize < 1) {
logger.warn("maxBufferSize is less than 1. Making it 1");
@@ -219,7 +222,7 @@ public class OutputSolr extends Output<LogFeederProps, InputMarker> {
}
private SolrClient getSolrClient(int count) throws Exception, MalformedURLException {
- SolrClient solrClient = new LogFeederSolrClientFactory().createSolrClient(zkConnectString, solrUrls, collection);
+ SolrClient solrClient = new LogFeederSolrClientFactory().createSolrClient(zkConnectString, solrUrls, collection, discoverSolrNodes);
pingSolr(count, solrClient);
return solrClient;
}
diff --git a/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactoryTest.java b/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactoryTest.java
new file mode 100644
index 0000000..21de380
--- /dev/null
+++ b/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/common/LogFeederSolrClientFactoryTest.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ambari.logfeeder.common;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Optional;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class LogFeederSolrClientFactoryTest {
+
+ private LogFeederSolrClientFactory underTest;
+
+ @Before
+ public void setUp() {
+ underTest = new LogFeederSolrClientFactory();
+ }
+
+ @Test
+ public void testCreateZKConnection() {
+ // GIVEN
+ String input = "localhost:2181/solr";
+ // WHEN
+ LogFeederSolrClientFactory.ZkConnection result = underTest.createZKConnection(input);
+ // THEN
+ assertEquals("/solr", Optional.ofNullable(result.getZkChroot()).get());
+ assertEquals("localhost:2181", result.getZkHosts().get(0));
+ }
+
+ @Test
+ public void testCreateZKConnectionWithoutChroot() {
+ // GIVEN
+ String input = "localhost:2181";
+ // WHEN
+ LogFeederSolrClientFactory.ZkConnection result = underTest.createZKConnection(input);
+ // THEN
+ assertFalse(Optional.ofNullable(result.getZkChroot()).isPresent());
+ assertEquals(input, result.getZkHosts().get(0));
+ }
+
+ @Test
+ public void testCreateZKConnectionWithMultipleHosts() {
+ // GIVEN
+ String input = "localhost1:2181,localhost2:2181";
+ // WHEN
+ LogFeederSolrClientFactory.ZkConnection result = underTest.createZKConnection(input);
+ // THEN
+ assertFalse(Optional.ofNullable(result.getZkChroot()).isPresent());
+ assertEquals(2, result.getZkHosts().size());
+ assertTrue(result.getZkHosts().contains("localhost1:2181"));
+ assertTrue(result.getZkHosts().contains("localhost2:2181"));
+ }
+
+ @Test
+ public void testCreateZKConnectionWithMultipleHostsAndChroot() {
+ // GIVEN
+ String input = "localhost1:2181,localhost2:2181/solr";
+ // WHEN
+ LogFeederSolrClientFactory.ZkConnection result = underTest.createZKConnection(input);
+ // THEN
+ assertEquals("/solr", result.getZkChroot());
+ assertEquals(2, result.getZkHosts().size());
+ assertTrue(result.getZkHosts().contains("localhost1:2181"));
+ assertTrue(result.getZkHosts().contains("localhost2:2181"));
+ }
+
+ @Test
+ public void testCreateZKConnectionInvalidSlashes() {
+ // GIVEN
+ String input = "localhost:2181//solr/";
+ // WHEN
+ LogFeederSolrClientFactory.ZkConnection result = underTest.createZKConnection(input);
+ // THEN
+ assertEquals("/solr", Optional.ofNullable(result.getZkChroot()).get());
+ assertEquals("localhost:2181", result.getZkHosts().get(0));
+ }
+
+ @Test
+ public void testCreateZKConnectionInvalidSlashesMultipleTimes() {
+ // GIVEN
+ String input = "localhost:2181//solr/my//root";
+ // WHEN
+ LogFeederSolrClientFactory.ZkConnection result = underTest.createZKConnection(input);
+ // THEN
+ assertEquals("/solr/my/root", Optional.ofNullable(result.getZkChroot()).get());
+ assertEquals("localhost:2181", result.getZkHosts().get(0));
+ }
+
+ @Test
+ public void testAppendTo() {
+ // GIVEN
+ String toAppend = "/mycollection";
+ String[] appendees = new String[]{"http://solr1:8886", "http://solr2:8886"};
+ // WHEN
+ String[] result = underTest.appendTo(toAppend, appendees);
+ // THEN
+ assertEquals("http://solr1:8886/mycollection", result[0]);
+ assertEquals("http://solr2:8886/mycollection", result[1]);
+ }
+}
diff --git a/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchConfigApiConfig.java b/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchConfigApiConfig.java
index 2765ebd..3eb9291 100644
--- a/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchConfigApiConfig.java
+++ b/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchConfigApiConfig.java
@@ -50,7 +50,7 @@ public class LogSearchConfigApiConfig {
public boolean solrFilterStorage;
@LogSearchPropertyDescription(
- name = "logsearch.config.api.filter.zk-only.enabled",
+ name = "logsearch.config.api.filter.zk.enabled",
description = "Use zookeeper as a log level filter storage",
examples = {"true"},
defaultValue = "false",
diff --git a/ambari-logsearch-server/src/main/resources/logsearch.properties b/ambari-logsearch-server/src/main/resources/logsearch.properties
index bea6172..6dc3c3f 100755
--- a/ambari-logsearch-server/src/main/resources/logsearch.properties
+++ b/ambari-logsearch-server/src/main/resources/logsearch.properties
@@ -14,19 +14,17 @@
# limitations under the License.
logsearch.solr.zk_connect_string=localhost:2181
logsearch.solr.collection.service.logs=hadoop_logs
-logsearch.service.logs.split.interval.mins=15
logsearch.collection.service.logs.numshards=3
logsearch.collection.service.logs.replication.factor=2
logsearch.solr.audit.logs.zk_connect_string=localhost:2181
logsearch.solr.collection.audit.logs=audit_logs
-logsearch.audit.logs.split.interval.mins=15
logsearch.collection.audit.logs.numshards=2
logsearch.collection.audit.logs.replication.factor=2
logsearch.solr.config_set.folder=${LOGSEARCH_SERVER_RELATIVE_LOCATION:}src/main/configsets
logsearch.solr.audit.logs.config_set.folder=${LOGSEARCH_SERVER_RELATIVE_LOCATION:}src/main/configsets
-logsearch.solr.collection.history=history
-logsearch.solr.history.config.name=history
-logsearch.collection.history.replication.factor=1
+logsearch.solr.collection.metadata=logsearch_metadata
+logsearch.solr.collection.config.name=logsearch_metadata
+logsearch.collection.metadata.replication.factor=1
logsearch.auth.file.enabled=true
logsearch.login.credentials.file=user_pass.json
diff --git a/docker/test-config/logsearch/logsearch.properties b/docker/test-config/logsearch/logsearch.properties
index aa9d4c4..bc161f8 100644
--- a/docker/test-config/logsearch/logsearch.properties
+++ b/docker/test-config/logsearch/logsearch.properties
@@ -22,7 +22,6 @@ logsearch.solr.collection.service.logs=hadoop_logs
#logsearch.config.api.enabled=false
#logsearch.config.api.filter.zk.enabled=true
-logsearch.service.logs.split.interval.mins=15
logsearch.collection.service.logs.numshards=3
logsearch.collection.service.logs.replication.factor=2
@@ -31,7 +30,6 @@ logsearch.solr.audit.logs.zk_connect_string=localhost:9983
logsearch.solr.collection.audit.logs=audit_logs
logsearch.solr.audit.logs.url=
-logsearch.audit.logs.split.interval.mins=15
logsearch.collection.audit.logs.numshards=3
logsearch.collection.audit.logs.replication.factor=2
@@ -39,9 +37,9 @@ logsearch.solr.config_set.folder=/root/ambari/ambari-logsearch/ambari-logsearch-
logsearch.solr.audit.logs.config_set.folder=/root/ambari/ambari-logsearch/ambari-logsearch-server/target/package/conf/solr_configsets
# History logs
-logsearch.solr.collection.history=history
-logsearch.solr.history.config.name=history
-logsearch.collection.history.replication.factor=1
+logsearch.solr.collection.metadata=logsearch_metadata
+logsearch.solr.metadata.config.name=logsearch_metadata
+logsearch.collection.metadata.replication.factor=1
# Metrics
logsearch.solr.metrics.collector.hosts=
diff --git a/jenkins/containers/docker-logsearch-portal/conf/logsearch.properties b/jenkins/containers/docker-logsearch-portal/conf/logsearch.properties
index 59d2077..78b5469 100644
--- a/jenkins/containers/docker-logsearch-portal/conf/logsearch.properties
+++ b/jenkins/containers/docker-logsearch-portal/conf/logsearch.properties
@@ -38,10 +38,10 @@ logsearch.collection.audit.logs.replication.factor=2
logsearch.solr.config_set.folder=/usr/lib/ambari-logsearch-portal/conf/solr_configsets
logsearch.solr.audit.logs.config_set.folder=/usr/lib/ambari-logsearch-portal/conf/solr_configsets
-# History logs
-logsearch.solr.collection.history=history
-logsearch.solr.history.config.name=history
-logsearch.collection.history.replication.factor=1
+# Log search metadata
+logsearch.solr.collection.metadata=logsearch_metadata
+logsearch.solr.metadata.config.name=logsearch_metadata
+logsearch.collection.metadata.replication.factor=1
# Metrics
logsearch.solr.metrics.collector.hosts=