我试图提取我作为json日志文件转发给Splunk的日志事件的时间戳,而不是从json内部正确获取日期,Splunk似乎从日志文件中获取时间戳&#39 ; s 修改日期。 (那是唯一匹配的日期时间,是不是很奇怪?)
json已正确格式化和验证,并使用Json.NET JsonConvert序列化为字符串,因此我在日期时间的json如下所示:
[_json]
pulldown_type = true
INDEXED_EXTRACTIONS = json
KV_MODE = none
AUTO_KV_JSON = false
category = Structured
我在Splunk_TA_windows的 inputs.conf 文件中为我的UniversalForwarder设置 sourcetype = _json ,监控硬盘上的目录。日志文件名称的格式为service.log.json,TimestampUtc属性位于第10行,对象内部大约为140个字符。
在Splunk服务器上,默认的props.conf有
[_json]
INDEXED_EXTRACTIONS = json
pulldown_type = true
KV_MODE = none
AUTO_KV_JSON = false
#TIMESTAMP_FIELDS = TimestampUtc
TIME_PREFIX=/"TimestampUtc": "/
TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%7N%Z
#TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%3N
MAX_TIMESTAMP_LOOKAHEAD = 27
category = Structured
和本地props.conf有
public class ArrayList<E extends Comparable<E>> {
private final int DEFCAP = 50;
private int origCap;
private int numElements;
private Object[] list;
/* Method Name : ArrayList()
Parameters : None
Return value(s) : Constructor
Partners : None
Description : Increase the sales of the Employee at the given index by the given double amount.
*/
public ArrayList() {
origCap = DEFCAP;
numElements = 0;
list = (E[]) new Object[DEFCAP];
}
/* Method Name : ArrayList()
Parameters : int size
Return value(s) : Constructor
Partners : None
Description : Increase the sales of the Employee at the given index by the given double amount.
*/
public ArrayList(int size) {
try {
if(size > DEFCAP || size < 1) {
throw new InvalidSizeException();
}
origCap = size;
numElements = 0;
list = (E[]) new Object[origCap];
} catch (InvalidSizeException ISE) {
System.err.println("Size too large");
}
}
有人能指出我提取的正确配置吗?我尝试了多种组合但没有成功。
答案 0 :(得分:0)
固定!我需要在json对象的顶层移动datetime属性。保持相同的配置设置。