簡體   English   中英

將MongoDB中的數據追加到Logstash處理並解析為Elasticsearch的日志文件中

[英]Appending data from MongoDB into log files being processed by Logstash and parsed into Elasticsearch

抱歉,標題真的無法用一句話來解釋。

這是我的情況:

  1. 我有大量的日志文件(大約4GB),希望與Logstash一起解析以與Elastic stack(Logstash,Elasticsearch,Kibana)一起使用。
  2. 在日志中,有一個我已成功使用Logstash解析的序列號。 該數字對應於MongoDB集合的索引。 在解析每個日志時,我希望能夠使用解析后的數字查詢集合,並檢索要包含在傳遞給Elasticsearch的最終輸出中的數據。

為了使事情更清楚,這是一個粗糙的例子。 假設我有原始日志:

2017-11-20 14:24:14.011 123 log_number_one

在將解析的日志發送到Elasticsearch之前,我想用123查詢我的MongoDB集合,並獲取數據data1data2追加到要發送到Elasticsearch的文檔中,因此我的最終結果將具有類似於以下內容的字段:

{ 
    timestamp: 2017-11-20 14:24:14.011, 
    serial: 123, 
    data1: "foo", 
    data2: "bar", 
    log: log_number_one
}

我認為,更簡單的方法是對日志進行預處理,然后通過MongoDB運行數字,然后再通過Logstash解析它們。 但是,看起來好像我有4GB的日志文件一樣,我希望能以一種方式實現這一目標。 我想知道我的邊緣情況是否可以通過ruby過濾器插件解決,我可以在其中運行一些任意的ruby代碼來執行上述操作?

任何幫助/建議將不勝感激!

彈性團隊成員Christian_Dahlqvist的回答(所有功勞歸他所有):

根據記錄的數量和MongoDB中數據的總大小(假設它是一個合理大小的數據集),您可以將數據提取到文件中,其中每個序列號都與數據中的字符串表示形式相關聯。 JSON形式。 然后,您可以使用轉換過濾器根據序列號使用序列化的JSON填充字段,然后使用子過濾器對此進行解析並將其添加到事件中。

參考: https : //discuss.elastic.co/t/appending-data-from-mongodb-into-log-files-being-processed-by-logstash-and-parsed-into-elasticsearch/92564/2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM