Ich habe ELK erfolgreich für Laravel App konfiguriert, aber wir stehen vor dem Problem mit Laravel log. Ich habe Logstash Template mit folgendem Code konfiguriert. aber ich empfange Break line in Kibana. Ich habe zwei verschiedene Konfigurationscodes wie unten beschrieben ausprobiert.Laravel Parsing Log mit Elk (Elasticsearch, Logstash, Kibana)
20-laravel.conf
input {
stdin{
codec => multiline {
pattern => "^\["
what => "previous"
negate => true
}
}
}
filter {
grok {
match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] %{DATA:env}\.%{DATA:severity}: %{DATA:message}" }
}
}
output {
elasticsearch {
document_type => "logs"
hosts => ["127.0.0.1"]
index => "laravel_logs"
}
}
filter {
# Laravel log files
if [type] == "laravel" {
grok {
match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] %{DATA:env}\.%{DATA:severity}: %{DATA:message} \[" }
}
}
}
laraval Probenprotokoll ist:
[2017-09-13 16:19:28] production.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Parse error: syntax error, unexpected identifier (T_STRING), expecting ',' or ')' in /var/www/app/Http/Controllers/BrandsController.php:57
Stack trace:
#0 /var/www/vendor/composer/ClassLoader.php(322):
Composer\Autoload\includeFile('/var/www/vendor...')
#1 [internal function]: Composer\Autoload\ClassLoader-
>loadClass('App\\Http\\Contro...')
#2 [internal function]: spl_autoload_call('App\\Http\\Contro...')
Also mein Hauptproblem ist, dass wir dieses Protokoll in Kibana in einer Zeile erhalten. zum Beispiel über Log-Code ist eine in verschiedene Zeile Nachricht geteilt und wir können nicht herausfinden, welche Zeile Nachricht von welchem Fehler ist?
Die Kibana-Protokollausgabe für ein einzelnes Laravel-Protokoll wird in der folgenden Abbildung angezeigt. kibana log-output
ich eine Lösung an veränderte grok Muster gefunden haben, wie pro unten: Filter { grok { match => { "message" => „\ [% {TIMESTAMP_ISO8601: Zeitstempel} \]% {DATA: env} \.% {DATA: Schweregrad}:% {DATA: Nachricht} in% {DATA: Datei}:% {NUMMER: Zeile} (. | \ R | \ n) Stack-Trace :(. | \ R | \ n) (? (. | \ R | \ n) *) "} } } –
Roger