summaryrefslogtreecommitdiff
path: root/ambari-logsearch/ambari-logsearch-logfeeder
diff options
context:
space:
mode:
authoroleewere <oleewere@gmail.com>2016-04-25 16:48:31 +0200
committeroleewere <oleewere@gmail.com>2016-04-25 17:10:34 +0200
commit888faf260d2d9fc454072ed69d1149c733ca98f0 (patch)
treef35884e2afea35c0f37b9a7b8c47042099adbf99 /ambari-logsearch/ambari-logsearch-logfeeder
parent25ed583ee7926456a3ade0ba0644ccd2608b3aaf (diff)
AMBARI-16034. Incremental changes to LogSearch to bring it up to date in the trunk (Dharmesh Makwana via oleewere)
Diffstat (limited to 'ambari-logsearch/ambari-logsearch-logfeeder')
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/build.xml3
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/pom.xml8
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java11
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/FetchConfigFromSolr.java52
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/LogfeederScheduler.java3
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/ApplyLogFilter.java7
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/DefaultDataFilter.java5
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/FilterLogData.java2
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java14
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputKafka.java2
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java3
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/SolrUtil.java28
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/config.json.j221
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/log4j.xml17
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh6
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/filter/JSONFilterCodeTest.java10
16 files changed, 140 insertions, 52 deletions
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/build.xml b/ambari-logsearch/ambari-logsearch-logfeeder/build.xml
index 53f893edd7..738b2ef2ce 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/build.xml
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/build.xml
@@ -32,9 +32,6 @@
<copy todir="target/package/libs" includeEmptyDirs="no">
<fileset dir="target/libs"/>
</copy>
- <copy todir="target/package/" includeEmptyDirs="no">
- <fileset file="target/LogFeeder.jar"/>
- </copy>
<copy todir="target/package/classes" includeEmptyDirs="no">
<fileset dir="target/classes"/>
</copy>
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml b/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml
index 088801099c..dc1b361a8d 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml
@@ -39,6 +39,11 @@
<dependencies>
<dependency>
+ <groupId>org.apache.ambari</groupId>
+ <artifactId>ambari-logsearch-appender</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
@@ -79,6 +84,7 @@
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
+
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
@@ -109,8 +115,8 @@
<artifactId>jackson-xc</artifactId>
<version>1.9.13</version>
</dependency>
- </dependencies>
+ </dependencies>
<build>
<finalName>LogFeeder</finalName>
<pluginManagement>
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java
index 730369404a..7a30d724f7 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java
@@ -33,9 +33,11 @@ import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.TimeZone;
import org.apache.ambari.logfeeder.filter.Filter;
import org.apache.ambari.logfeeder.input.Input;
+import org.apache.ambari.logfeeder.logconfig.LogFeederConstants;
import org.apache.ambari.logfeeder.mapper.Mapper;
import org.apache.ambari.logfeeder.output.Output;
import org.apache.commons.lang3.StringUtils;
@@ -58,6 +60,7 @@ public class LogFeederUtil {
final static int HASH_SEED = 31174077;
public final static String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
+ public final static String SOLR_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
static Gson gson = new GsonBuilder().setDateFormat(DATE_FORMAT).create();
static Properties props;
@@ -324,6 +327,9 @@ public class LogFeederUtil {
}
public static Map<String, Object> toJSONObject(String jsonStr) {
+ if(jsonStr==null || jsonStr.trim().isEmpty()){
+ return new HashMap<String, Object>();
+ }
Type type = new TypeToken<Map<String, Object>>() {
}.getType();
return gson.fromJson(jsonStr, type);
@@ -380,7 +386,8 @@ public class LogFeederUtil {
public static String getDate(String timeStampStr) {
try {
- DateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
+ DateFormat sdf = new SimpleDateFormat(SOLR_DATE_FORMAT);
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date netDate = (new Date(Long.parseLong(timeStampStr)));
return sdf.format(netDate);
} catch (Exception ex) {
@@ -468,7 +475,7 @@ public class LogFeederUtil {
return true;
}
}
- if (value.equalsIgnoreCase("ALL")) {
+ if (value.equalsIgnoreCase(LogFeederConstants.ALL)) {
return true;
}
}
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/FetchConfigFromSolr.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/FetchConfigFromSolr.java
index fc12458f77..e645a3db84 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/FetchConfigFromSolr.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/FetchConfigFromSolr.java
@@ -40,12 +40,18 @@ public class FetchConfigFromSolr extends Thread {
private static String endTimeDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS";//2016-04-05T04:30:00.000Z
private static String sysTimeZone = "GMT";
- public FetchConfigFromSolr() {
+ public FetchConfigFromSolr(boolean isDaemon) {
this.setName(this.getClass().getSimpleName());
+ this.setDaemon(isDaemon);
}
@Override
public void run() {
+ String zkHosts = LogFeederUtil.getStringProperty("logfeeder.solr.zkhosts");
+ if( zkHosts == null || zkHosts.trim().length() == 0 ) {
+ logger.warn("Solr ZKHosts for UserConfig/History is not set. Won't look for level configuration from Solr.");
+ return;
+ }
solrConfigInterval = LogFeederUtil.getIntProperty("logfeeder.solr.config.internal", solrConfigInterval);
delay = 1000 * solrConfigInterval;
do {
@@ -60,11 +66,14 @@ public class FetchConfigFromSolr extends Thread {
}
private synchronized void pullConfigFromSolr() {
- HashMap<String, Object> configDocMap = SolrUtil.getInstance().getConfigDoc();
- if (configDocMap != null) {
- String configJson = (String) configDocMap.get(LogFeederConstants.VALUES);
- if (configJson != null) {
- logfeederFilterWrapper = LogFeederUtil.getGson().fromJson(configJson, VLogfeederFilterWrapper.class);
+ SolrUtil solrUtil = SolrUtil.getInstance();
+ if(solrUtil!=null){
+ HashMap<String, Object> configDocMap = solrUtil.getConfigDoc();
+ if (configDocMap != null) {
+ String configJson = (String) configDocMap.get(LogFeederConstants.VALUES);
+ if (configJson != null) {
+ logfeederFilterWrapper = LogFeederUtil.getGson().fromJson(configJson, VLogfeederFilterWrapper.class);
+ }
}
}
}
@@ -117,19 +126,28 @@ public class FetchConfigFromSolr extends Thread {
List<String> hosts = componentFilter.getHosts();
List<String> defaultLevels = componentFilter.getDefaultLevels();
List<String> overrideLevels = componentFilter.getOverrideLevels();
- if (LogFeederUtil.isListContains(hosts, hostName, false)) {
- if (isFilterExpired(componentFilter)) {
- // pick default
- logger.debug("Filter for component " + componentName + " and host :" + hostName + " is expired at "
- + componentFilter.getExpiryTime());
- return defaultLevels;
- } else {
- // return tmp filter levels
- return overrideLevels;
+ String expiryTime=componentFilter.getExpiryTime();
+ //check is user override or not
+ if ((expiryTime != null && !expiryTime.isEmpty())
+ || (overrideLevels != null && !overrideLevels.isEmpty())
+ || (hosts != null && !hosts.isEmpty())) {
+ if (hosts == null || hosts.isEmpty()) {
+ // hosts list is empty or null consider it apply on all hosts
+ hosts.add(LogFeederConstants.ALL);
+ }
+ if (LogFeederUtil.isListContains(hosts, hostName, false)) {
+ if (isFilterExpired(componentFilter)) {
+ // pick default
+ logger.debug("Filter for component " + componentName + " and host :"
+ + hostName + " is expired at " + componentFilter.getExpiryTime());
+ return defaultLevels;
+ } else {
+ // return tmp filter levels
+ return overrideLevels;
+ }
}
- } else {
- return defaultLevels;
}
+ return defaultLevels;
}
public static VLogfeederFilter findComponentFilter(String componentName) {
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/LogfeederScheduler.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/LogfeederScheduler.java
index 7525dff32a..128c5c4c56 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/LogfeederScheduler.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/LogfeederScheduler.java
@@ -52,7 +52,8 @@ public enum LogfeederScheduler {
private List<Thread> getThreadList() {
List<Thread> tasks = new ArrayList<Thread>();
- tasks.add(new FetchConfigFromSolr());
+ Thread configMonitor = new FetchConfigFromSolr(true);
+ tasks.add(configMonitor);
return tasks;
}
}
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/ApplyLogFilter.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/ApplyLogFilter.java
index 374844597c..f2232070b0 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/ApplyLogFilter.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/ApplyLogFilter.java
@@ -50,7 +50,12 @@ public class ApplyLogFilter extends DefaultDataFilter {
//return default value if there is no filter found for particular component
return defaultValue;
}
- List<String> allowedLevels = FetchConfigFromSolr.getAllowedLevels(hostName, componentFilter);
+ List<String> allowedLevels = FetchConfigFromSolr.getAllowedLevels(
+ hostName, componentFilter);
+ if (allowedLevels == null || allowedLevels.isEmpty()) {
+ // if allowedlevels list is empty then allow everything
+ allowedLevels.add(LogFeederConstants.ALL);
+ }
return LogFeederUtil.isListContains(allowedLevels, level, false);
}
}
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/DefaultDataFilter.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/DefaultDataFilter.java
index 9e98c6a3aa..a064663adc 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/DefaultDataFilter.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/DefaultDataFilter.java
@@ -18,7 +18,6 @@
*/
package org.apache.ambari.logfeeder.logconfig.filter;
-import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
@@ -28,9 +27,7 @@ import org.apache.log4j.Logger;
*/
public class DefaultDataFilter {
private static Logger logger = Logger.getLogger(DefaultDataFilter.class);
-
- protected static final boolean CASE_SENSITIVE = false;
-
+
public boolean applyFilter(Map<String, Object> outputJsonObj, boolean defaultValue) {
return defaultValue;
}
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/FilterLogData.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/FilterLogData.java
index 643df984c8..bf33f93652 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/FilterLogData.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/logconfig/filter/FilterLogData.java
@@ -40,7 +40,7 @@ public enum FilterLogData {
return defaultValue;
}
Map<String, Object> jsonObj = LogFeederUtil.toJSONObject(jsonBlock);
- return applyLogFilter.applyFilter(jsonObj, defaultValue);
+ return isAllowed(jsonObj);
}
public boolean isAllowed(Map<String, Object> jsonObj) {
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java
index dd67d075eb..c067680e4d 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/Output.java
@@ -22,6 +22,7 @@ package org.apache.ambari.logfeeder.output;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import org.apache.ambari.logfeeder.ConfigBlock;
import org.apache.ambari.logfeeder.LogFeederUtil;
@@ -115,5 +116,18 @@ public abstract class Output extends ConfigBlock {
logStatForMetric(writeBytesMetric, "Stat: Bytes Written");
}
+
+ public void trimStrValue(Map<String, Object> jsonObj) {
+ if (jsonObj != null) {
+ for (Entry<String, Object> entry : jsonObj.entrySet()) {
+ String key = entry.getKey();
+ Object value = entry.getValue();
+ if (value != null && value instanceof String) {
+ String valueStr = value.toString().trim();
+ jsonObj.put(key, valueStr);
+ }
+ }
+ }
+ }
}
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputKafka.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputKafka.java
index cd4f951148..efbc366c10 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputKafka.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputKafka.java
@@ -283,4 +283,4 @@ public class OutputKafka extends Output {
}
}
}
-}
+} \ No newline at end of file
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java
index 215f691e8c..6fb0b0e423 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java
@@ -194,6 +194,7 @@ public class OutputSolr extends Output {
@Override
public void write(Map<String, Object> jsonObj, InputMarker inputMarker) throws Exception {
try {
+ trimStrValue(jsonObj);
outgoingBuffer.put(new OutputData(jsonObj, inputMarker));
} catch (InterruptedException e) {
// ignore
@@ -442,4 +443,4 @@ public class OutputSolr extends Output {
return localBuffer.isEmpty();
}
}
-}
+} \ No newline at end of file
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/SolrUtil.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/SolrUtil.java
index 4265dc670e..200a603e24 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/SolrUtil.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/util/SolrUtil.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
import org.apache.ambari.logfeeder.LogFeederUtil;
import org.apache.ambari.logfeeder.logconfig.LogFeederConstants;
+import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
@@ -64,7 +65,12 @@ public class SolrUtil {
try {
instance = new SolrUtil();
} catch (Exception e) {
- logger.error(e);
+ final String LOG_MESSAGE_KEY = SolrUtil.class
+ .getSimpleName() + "_SOLR_UTIL";
+ LogFeederUtil.logErrorMessageByInterval(
+ LOG_MESSAGE_KEY,
+ "Error constructing solrUtil", e, logger,
+ Level.WARN);
}
}
}
@@ -162,6 +168,7 @@ public class SolrUtil {
QueryResponse queryResponse = solrClient.query(solrQuery, METHOD.POST);
return queryResponse;
} else {
+ logger.error("solrClient can't be null");
return null;
}
}
@@ -176,15 +183,18 @@ public class SolrUtil {
String fq = LogFeederConstants.ROW_TYPE + ":" + LogFeederConstants.NAME;
solrQuery.setFilterQueries(fq);
try {
- QueryResponse response = SolrUtil.getInstance().process(solrQuery);
- SolrDocumentList documentList = response.getResults();
- if (documentList != null && documentList.size() > 0) {
- SolrDocument configDoc = documentList.get(0);
- String configJson = LogFeederUtil.getGson().toJson(configDoc);
- configMap = (HashMap<String, Object>) LogFeederUtil.toJSONObject(configJson);
+ QueryResponse response = process(solrQuery);
+ if (response != null) {
+ SolrDocumentList documentList = response.getResults();
+ if (documentList != null && documentList.size() > 0) {
+ SolrDocument configDoc = documentList.get(0);
+ String configJson = LogFeederUtil.getGson().toJson(configDoc);
+ configMap = (HashMap<String, Object>) LogFeederUtil
+ .toJSONObject(configJson);
+ }
}
- } catch (SolrException | SolrServerException | IOException e) {
- logger.error(e);
+ } catch (Exception e) {
+ logger.error("Error getting config", e);
}
return configMap;
}
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/config.json.j2 b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/config.json.j2
index 163ee2ba75..1c5ee8d3a0 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/config.json.j2
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/config.json.j2
@@ -179,17 +179,17 @@
{
"type":"logsearch_app",
"rowtype":"service",
- "path":"{{logsearch_log_dir}}/logsearch.log"
+ "path":"{{logsearch_log_dir}}/logsearch.json"
},
{
"type":"logsearch_feeder",
"rowtype":"service",
- "path":"{{logfeeder_log_dir}}/logfeeder.log"
+ "path":"{{logfeeder_log_dir}}/logfeeder.json"
},
{
"type":"logsearch_perf",
"rowtype":"service",
- "path":"{{logsearch_log_dir}}/logsearch-performance.log"
+ "path":"{{logsearch_log_dir}}/logsearch-performance.json"
},
{
"type":"ranger_admin",
@@ -625,13 +625,22 @@
},
{
+ "filter": "json",
+ "conditions": {
+ "fields": {
+ "type": [
+ "logsearch_app",
+ "logsearch_feeder",
+ "logsearch_perf"
+ ]
+ }
+ }
+ },
+ {
"filter":"grok",
"conditions":{
"fields":{
"type":[
- "logsearch_app",
- "logsearch_feeder",
- "logsearch_perf",
"ranger_admin",
"ranger_dbpatch"
]
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/log4j.xml b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/log4j.xml
index 0717477bb7..7ef967c980 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/log4j.xml
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/resources/log4j.xml
@@ -33,24 +33,35 @@
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n"/>
</layout>
+ </appender>
+
+ <appender name="rolling_file_json"
+ class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender">
+ <param name="file" value="logs/logsearch-logfeeder.json" />
+ <param name="append" value="true" />
+ <param name="maxFileSize" value="10MB" />
+ <param name="maxBackupIndex" value="10" />
+ <layout class="org.apache.ambari.logsearch.appender.LogsearchConversion" />
</appender>
+
<!-- Logs to suppress BEGIN -->
<category name="org.apache.solr.common.cloud.ZkStateReader" additivity="false">
<priority value="error" />
- <appender-ref ref="rolling_file" />
+ <appender-ref ref="daily_rolling_file" />
</category>
<category name="apache.solr.client.solrj.impl.CloudSolrClient" additivity="false">
<priority value="fatal" />
- <appender-ref ref="rolling_file" />
+ <appender-ref ref="daily_rolling_file" />
</category>
<!-- Logs to suppress END -->
<category name="org.apache.ambari.logfeeder" additivity="false">
- <priority value="info" />
+ <priority value="INFO" />
<appender-ref ref="console" />
<!-- <appender-ref ref="daily_rolling_file" /> -->
+ <appender-ref ref="rolling_file_json"/>
</category>
<root>
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh
index 1e7185a423..356a3587c0 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh
@@ -47,6 +47,12 @@ fi
if [ "$LOGFEEDER_CONF_DIR" = "" ]; then
LOGFEEDER_CONF_DIR="/etc/logfeeder/conf"
+ if [ ! -d $LOGFEEDER_CONF_DIR ]; then
+ if [ -d $script_dir/classes ]; then
+ LOGFEEDER_CONF_DIR=$script_dir/classes
+ fi
+ fi
+
fi
LOGFEEDER_GC_LOGFILE=`dirname $LOGFILE`/logfeeder_gc.log
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/filter/JSONFilterCodeTest.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/filter/JSONFilterCodeTest.java
index ebfd0f5f6a..fd14b48eba 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/filter/JSONFilterCodeTest.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/test/java/org/apache/ambari/logfeeder/filter/JSONFilterCodeTest.java
@@ -18,10 +18,12 @@
package org.apache.ambari.logfeeder.filter;
+import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import java.util.TimeZone;
import org.apache.ambari.logfeeder.LogFeederUtil;
import org.apache.ambari.logfeeder.OutputMgr;
@@ -64,7 +66,9 @@ public class JSONFilterCodeTest {
EasyMock.replay(mockOutputMgr);
Date d = new Date();
- String dateString = new SimpleDateFormat(LogFeederUtil.DATE_FORMAT).format(d);
+ DateFormat sdf = new SimpleDateFormat(LogFeederUtil.SOLR_DATE_FORMAT);
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+ String dateString = sdf.format(d);
jsonFilterCode.apply("{ logtime: '" + d.getTime() + "', line_number: 100 }", new InputMarker());
EasyMock.verify(mockOutputMgr);
@@ -86,7 +90,9 @@ public class JSONFilterCodeTest {
EasyMock.replay(mockOutputMgr);
Date d = new Date();
- String dateString = new SimpleDateFormat(LogFeederUtil.DATE_FORMAT).format(d);
+ DateFormat sdf = new SimpleDateFormat(LogFeederUtil.SOLR_DATE_FORMAT);
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+ String dateString = sdf.format(d);
jsonFilterCode.apply("{ logtime: '" + d.getTime() + "', some_field: 'abc' }", new InputMarker());
EasyMock.verify(mockOutputMgr);