Cómo instalar el Sistema Centralizado de Gestión de Registros Graylog en Rocky Linux

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, configurarás la Gestión Centralizada de Registros utilizando Graylog en el servidor Linux Rocky. Este tutorial incluye la instalación básica de algunas dependencias de Graylog, como Elasticsearch y MongoDB. Además, también configurarás la Entrada Graylog y enviarás los registros desde la máquina Linux al Servidor Graylog a través de la Ingesta Syslog.

Requisitos previos

Para seguir este tutorial, necesitarás los siguientes requisitos:

  • Un servidor que ejecute Rocky Linux 8.
  • Un usuario no root con privilegios sudo/administrador.
  • Un firewalld en ejecución y habilitado.

Instalación de Java OpenJDK

Graylog Server es un servidor de aplicaciones escrito principalmente en Java. Para instalar Graylog, deberás instalar el OpenJDK de Java en tu sistema Rocky Linux. En el momento de escribir esto, el Graylog Server requería al menos Java v8 o superior.

En el repositorio de Rocky Linux, hay múltiples versiones de Java OpenJDK que puedes instalar. Puedes comprobar todas las versiones disponibles de OpenJDK utilizando el siguiente comando.

sudo dnf search openjdk

En esta demo, instalarás y utilizarás el Java OpenJDK v11 para el Graylog Server. Ejecuta el siguiente comando dnf para instalar java OpenJDK en tu sistema Rocky Linux.

Cuando se te pida que confirmes la instalación, introduce‘y‘ y pulsa ENTER.

sudo dnf install java-11-openjdk-devel

Cuando finalice la instalación de java OpenJDK, ejecuta el siguiente comando‘java‘ para comprobar y verificar la versión de Java OpenJDK. Deberías ver el OpenJDK v11 instalado en tu sistema Rocky Linux.

java version

comprobar java

Instalación de la base de datos NoSQL MongoDB

Ahora instalarás la base de datos NoSQL MongoDB como las dependencias para el Servidor Graylog. MongoDB se utiliza para almacenar los datos del Graylog Server.

Para instalar MongoDB, deberás añadir el repositorio MongoDB. A continuación, podrás instalar los paquetes de MongoDB.

Ejecuta el siguiente comando para añadir el repositorio MongoDB para el sistema Rocky Linux.

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

Ahora ejecuta el siguiente comando dnf para comprobar y verificar la lista del repositorio disponible en tu sistema. Deberías ver añadido el repositorio«mongodb«.

sudo dnf repolist

añadir repo mongodb

A continuación, instala el paquete MongoDB utilizando el siguiente comando dnf. Cuando se te pida que confirmes la instalación, introduce«y» y pulsa ENTER para continuar.

sudo dnf install mongodb-org

instalar mongodb

Además, también se te pedirá que confirmes la clave GPG del repositorio MongoDB. Introduce ‘y‘ para confirmar y añadir la clave GPG de MongoDB.

añadir clave gpg

una vez finalizada la instalación de MongoDB, ejecuta el siguiente comando para recargar el gestor systemd y aplicar el nuevo archivo de servicio de MongoDB.

sudo systemctl daemon-reload

Ahora inicia el servicio MongoDB con el nombre‘mongod‘ utilizando el siguiente comando de sistema. A continuación, habilita el servicio ‘mongod‘ para que se inicie automáticamente al arrancar el sistema.

sudo systemctl enable mongod
sudo systemctl start mongod

Por último, ejecuta el siguiente comando systemctl para comprobar y verificar el servicio «mongod«. Deberías ver que el servicio ‘mongod‘ de MongoDB se está ejecutando y está habilitado en el arranque del sistema.

sudo systemctl status mongod

comprobar servicio mongodb

Instalación de Elasticsearch

Elasticsearch se encarga del motor de búsqueda de la Pila de Gestión de Registros del Servidor Graylog. En el momento de escribir esto, necesitarás instalar Elasticsearch v7.x.

La versión actual de Graylog Server sólo funcionará con Elasticsearch v7.x. Si instalas elasticsearch más reciente, como v8.x o v9.x, obtendrás un error.

Ahora ejecuta el siguiente comando para configurar el repositorio de Elasticsearch v7.x para el sistema Linux Rocky.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Ejecuta el siguiente comando para comprobar y verificar la lista del repositorio en tu sistema. Verás que el repositorio de Elasticsearch v7.x está añadido.

sudo dnf repolist

añadir repositorio elasticsearch

A continuación, instala el paquete Elasticsearch utilizando el comando dnf que aparece a continuación. Cuando se te pida que confirmes la instalación, introduce«y» para confirmar y pulsa INTRO.

sudo dnf install elasticsearch

instalar elasticsearch

También se te pedirá que añadas la clave GPG al repositorio de Elasticsearch. Introduce‘y‘ para añadir la clave GPG. Y la instalación habrá finalizado.

añadir clave gpg

A continuación, tendrás que configurar el servidor Elasticsearch para la instalación básica que utilizará Graylog Server.

Edita el archivo de configuración por defecto de Elasticsearch‘/etc/elasticsearch/elasticsearch.yml‘ utilizando el siguiente comando.

sudo nano /etc/elasticsearch/elasticsearch.yml

Añade y descomenta la siguiente configuración básica de Elasticsearch.

cluster.name: graylog-rocky8
action.auto_create_index: false

Guarda y cierra el archivo cuando hayas terminado.

Además, también puedes configurar la asignación de memoria máxima para el servidor Elasticsearch editando el archivo‘/etc/elasticsearch/jvm.options‘ mediante el comando siguiente.

sudo nano /etc/elasticsearch/jvm.options

descomenta y cambia la configuración por defecto como se indica a continuación. Puedes cambiar aquí la asignación de memoria máxima con la memoria máxima de tu servidor.

-Xms1g
-Xmx1g

Guarda y cierra el archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar un nuevo archivo de servicio para el servidor Elasticsearch.

sudo systemctl daemon-reload

A continuación, inicia y habilita el servidor Elasticsearch mediante el siguiente comando. El servicio Elasticsearch se ejecutará automáticamente al iniciar el sistema, y el estado actual de Elasticsearch ahora debería ser en ejecución.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

configurar elasticsearch

Por último, ejecuta el siguiente comando para comprobar el servicio Elasticsearch y asegurarte de que se está ejecutando. Deberías ver la salida que indica que el servicio Elasticsearch se está ejecutando y está habilitado.

sudo systemctl status ealsticsearch

comprobar elasticsearch

Además, también puedes acceder a tu servidor Elasticsearch mediante el siguiente comando curl. Deberías obtener la salida de la información básica sobre tu servidor Elasticsearch, incluyendo el nombre del clúster, el uuuid del clúster, la versión de Elasticsearch y la versión de Lucene (el núcleo de Elasticsearch).

curl localhost:9200

prueba elasticsearch

Instalación del servidor Graylog

Después de haber instalado el OpenJDK de Java, MongoDB y Elasticsearch, ahora tendrás que instalar el Graylog Server. Antes, tendrás que configurar el repositorio Graylog en el servidor Linux Rocky. A continuación, puedes empezar a configurar el Servidor Graylog, lo que incluye configurar la autenticación por contraseña para Graylog, y configurar la dirección http_bind_address que utilizará el Servidor Graylog.

En el momento de escribir esto, la última versión de Graylog Server es la v4.3. Ejecuta el siguiente comando para añadir el repositorio Graylog a tu servidor.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.rpm

Comprueba la lista de repositorios para Graylog Server utilizando el comando siguiente. Deberías ver que el repositorio Graylog Server está añadido.

sudo dnf repolist

añadir repositorio graylog

A continuación, ejecuta el siguiente comando dnf para instalar el paquete Graylog Server. Cuando se te pida que confirmes la instalación, introduce«y» para confirmar y pulsa INTRO.

sudo dnf install graylog-server graylog-integrations-plugins

instalar graylog

Además, se te pedirá que añadas la clave GPG al repositorio de Graylog Server. Introducey’ para añadir la clave GPG a tu sistema y pulsa INTRO. Y la instalación de Graylog Server habrá terminado.

añadir clave gpg

Ahora vas a configurar el Graylog Server básico. Antes de eso, ejecuta el comando dnf que aparece a continuación para instalar el paquete‘pwgen‘. Introduce‘y‘ cuando se te pida que confirmes la instalación y pulsa ENTER.

El paquete pwgen proporciona una herramienta de línea de comandos para generar secretos y contraseñas que se utilizarán para configurar el Servidor Graylog.

sudo dnf install pwgen

instalar pwgen

A continuación, ejecuta el siguiente comando pwgen para generar el‘password_secret‘ para el Graylog Server. Asegúrate de copiar el secreto generado en tu nota.

sudo pwgen -N 1 -s 96

Ahora ejecuta el siguiente comando para generar el hash sha256 de la contraseña‘root_password_sha2‘ para el Graylog Server. esta contraseña se utilizará para iniciar sesión en el panel de control del Graylog Server. Asegúrate de utilizar una contraseña segura y copia la contraseña hash sha256 generada en tu nota.

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

generar contraseña secreta

A continuación, edita el archivo de configuración del Servidor Graylog ‘/etc/graylog/server/server.conf‘ utilizando el siguiente comando.

sudo nano /etc/graylog/server/server.conf

Cambia el valor de la opción‘password_secret‘ y‘root_password_sha2‘ con tu contraseña generada. Además, también puedes cambiar el nombre de usuario predeterminado para iniciar sesión en el servidor Graylog en la opción ‘graylog_username‘.

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

Ahora cambia la opción ‘http_bind_address’ con la dirección IP interna de tu servidor. Además, el puerto por defecto para Graylog Server es TCP ‘9000’.

http_bind_address = 0.0.0.0:9000

Guarda y cierra el archivo cuando hayas terminado.

configurar graylog

Ahora ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar el archivo de servicio Graylog Server.

sudo systemctl daemon-reload

Inicia y activa el servicio‘graylog-server ‘ mediante el siguiente comando systemctl. Ahora debería estar funcionando y habilitado el Servidor Graylog, que se iniciará automáticamente al arrancar el sistema.

sudo systemctl enable graylog-server
sudo systemctl start graylog-server

iniciar graylog

Comprueba y verifica el servicio ‘graylog-server‘ utilizando el siguiente comando. Deberías ver la salida del estado actual de Graylog Server se está ejecutando, y está habilitado y se ejecutará automáticamente en el arranque.

sudo systemctl status graylog-server

Por último, tendrás que añadir el puerto‘9000‘ que utiliza el Servidor Graylog al firewalld.

Ejecuta el siguiente comando firewall-cmd para añadir el puerto ‘9000‘ al firewalld. A continuación, recarga las reglas del firewalld para aplicar los nuevos cambios.

sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

Configurar SELinux

Si estás ejecutando el Graylog Server con SELinux activado en el modo de «aplicación», tendrás que configurar las reglas SELinux para el Graylog Server.

Antes de gestionar SELinux, ejecuta el siguiente comando dnf para instalar la herramienta de línea de comandos para gestionar SELinux. Cuando se te pida que confirmes la instalación, introduce«y» y pulsa INTRO.

sudo dnf install policycoreutils policycoreutils-python-utils

instala las herramientas de gestión SEL:inux

A continuación, ejecuta el siguiente comando para añadir las reglas SELinux para el Servidor Graylog, Elasticsearch y MongoDB.

sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

Ahora puedes acceder a tu Servidor Graylog.

Crear una nueva entrada Graylog

Para poder recibir registros de tus aplicaciones o máquinas cliente, tendrás que configurar una entrada en tu Graylog Server. Hay varios tipos de entradas Graylog que puedes utilizar, consulta la Documentación de Graylog para más detalles. La entrada Graylog funcionará con el protocolo TCP/UDP y podrá recibir registros en varios formatos, como Syslog, GELF, CEF o RAW. Además, podrás recibir logs seucremente a través del protocolo TCP/HTTPS.

En esta demo, crearás una entrada Graylog que se utilizará para recibir logs de una máquina cliente Linux. Esta entrada utilizará el «Syslog UDP» y recibirá los mensajes de registro de la máquina cliente a través del protocolo UDP.

Abre tu navegador web y visita la dirección IP del servidor seguida del puerto «9000» del servidor Graylog (es decir, http://192.168.5.100:9000/). Verás la página de inicio de sesión de tu instalación de Graylog Server.

Para acceder al panel de control de Graylog Server, introduce tu nombre de usuario y contraseña. A continuación, haz clic en«Iniciar sesión«.

graylog login

Ahora deberías ver la nueva ventana del salpicadero de administración de Graylog Server.

salpicadero graylog

Para crear una nueva Entrada Graylog, haz clic en el menú«Sistema» y selecciona«Entradas«.

crear entrada

Selecciona el tipo de entrada y haz clic en «Lanzar nueva entrada«. En este ejemplo, crearás un nuevo tipo de entrada«Syslog UDP«. Todas las máquinas cliente Linux enviarán registros a través del protocolo Syslog UDP a esta entrada.

crear entrada syslog udp

Ahora introduce los detalles de tu nueva entrada como se indica a continuación:

  • Título: utilizaremos el título«syslog-udp-input«.
  • Dirección de enlace: introduce la dirección IP interna de tu servidor Graylog, o puedes utilizar«0.0.0.0» si estás en la red interna.
  • Puerto: en este ejemplo, utilizaremos el puerto UDP«5142» para esta entrada.

Ahora haz clic en«Guardar» para añadir la entrada.

configuraciones de entrada syslog udp

Ahora deberías ver el estado de tu entrada Graylog con el estado«en ejecución«. Y en la parte inferior, deberías ver información detallada sobre tu entrada Graylog.

graylog entrada udp en funcionamiento

Por último, vuelve a tu servidor Graylog y ejecuta el comando firewall-cmd que aparece a continuación para añadir el puerto UDP«5142» que utilizará el«syslog-udp-input«.

sudo firewall-cmd --add-port=5142/udp --permanent
sudo firewall-cmd --reload

Envío del registro mediante Ingest Syslog al servidor Graylog

Has creado la Entrada UDP Graylog Syslog en el Servidor Graylog. Ahora vas a configurar una máquina Linux para que utilice el Rsyslog para enviar registros al Servidor Graylog. En este ejemplo, utilizaremos la máquina clinet Rocky Linux con el nombre de host«linux-host1» y la dirección IP del Servidor Graylog es‘192.168.5.100‘.

Conéctate a tu máquina cliente Linux y ejecuta el siguiente comando para comprobar el servicio ‘rsyslog’ en tu máquina linux. Deberías obtener la salida del servicio ‘rsyslog’ en ejecución.

sudo systemctl status rsyslog

comprobar rsyslog

A continuación, crea un nuevo archivo de configuración rsyslog adicional que se utilizará para enviar los registros al Servidor Graylog. Ejecuta el siguiente comando para crear un nuevo archivo‘/etc/rsyslog.d/graylog.conf‘.

sudo nano /etc/rsyslog.d/graylog.conf

Añade la siguiente configuración al archivo. Con esta configuración, el servicio rsyslog en el‘linux-host1‘ enviará los logs al Servidor de Entrada Graylog que se ejecuta en la dirección IP del servidor‘192.168.5.100‘ con el puerto UDP‘5142‘.

*.*@192.168.5.100:5142;RSYSLOG_SyslogProtocol23Format

Guarda y cierra el archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio‘rsyslog‘ y aplicar los nuevos cambios en el archivo de configuración. Y el servicio rsyslog enviará los registros del sistema al Servidor Graylog, puedes esperar unos minutos.

sudo systemctl restart rsyslog

A continuación, vuelve al panel de administración de Graylog Server. A continuación, haz clic en el menú«Buscar«. Ahora deberías ver los logs de la máquina«linux-host1» y está disponible en el Graylog Server.

registro centralizado con servidor graylog

Conclusión

A lo largo de este tutorial, has aprendido a instalar el Graylog Server en el servidor Linux Rocky. Esto incluye la instalación de algunas dependencias como Java OpenJDK, Elasticsearch y MongoDB. Además, has configurado el Graylog Server en Rocky Linux con el SELinux habilitado en modo enforcing y el firewalld habilitado.

Al final, has aprendido a configurar Graylog Input con el tipo «Syslog UDP», que puede utilizarse como sistema centralizado de gestión de logs para máquinas Linux. Además, has aprendido a enviar registros desde las máquinas Linux al Servidor Graylog a través del servicio Rsyslog. Ahora también has configurado más entradas para tus aplicaciones o añadido nuevas máquinas Linux al Servidor Graylog.

También te podría gustar...