2015-07-10 147 views
0

我的splunk日誌格式具有鍵值對,但一個鍵具有調用者詳細信息,既不是JSON也不是XML格式。這是記錄的一些內部格式。Splunk自定義日誌格式解析

JSON日誌我可以用sPath解析,但有什麼辦法可以解析自定義格式。

例如我的日誌格式如下

Key1 = value1 | Key2 = value2 | KEY3 =({intern_key1 =值1; inern_key2 =值2; intern_key3 =值3}; {intern_key1 =值1; inern_key2 =值2; intern_key3 =值3}; {intern_key1 =值1; inern_key2 =值2; intern_key3 =值3})

基本上格式就像

({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?

回答

2

我的Splunk 6.2.3

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}) 

添加以下內容的文本文件的單穩上傳1線使用默認設置索引文件後,我跑到下面的搜索

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」具有多個值,則需要配置事件中斷的方式。所以,而不是打破換行符,也許你想打破分號。

+0

我以JSON格式轉換日誌,然後使用spath。 –