2017-05-03 79 views
2

我在我的日誌中有一組信息。它採用JSON格式。Logstash從字符串創建一個數組數組

{ 
    "someField":"someValue", 
    "columns":"[colName1, colName2, colName3, ... colNameN]", 
    "someField":"someValue" 
} 

我想這將被存儲爲在同一字段columns陣列。

我想要顯示的用例是有多少用戶使用了名爲colName1的特定列及其數量。

我正在使用output.conf ELK stak 5.x

回答

1

我得到了解決參照兩上面的答案。 這就是我所做的。

要我用這個字符串中刪除[]

mutate { 
     gsub => ["columns", "[\[\]]", ""] 
    } 

,然後將其轉換成數組:

mutate { 
     split => { "columns" => "," } 
    } 
2

如果你的來源是直接JSON格式

使用JSON插件

filter { 
    json { 
    source => "message" 
    } 
} 

數組字段將自動轉換爲數組

https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html

+0

我明白,這將是自動轉換爲數組。但在我的情況下,我正在使用ThreadContext來放置該值。而ThreadContext只支持'String'的vales。所以雖然我的值以數組格式查看,但它們實際上是以日誌文件的字符串格式導出的。那麼在這種情況下會發生什麼變化? –

+0

ThreadContext是logstash插件?如果不是你提供的JSON格式應該來自默認的消息字段,所以我不知道你的意思是ThreadContext –

+0

不是它的非logstash插件,但它是一個java庫,可以幫助我將值放入一個字段並使用它跨越。 –

相關問題