2014-04-12 68 views
4

我已經實施了一個分佈式事務日誌記錄庫,其中包含像Google Dapper(http://research.google.com/pubs/pub36356.html)和eBay CAL事務日誌框架(http://devopsdotcom.files.wordpress.com/2012/11/screen-shot-2012-11-11-at-10-06-39-am.png)中提及的樹狀結構。分佈式跟蹤日誌記錄和與Logstash,Kibana和ElasticSearch集成

日誌格式

TIMESTAMP HOSTNAME DATACENTER ENVIRONMENT EVENT_GUID PARENT_GUID TRACE_GUID APPLICATION_ID TREE_LEVEL TRANSACTION_TYPE TRANSACTION_NAME STATUS_CODE DURATION(in ms) PAYLOAD(key1=value2,key2=value2) 

GUID HEX數字格式

MURMER_HASH(HOSTNAME + DATACENTER + ENVIRONMENT)-JVM_THREAD_ID-(TIME_STAMP+Atomic Counter) 

我想要做的就是這種格式與Kibana UI和整合當用戶想要搜索和點擊在TRACE_GUID上,它將顯示類似於分佈式CALL圖的內容,其中顯示了時間花費在哪裏。這裏是UI http://twitter.github.io/zipkin/。這會很好。我不是UI開發人員,如果有人能指出我如何做到這一點,那將會很棒。

此外,我想知道我怎麼能指數彈性搜索的有效載荷數據,以便用戶指定一個像在有效載荷(持續時間> 1000),那麼,彈性搜索將帶來所有滿足條件的loglines一些表達。另外,我想指數有效載荷作爲名稱=值對,以便用戶可以查詢(KEY3 =值2或KEY4 = 例外)某種正則表達式的。請讓我知道這是否可以實現。任何幫助指針將是巨大的..

感謝, Bhavesh

+1

該格式通過logstash到elatsicsearch的裝載原木很容易。退房grok {}。如果您將TRACE_GUID拆分爲單獨的字段,則可以使用kibana搜索,瀏覽或過濾該值。 –

+0

@AlainCollins,謝謝你的信息。儘管我不能使用logstash,但我必須使用Apache Kafka來運輸和客戶。所有日誌都會傳播和索引TRACE_GUID。唯一的事情是能夠自定義Kibana來顯示像zipkin這樣的調用圖。我只是想將JSON提供給Ziptkin UI,並將其顯示爲Kinbana插件之一。 – Bmis13

回答

1

的第一步,良好的搜索在elasticsearch是創建您的數據字段。對於日誌,logstash是適當的工具。 grok {}過濾器使用模式(現有或用戶定義的正則表達式)將輸入拆分爲字段。

您將需要確保它被映射到一個整數(例如%{INT:時間:INT}在您的模式)。然後,您可以查詢elasticsearch的「持續時間:> 1000」以獲得結果。

Elasticsearch採用了Lucene查詢引擎,所以你可以找到基於該樣本查詢。

+0

感謝您的幫助!什麼是唯一名稱值對的最大數量是多少?我一直在破壞與名稱=值對的問題?隨着唯一名稱值對的增加,索引(例如,(int i 0-> 1million)索引(「key」+ i,i))的索引需要更長的時間。 – Bmis13

+0

下一個概率,是不同內容類型的相同密鑰? 「key」=「text value」和「key」= 1(int value),「key」= true?將同一字段的不同內容類型的日誌行文檔編入索引時如何工作?據我所知,動態推斷的指標和(第一個勝利)?請讓我知道這種行爲。 – Bmis13

+1

我們有一個7,000+字段的索引,所以我無法對1M發表評論。 –

相關問題