Powiedzmy, że mam Nginx działający wewnątrz kontenera (docker).
dziennik dostępu i błędów dzienniki są przesyłane przez standardowe wyjście, w Dockerfile:najlepszy sposób wysyłania dzienników kontenerów do kontenerów do logowania
# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log
RUN ln -sf /dev/stderr /var/log/nginx/error.log
Logspout wydaje eleganckie rozwiązanie do wysyłania stdout kontenera wewnątrz logstash (skonfigurowanej z wejściem syslog)
input {
syslog {
type => syslog
port => 5514
}
}
Ale logspout nie ma pojęcia o formacie dziennika wysyłanego przez STDOUT (czy coś mi brakuje?)
Tak więc muszę coś zrobić:
input {
syslog {
type => nginx-access
port => 5514
}
}
Ale co z dziennikiem błędów nginx? A co jeśli wyślę dziennik php-fpm również poprzez STDOUT? W jaki sposób logspout to zarządza?
Innym rozwiązaniem jest uruchomienie rsyslog indose pojemnika i wysyła zebrane logi do wejścia logstatsh ...
Jak widać nie jest to naprawdę jasne dla mnie ... Chciałbym móc wysłać nginx i php-fpm dzienniki logstash więc mogą być interpretowane jako co są ... ale nie znaleźć „dobra praktyka” ...
Czy możesz mi pomóc proszę
To powinna być zaakceptowana odpowiedź. – Subfuzion
Należy zauważyć, że sterownik wyjścia GELF używa tylko protokołu UDP (stan na dzień 20.04.2017), więc pakiety mogą zostać utracone, jeśli logstash znajduje się na innym komputerze. – herm
Dobrze o tym pamiętać. – womble