Cómo configurar un sistema de registro centralizado con Graylog en Debian 11
Graylog es una plataforma de gestión de registros gratuita y de código abierto para capturar, almacenar y permitir el análisis en tiempo real de tus datos y registros. Está escrito en Java y construido sobre otro software de código abierto como MongoDB y Elasticsearch. Graylog proporciona una de las plataformas centralizadas de gestión de registros más eficaces, rápidas y flexibles.
Con Graylog, puedes enviar y analizar datos estructurados y no estructurados de casi cualquier fuente de datos.
En este tutorial, te mostraremos cómo instalar y configurar Graylog como sistema de registro centralizado en el sistema Debian 11. Además, te mostraremos cómo configurar el servidor web Nginx como proxy inverso para el servidor Graylog.
Requisitos previos
- Un servidor Linux Debian 11 – al menos con 4GB de RAM.
- Un usuario no root con privilegios sudo o de administrador.
Instalar los paquetes básicos Dependencias
En la primera fase de este tutorial, instalarás algunas dependencias de paquetes básicos, como Java y GnuPG.
Antes de empezar a instalar ningún paquete, ejecuta el siguiente comando apt para actualizar y refrescar tu repositorio Debian actual.
sudo apt update
Ahora instala algunas dependencias de paquetes para Graylog utilizando el siguiente comando.
sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget
Introduce Y para confirmar la instalación y pulsa ENTER para continuar.
Una vez completada la instalación, pasa al siguiente paso para instalar otra dependencia de Graylog: MongoDB y Elasticsearch.
Instalación de MongoDB
Graylog utiliza la base de datos NoSQL MongoDB para almacenar toda la información de configuración de Graylog, flujos, alertas, usuarios, flujos en caché, etc. Toda la información que ves en las interfaces web de Graylog se almacena en la base de datos NoSQL MongoDB, excepto los propios registros. La versión actual de Graylog requiere MongoDB v4 hasta la v4.4.
Ejecuta los siguientes comandos para añadir la clave GPG de MongoDB y el repositorio a tu servidor Debian.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Actualiza tu repositorio Debian utilizando el siguiente comando.
sudo apt update
Como puedes ver en la siguiente captura de pantalla, el repositorio de MongoDB se ha añadido a tu servidor Debian.
A continuación, instala los paquetes de MongoDB utilizando el siguiente comando apt.
sudo apt install -y mongodb-org
Comenzará la instalación de la base de datos MongoDB.
Una vez finalizada la instalación de MongoDB, ejecuta el siguiente comando para recargar el gestor systemd. Esto es necesario antes de iniciar el servicio MongoDB.
sudo systemctl daemon-reload
Ahora ejecuta el siguiente comando para habilitar y reiniciar el servicio MongoDB. El servicio MongoDB se iniciará y se ejecutará automáticamente al arrancar el sistema.
sudo systemctl enable mongod.service sudo systemctl restart mongod.service
Verifica el servicio MongoDB utilizando el siguiente comando.
sudo systemctl status mongod
Como puedes ver en la siguiente captura de pantalla, el servicio MongoDB se está ejecutando y está habilitado.
Ahora pasa a la siguiente fase para instalar Elasticsearch.
Instalación de Elasticsearch
Tras instalar la base de datos NoSQL MongoDB, ahora deberás instalar Elasticsearch. El servidor Graylog utiliza Elasticsearch como motor de búsqueda para buscar registros. En la versión actual, Graylog requiere Elasticsearch v6.8 o v7.x hasta v7.10.
Antes de instalar Elasticsearch, ejecuta el siguiente comando para añadir la clave GPG y el repositorio de Elasticsearch a tu sistema Debian.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Ahora actualiza y refresca tu repositorio Debian.
sudo apt update
En la siguiente captura de pantalla, el repositorio de Elasticsearch se añade al servidor Debian.
A continuación, instala los paquetes de Elasticsearch utilizando el comando apt que aparece a continuación.
sudo apt install elasticsearch-oss
Se iniciará la instalación de Elasticsearch.
Una vez finalizada la instalación, ejecuta el siguiente comando para añadir la configuración al archivo de configuración de Elasticsearch /etc/elasticsearch/elasticsearch.yml. La siguiente configuración creará un nuevo clúster de Elasticsearch con el nombre«graylog» y desactivará la creación automática de un índice en Elasticsearch.
sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null << EOT cluster.name: graylog action.auto_create_index: false EOT
Antes de iniciar el servicio Elasticsearrch, ejecuta el siguiente comando para recargar el gestor systemd.
sudo systemctl daemon-reload
Ahora ejecuta los siguientes comandos para habilitar y reiniciar el servicio Elasticsearch. Esto añadirá Elasticsearch al inicio del sistema e iniciará el servicio.
sudo systemctl enable elasticsearch.service sudo systemctl restart elasticsearch.service
Por último, verifica el servicio Elasticsearch utilizando el siguiente comando.
sudo systemctl status elasticsearch.service
En la siguiente captura de pantalla, verás que el servicio Elasticsearch se está ejecutando y está habilitado.
Además, también puedes verificar la instalación de Elasticsearch accediendo a Elasticsearch mediante curl. Elasticsearch se está ejecutando en el puerto por defecto 9200, así que ejecuta el comando curl de abajo.
curl http://localhost:9200/
Ahora verás un mensaje de salida como el siguiente. Elasticsearch v7.x con el clúster denominado graylog está instalado en el servidor Debian.
Llegados a este punto, ya estás preparado para instalar el servidor Graylog en el servidor Debian.
Instalación y configuración del servidor Graylog
Para iniciar la instalación de Graylog, tendrás que descargar el archivo .deb del repositorio de Graylog e instalarlo mediante el siguiente comando.
wget https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.deb sudo dpkg -i graylog-4.2-repository_latest.deb
Ahora actualiza y refresca tu repositorio Debian.
sudo apt update
A continuación puedes ver que el repositorio Graylog se ha añadido al servidor Debian.
A continuación, instala los paquetes Graylog en tu servidor Debian utilizando el siguiente comando apt.
sudo apt install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins
Ahora se iniciará la instalación de Graylog.
Una vez finalizada la instalación, ejecuta el siguiente comando para generar el password_secret de Graylog que se utilizará para el cifrado y salado de contraseñas. El password_secret de Graylog debe ser el mismo si estás ejecutando un clúster Graylog con varios nodos. Además, necesitarás una cadena aleatoria y un número mínimo de 65 para el password_secret de Graylog.
pwgen -N 1 -s 96
Ahora copia la cadena aleatoria generada para el password_secret de Graylog en tu nota.
A continuación, ejecuta el siguiente comando para generar la contraseña encriptada con sha256. Esta contraseña se utilizará como contraseña de administración de Graylog.
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Introduce tu contraseña para la contraseña de administración de Graylog. Y verás la contraseña encriptada sha256 generada. Copia la contraseña encriptada en tu nota.
A continuación, edita la configuración del servidor Graylog /etc/graylog/server/server. conf utilizando el editor nano.
sudo nano /etc/graylog/server/server.conf
Copia y pega la contraseña_secreto de Graylog generada y la contraseña de administración de Graylog a root_password_sha2 como se indica a continuación.
password_secret = Eqq4M8EHpKbGfgi6C05t19hJ5WmF3nkVS8yjwclYHtvwsTXRulNHEsaWuy85QUTNIUc6b2ovfRjvR7yD5kwNTPAJCCw39T3d root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
Guarda y cierra el archivo cuando hayas terminado.
Ahora ejecuta el siguiente comando para recargar el gestor systemd antes de iniciar el servicio del servidor Graylog.
sudo systemctl daemon-reload
Ahora activa e inicia el servicio del servidor Graylog utilizando el siguiente comando.
sudo systemctl enable graylog-server.service sudo systemctl start graylog-server.service
El servidor Graylog estará en funcionamiento, compruébalo utilizando el siguiente comando.
sudo systemctl status graylog-server.service
En la siguiente captura de pantalla, verás que el servicio del servidor Graylog se está ejecutando y está habilitado.
Ya has completado la instalación de Graylog, que se ejecuta en el host local por defecto con el puerto 9000.
Configurar Nginx como Proxy Inverso
Tras completar la instalación y configuración del servidor Graylog, ahora vas a instalar y configurar el servidor web Nginx como proxy inverso para el servidor Graylog. Esto te permitirá ejecutar Graylog con tu nombre de dominio.
Instala el paquete Nginx en tu servidor Debian utilizando el siguiente comando.
sudo apt install nginx -y
La instalación se iniciará.
Una vez finalizada la instalación, crea un nuevo host o servidor virtual Nginx bloquea /etc/nginx/sites-available/graylog. conf utilizando el editor nano.
sudo nano /etc/nginx/sites-available/graylog.conf
Añade la siguiente configuración de Nginx. Esto habilitará Nginx como proxy inverso para el servidor Graylog que se ejecuta en http://127.0.0.1:9000/.
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name graylog.example.org; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Graylog-Server-URL http://$server_name/; proxy_pass http://127.0.0.1:9000; } }
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para activar la configuración graylog.conf. A continuación, verifica la configuración de nginx.
sudo ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/ sudo nginx -t
Asegúrate de que recibes el mensaje de salida como prueba realizada con éxito.
Por último, reinicia el servicio Nginx para aplicar una nueva configuración de host virtual mediante el siguiente comando.
sudo systemctl restart nginx
Ahora abre tu navegador web y visita el nombre de dominio para la URL de instalación de Graylog.
http://graylog.hwdomain.io/
A continuación verás la página de inicio de sesión de Graylog. Introduce el usuario admin por defecto con tu contraseña (la root_password_sha2) y pulsa el botón Iniciar sesión.
Una vez iniciada la sesión, verás el panel de control de Graylog como se muestra a continuación.
Ya has completado la ejecución de Graylog bajo el proxy inverso Nginx.
Conclusión
Enhorabuena! ya has completado la instalación del servidor Graylog y la configuración del servidor Debian 11. También has completado la configuración de Nginx como proxy inverso para el servidor Graylog.