Este repositorio alberga un contenedor Docker para "Fluentd". Lo tienes automatizado en el registry hub de Docker luispa/base-fluentd con los fuentes en GitHub: base-fluentd. Lo uso en combinación con el contenedor luispa/base-eskibana, con los fuentes en GitHub: GitHub: base-fluentd
La combinación de fluentd + elasticsearch + kibana permite unificar, almacenar y visualizar todos los log's de todos mis contenedores docker en mi equipo linux en un único sitio.
Fluentd es un recolector que unifica "logs", proyecto open source que permite aunar colecciones de datos y que sean consumidos de forma centralizada para poder entender mejor los datos.
Elasticsearch es un motor de búsqueda (una base de datos para que nos entendamos), también es un proyecto opensource que es muy conocido por su sencillez de uso.
Kibana es un interfaz de usuario Web que permite realizar búsquedas más amigables en elasticsearch.
Al combinar las tres herramientas (Fluentd + Elasticsearch + Kibana) conseguimos un sistema escalable, sencillo y flexible que agrega los logs en un motor de búsqueda que puede ser consumido de forma sencilla desde la web. En mi caso he decidido separar las tres herramientas en dos contenedores, uno con fluentd y el otro con elasticsearch y kibana.
Consulta este apunte técnico sobre varios servicios en contenedores Docker para acceder a otros contenedores Docker y sus fuentes en GitHub.
Para usar esta imagen desde el registry de docker hub
totobo ~ $ docker pull luispa/base-fluentd
Si prefieres crear la imagen de forma manual en tu sistema, primero debes clonarla desde Github para luego ejecutar el build
$ git clone https://github.com/LuisPalacios/base-fluentd.git
$ docker build -t luispa/base-fluentd ./
Puedes ejecutar "manulamente" el contenedor, es decir, de forma interactiva, que es muy útil para hacer pruebas. Aquí te dejo un "ejemplo":
docker run -t -i -e FLUENTD_PORT=24224 -p 24224:24224 --name fluentd_1 --link eskibana_1:eskibana luispa/base-fluentd /bin/bash
Si por el contrario prefieres automatizarlo con el programa fig y que arranquen ambos contenedores, el de fluentd y el de elasticsearch+kibana, te recomiendo que eches un ojo al servicio-log que he dejado en GitHub.
Puerto por el que escuchará fluentd en este contenedor. Cuando configuremos rsyslogd (o cualquier otro gestor de logs) en los contenedores remotos que quieran enviarme sus logs, tenemos que darles este puerto como el de destino.
Cuando arranques el contenedor fluentd es necesario que le indiques mediante --link (o links: en fig.yml) cual es el contenedor donde se ejecuta elasticsearch+kibana.
Directorio persistente para configurar el Timezone. Crear el directorio /Apps/data/tz y dentro de él crear el fichero timezone. Luego montarlo con -v o con fig.yml
Montar:
"/Apps/data/tz:/config/tz"
Preparar:
$ echo "Europe/Madrid" > /config/tz/timezone
Content type
Image
Digest
sha256:875d89bf7…
Size
188.3 MB
Last updated
almost 11 years ago
docker pull luispa/base-fluentd