Splunk自定义日志格式解析

时间:2015-07-10 13:23:25

标签: splunk

我的splunk日志格式具有键值对,但是一个键具有调用者详细信息,既不是JSON也不是XML格式。它是记录的一些内部格式。

我可以使用sPath解析JSON日志,但有任何方法可以解析自定义格式。

例如,我的日志采用以下格式

Key1 = value1 | Key2 = value2 | key3 =({intern_key1 = value1; inern_key2 = value2; intern_key3 = value3}; {intern_key1 = value1; inern_key2 = value2; intern_key3 = value3}; {intern_key1 = value1; inern_key2 = value2; intern_key3 = value3})

基本上格式就像

({key = value; key = value; key = value}; {key = value; key = value; key = value}; {key = value; key = value; key = value}; {key = value ; key = value; key = value})

有没有办法在Splunk中解析这个?

1 个答案:

答案 0 :(得分:2)

我在Splunk 6.2.3中使用默认设置在1行添加了一个文本文件的单拍上传文件,其中包含以下内容

Key1=value1 | Key2=value2 | key3=({intern_key1=value1; inern_key2=value2; intern_key3=value3}; {intern_key1=value1; inern_key2=value2; intern_key3=value3}; {intern_key1=value1; inern_key2=value2; intern_key3=value3})

索引文件后,我运行了以下搜索

source="/some/path/to/foo.txt" | table Key1 Key2 key3 intern_key1 inern_key2 intern_key3

将结果导出为CSV后,我得到以下内容(第一行是字段名称,第二行是值)

Key1,Key2,key3,"intern_key1","inern_key2","intern_key3"
value1,value2,"({intern_key1=value1; inern_key2=value2; intern_key3=value3}; {intern_key1=value1; inern_key2=value2; intern_key3=value3}; {intern_key1=value1; inern_key2=value2; intern_key3=value3})",value1,value2,value3

我认为你不应该有任何问题,你可能想要做一些自定义字段提取,以确保你将所有数据解析为字段。例如,如果“intern_key1”具有多个值,则您需要配置事件中断的方式。因此,您可能希望打破分号,而不是打破换行符。