Normalmente ejecuto aplicaciones como contenedores docker debido a su alta flexibilidad y disponibilidad. ¿Hay alguna manera de obtener los registros del contenedor en mi servidor logstash ?
Docker incluye varios mecanismos de registro para ayudarlo a obtener información de contenedores y servicios en ejecución mediante controladores de registro.
Cada demonio de Docker tiene un controlador de registro predeterminado, que usa cada contenedor a menos que lo configure para usar un controlador de registro diferente.
Simplemente puede obtener los registros de su contenedor configurando Logstash de la siguiente manera y ejecutando el contenedor cuyos registros se verán cambiando su controlador de registro predeterminado a syslog .
#logstash.conf input { tcp { port => 5000 } } output { stdout {} }Los dos comandos siguientes mostrarán los registros del contenedor hello-world en logstash.
docker run -it --rm --name=logstash -p 5000:5000 -v /path/to/logstash.conf:/usr/share/logstash/config/logstash.yml docker.elastic.co/logstash/logstash:7.14.0 docker run --log-driver=syslog --log-opt syslog-address=tcp://<logstash-system-ip>:5000 hello-worldLa salida de Logstash puede incluso enviarse a elasticsearch simplemente configurando la sección de salida como,
elasticsearch { hosts => ["<elastic-system-ip>:9200"] }Visite https://docs.docker.com/engine/admin/logging/overview/