0
我正在使用symfony3應用程序的ELK堆棧記錄和分析我的日誌。 從symfony應用程序我想記錄可能有點深的jsons對象。 有沒有什麼辦法,基巴那解釋我的JSON作爲一個JSON而不是一個字符串?Symfony - ELK - 解釋json在Monolog中登錄
這裏是我正在登錄方式的一例,
$this->logger->notice('My log message', array(
'foo' => 'bar,
'myDeepJson1' => $deepJson1,
'myDeepJson2' => $deepJson2
));
在那裏,我的logstash.conf。我用的symfony的模式,我發現這裏:https://github.com/eko/docker-symfony
input {
redis {
type => "symfony"
db => 1
key => monolog
data_type => ['list']
host => "redis"
port => 6379
}
}
filter {
if [type] == "symfony" {
grok {
patterns_dir => "./patterns"
match => [ "message", "%{SYMFONY}" ]
}
date {
match => [ "date", "YYYY-MM-dd HH:mm:ss" ]
}
if [log_type] == "app" {
json {
source => "log_context"
}
}
}
}
output {
if [type] == "symfony" {
elasticsearch {
hosts => ["172.17.0.1:9201"]
index => "azureva-logstash"
}
}
}
其實,enverything即時記錄是在log_context變量,但獨白數組轉換成JSON,所以,我的$ deepJson變量是雙重編碼,但是,沒有辦法在上下文中記錄多維數組...
任何幫助,將不勝感激。謝謝 !
參考:[JSON編解碼器(https://www.elastic.co/guide/en/logstash/2.2/plugins-codecs-json.html ) – baudsp
嗨,謝謝你的回答,但是這並不能解決我的問題... json字符串沒有被解釋...我希望能夠像在表中一樣在json中導航...... Kibana仍然顯示爲原始json字段 – nikophil
您可以在ES中添加一些日誌示例和您想要的內容嗎?它可以幫助我理解你的問題 – baudsp