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.

instalar dependencias básicas

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ñadir repositorio mongodb

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.

instalar 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.

iniciar y verificar mongodb

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ñadir repositorio elasticsearch

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.

instalar 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

configurar elasticsearch

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.

iniciar y verificar elasticsearch

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.

verificar elasticsearch

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ñadir repositorio graylog

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.

instalar 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.

generar contraseña secreta y contraseña sha256

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

iniciar el servicio graylog

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.

verificar el servicio graylog

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.

página de inicio de sesión de graylog

Una vez iniciada la sesión, verás el panel de control de Graylog como se muestra a continuación.

salpicadero graylog

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.

Scroll al inicio