私のログを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。実は、私の$ deepJson変数は、二重エンコードされ、私がログインしていenverythingがlog_context変数であるが、モノローグはJSONに配列を変換し、その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"
}
}
}
:私は私がここで見つけるsymfonyのパターンを使用しましたコンテキストに多次元配列を記録する方法はありません。
助けていただければ幸いです。ありがとう!
:[JSONコーデック]を(https://www.elastic.co/guide/en/logstash/2.2/plugins-codecs-json.html ) – baudsp
こんにちは、あなたの答えをありがとう、しかしこれは私の問題を解決しません... jsonの文字列は解釈されていません...私はテーブルのようなjsonでナビゲートすることができるようにしたいと思います... Kibanaまだ生のjsonとして私にフィールドを示しています – nikophil
いくつかのログの例を追加してESで何をしたいですか?あなたの問題を理解するのに役立つかもしれない – baudsp