Diciamo che ho Nginx in esecuzione all'interno di un container (finestra mobile).
I log logs di accesso e di errore sono inviati attraverso STDOUT, nel Dockerfile:il modo migliore per inviare log del contenitore docker a logstash
# 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 sembra una soluzione elegante per inviare STDOUT del vostro contenitore all'interno logstash (configurato con un ingresso di syslog)
input {
syslog {
type => syslog
port => 5514
}
}
Ma il logspout non ha idea del formato del log inviato tramite STDOUT (o mi manca qualcosa?)
Quindi, devo fare qualcosa del tipo:
input {
syslog {
type => nginx-access
port => 5514
}
}
Ma allora che dire del registro errori nginx? E se invio anche log di php-fpm tramite STDOUT? Come gestisce questo logspout?
Un'altra soluzione è quella di eseguire rsyslog indose il contenitore e inviare i log raccolti all'ingresso di logstatsh ...
Come si può vedere in realtà non è chiaro per me ... mi piacerebbe essere in grado per inviare nginx e php-fpm registri per logstash modo che possano essere interpretati come quello che sono ... ma non trovano una "buona pratica" ...
Potete aiutarmi per favore
Questa dovrebbe essere la risposta accettata. – Subfuzion
È importante notare che il driver di uscita GELF utilizza solo UDP (a partire dal 20.04.2017) in modo che i pacchetti possano andare persi se il logstash si trova su un altro computer. – herm
Questa è una buona cosa da tenere a mente. – womble