Plantilla para desplegar instancias de Graylog totalmente dockerificado a su manera, esto es, usando los siguientes contenedores:
- MongoDB
- ElasticSearch
- Graylog (as himself)
- Nginx, como proxy inverso, si fuera necesario.
Ojo cuidao, que la gente de Graylog no quiere que usemos esto en entornos productivos, y, probablemente, tengan razón.
Se encuentran en el fichero .env.dist
, y es necesario hacer dos cosas dos:
- Crear a partir de él un fichero
.env
, y - Editarlo y establecer las variables convenientemente.
El primero es la clave del usuario admin, y el segundo un hash de dicha clave. Para crear este hash de la clave que vayamos a poner, podemos usar estos comandos:
❯ echo -n 'los-impuestos-son-un-robo' | sha256sum | awk '{ print $1 }' 9526855fe0040d7ba98971039accf0c68349f5932653e2cba94ee6c7f27a93fe
Las configuraciones por defecto funcionan en local, por lo que deben ser adecuadas al servidor donde se realiza el despliegue. En el siguiente enlace se detallan sus características → https://docs.graylog.org/en/4.0/pages/configuration/server.conf.html#web-rest-api-options
En ./graylog/config
se encuentra un fichero graylog.conf
completo; todas sus variables pueden importarse fácil e indoloramente en el apartado environment del fichero docker-compose.yml
, anteponiendo el prefijo «GRAYLOG_» al nombre de la variable del fichero, todo en mayúsculas, y asociándola con el valor deseado.
Por ejemplo, la hora del nodo está definida por defecto a UTC; en una instalación normal editaríamos la variable root_timezone
del fichero graylog.conf
, pero nosotros lo cambiaremos así:
GRAYLOG_ROOT_TIMEZONE: "Europe/Madrid"
- Clonar el repositorio
- Adecuarlo a los requerimientos del nuevo despliegue.
- Desplegar el entorno, a través del makefile.
Muestra, sucintamente, toda las funcionalidades:
❯ make usage: make [target] targets: help Show this help message run Start the containers stop Stop the containers terminate Stop the containers (with --remove-orphans option set) restart Restart the containers build Rebuilds the custom Nginx container ssh SSH into the graylog container ssh-root SSH into the graylog container as root logs-mongodb Tails the MongoDB container log logs-elastic Tails the Elastic container log logs-graylog Tails the Graylog cointainer log
Crea, si no existe, una red de Docker compartida por todos los contenedores, y, posteriormente, arranca los contenedores en el orden establecido.
Detiene los contenedores.
Detiene los contenedores y los elimina posteriormente.
Detiene y vuelve a arrancar los contenedores.
(Re)Construye el contenedor de Nginx, si se precisa, pues el resto de contenedores vienen directos de sendas imágenes.
Abre una sesión SSH en el contenedor del Graylog.
Abre una sesión SSH en el contenedor del Graylog con el usuario root.
Muestra en modo de seguimiento los logs del contenedor de MongoDB.
Muestra en modo de seguimiento los logs del contenedor de MongoDB.
Muestra en modo de seguimiento los logs del contenedor de MongoDB.