2017-05-24 22 views
0

我們轉到服務器輸出的日誌在JSON到標準輸出,每行看起來像下面:泊塢日誌解釋JSON記錄作爲字符串

{"time": "2017-06-01 14:00:00", "message": "Something happened", "level": "DEBUG"} 

我們的碼頭工人,撰寫使用標準的JSON文件記錄器,它包裝每在log場線作爲一個轉義字符串,像這樣:

{ 
    "log": "{\"time\": \"2017-06-01 14:00:00\", \"message\": \"Something happened\", \"level\": \"DEBUG\"}\"", 
    "timestamp": "<the time>", 
    ...more fields... 
} 

但我們不希望日誌字段進行轉義爲一個字符串,我們希望它嵌入爲JSON在同級別:

{ 
    "log": { 
    "time": "2017-06-01 14:00:00", 
    "message": "Something happened", 
    "level": "DEBUG" 
    }, 
    "timestamp": "<the time>", 
    ...more fields... 
} 

這可以實現嗎?

+0

「我們的docker-compose使用標準的json-file記錄器,它將每行記錄在日誌字段中,作爲一個轉義字符串,就像這樣:」我不明白logentry如何被包裝以及附加時間戳來自何處。您是否在使用一些可以添加這些字段的logshipper?您能否顯示創建這樣的條目的示例日誌文件配置? – herm

+0

@herm默認的docker-compose日誌選項使用json-file日誌記錄器,除了日誌字段之外,它還添加了幾個字段:流,時間和attrs。 –

+0

您的filebeat將json日誌包裝到日誌字段中,添加了時間戳和aditional字段。那不是碼頭工人 – herm

回答

0

看起來不能這樣做。但我可以將JSON字符串轉換爲Filebeat中的實際JSON,我們正在使用它將日誌傳遞給Kibana和Elastalert。要做到這一點,我使用processors下的decode_json_fields選項filebeat.yml