2015-07-13 40 views
2

我已經通過Logstash將網絡日誌導入Elasticsearch。這已成功完成。Kibana:如何根據兩個字段進行可視化

我在日誌文件(clientip)中有一個字段,它總是被填充的,另一個字段有時被填充(trueclientip)。我想根據兩者的結合進行聚合;例如如果trueclientip不是空的,那麼使用否則使用clientip

我該如何在基巴納的可視化中做到這一點?我是否需要生成腳本字段或者是否有其他方法?

謝謝。

+0

如果這些字段是數字,那麼它可能工作,否則不太確定。原因將是需要使用僅允許數字字段的腳本字段。 –

+0

@andreistefan他們是IP地址,所以他們是字符串。例如127.0.0.1 – baynezy

+0

他們不是字符串;-)。 IP在內部存儲爲數字。 –

回答

0

定義腳本區域應該有這樣的公式:doc['trueclientip'].value ? doc['trueclientip'].value : doc['clientip'].value,並在你的聚合使用。

但是,這個腳本字段功能和ip類型有一個缺點:看起來你從腳本中得到的是數字本身(這是邏輯,因爲Kibana 4中的腳本字段只使用Lucene表達式作爲語言),而不是字符串表示。內部IP實際上是Lucene中的long數字。

例如,127.0.0.1被內部表示爲2130706433。這就是您將在Visualize中看到的內容。

並不理想,事實上,這將是件好事,在腳本領域更先進的腳本語言,而是一個github issue already exists

相關問題