Cómo instalar Graylog en AlmaLinux 9

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 esta guía, repasaremos la instalación de Graylog como Sistema Centralizado de Gestión de Registros en el servidor AlmaLinux 9. Instalarás el servidor Graylog y, a continuación, configurarás las entradas para que los clientes envíen registros al servidor Graylog.

Requisitos previos

Para que puedas completar esta guía, asegúrate de que tienes lo siguiente:

  • Un servidor AlmaLinux 9 con al menos 4 GB de memoria – En este caso, utilizaremos un servidor AlmaLinux con 8 GB de memoria y dirección IP 192.168.10.20.
  • Un usuario no root con privilegios de administrador.

Configurar repositorios

Para comenzar esta guía, añadirás nuevos repositorios a tu máquina AlmaLinux 9. Añadirás el repositorio de MongoDB 6.x, Opensearch 2.x, y el Graylog 5.x a tu sistema.

En primer lugar, ejecuta el siguiente comando dnf para instalar curl en tu sistema.

sudo dnf install curl -y

instalando curl

Ahora copia y ejecuta el siguiente comando para añadir el repositorio MongoDB. El servidor Graylog requiere al menos MongoDB v6.x.

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/9/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

A continuación, ejecuta el siguiente comando para añadir el repositorio Opensearch. Opensearch es una alternativa a Elasticsearch, que se recomienda utilizar en la nueva versión de Graylog. En este caso, utilizaremos Opensearch v2.x.

sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo

añadir repositorio mongodb y opensearch

Ahora ejecuta el siguiente comando para añadir el repositorio de Graylog a tu sistema. En el momento de escribir esto, la última versión del servidor Graylog es la v5.1.

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

añadir repositorio graylog

Por último, ejecuta el comando dnf de abajo para verificar los repositorios disponibles en tu servidor AlmaLinux.

sudo dnf repolist

Si tiene éxito, deberías ver el repositorio de MongoDB 6.x, Opensearch 2.x y el servidor Graylog.

listado de repositorios

Instalación de dependencias

Después de añadir los repositorios, instalarás MongoDB 6.x y Opensearch 2.x a través del gestor de paquetes DNF. MongoDB se utilizará para los datos de cadenas, y Opensearch será el motor de búsqueda principal del servidor Graylog.

Ejecuta el siguiente comando dnf para instalar MongoDB y Opensearch. Introduce y cuando se te pida confirmación, y pulsa INTRO.

sudo dnf install mongodb-org opensearch

instalar mongodb opensearch

Una vez instalados MongoDB y Opensearch, ejecuta el siguiente comando systemctl para recargar el gestor systemd.

sudo systemctl daemon-reload

A continuación, inicia y activa el servicio MongoDB mediante el siguiente comando.

sudo systemctl start mongod
sudo systemctl enable mongod

Inicia y habilita el servicio Opensearch con el siguiente comando.

sudo systemctl start opensearch
sudo systemctl enable opensearch

start enable mongodb opensearch

Por último, ejecuta el siguiente comando para verificar el estado de los servicios MongoDB y Opensearch. Si se están ejecutando, el estado del servicio debe ser activo (en ejecución).

sudo systemctl status mongod
sudo systemctl status opensearch

Comprobando el estado del servicio MongoDB.

comprobando mongodb

Comprobación del estado del servicio Opensearch.

comprobar opensearch

Configurar Opensearch

Para el despliegue de Graylog, se recomienda utilizar Opensearch como motor de búsqueda predeterminado. Una alternativa a Opensearch es Elasticsearch, pero sólo es compatible con Elasticsearch v7.x. En la siguiente sección, configurarás Opensearch como motor de búsqueda predeterminado para tu servidor Graylog.

En primer lugar, abre la configuración por defecto de Opensearch /etc/opensearch/opensearch.yml utilizando el siguiente comando del editor nano.

sudo nano /etc/opensearch/opensearch.yml

Descomenta el parámetro cluster.name e introduce el nombre de tu cluster Opensearch, node.name e introduce el nombre de host de tu sistema, y luego network.host e introduce tu dirección IP interna. En este caso, el nombre del clúster será graylog con el nombre de host graylog-alma y la dirección IP 192.168.10.20 (Esto se ejecuta en una red local).

cluster.name: graylog
node.name: graylog-alma
network.host: 0.0.0.0

Añade las siguientes líneas para configurar Opensearch como nodo/servidor único, desactivar auto_create_index y el plugin de seguridad (sólo con fines de prueba).

discovery.type: single-node
action.auto_create_index: false
plugins.security.disabled: true

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora, abre el archivo /etc/opensearch/jvm. options con el editor nano para configurar la asignación de memoria máxima para el servicio Opensearch.

sudo nano /etc/opensearch/jvm.options

Cambia la asignación de memoria por defecto para tu instalación de Opensearch. En este caso, Opensearch debería ejecutarse con una memoria máxima de 2 GB.

-Xms2g
-Xmx2g

Guarda el archivo y sal del editor al terminar.

A continuación, abre el archivo /usr/lib/tmpfiles.d/opensearch. conf utilizando el siguiente comando del editor nano.

sudo nano /usr/lib/tmpfiles.d/opensearch.conf

Cambia la ruta por defecto de /var/run/opensearch a /run/opensearch. Este directorio se utilizará para almacenar archivos adicionales relacionados con Opensearch y se creará automáticamente mediante esta configuración.

/run/opensearch

Guarda y cierra el archivo cuando hayas terminado.

Después, ejecuta el siguiente comando para aumentar el vm.max_map_count a 262144. Esto es requerido por el Opensearch, y para hacerlo permanente, añadirás un nuevo parámetro al archivo /etc/sysctl.conf.

sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio Opensearch y aplicar los cambios que has realizado.

sudo systemctl restart opensearch

Opensearch debe ejecutarse en la dirección IP local de tu servidor, y en este caso, se ejecuta en 192.168.10.20 con el puerto por defecto 9200.

configurar opensearch

Ejecuta el siguiente comando curl para acceder a tu instalación de Opensearch.

curl 192.168.10.20:9200

Si la configuración de Opensearch se realiza correctamente, deberías ver la información detallada sobre tu instalación de Opensearch de la siguiente manera:

comprobar opensearch

En este punto, Opensearch y MongoDB están listos. En la siguiente sección, comenzarás la instalación y configuración del servidor Graylog.

Instalación y configuración del servidor Graylog

En esta sección, instalarás el servidor Graylog v5.x en tu máquina AlmaLinux 9 y configurarás Graylog como gestión centralizada de registros para tu infraestructura.

Ejecuta el siguiente comando dnf para instalar el paquete graylog-server. Introduce y para confirmar la instalación y pulsa ENTER para continuar.

sudo dnf install graylog-server

instalación de graylog-server

Vuelve a introducir y para añadir la clave GPG del repositorio de Graylog.

importar clave gpg

Una vez instalado el servidor Graylog, ejecuta el siguiente comando para generar el password_secret para el servidor Graylog. Copia la cadena aleatoria que has generado.

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

Ahora ejecuta el siguiente comando para generar la contraseña_sha2_raíz para tu servidor Graylog. Esta contraseña se utilizará para acceder al panel de administración de Graylog.

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

Introduce tu contraseña y copia la contraseña hash generada.

generar contraseña secreta y contraseña raíz sha2

En el siguiente ejemplo JmGGtkruJ80LjnQBnz8QZ0gHjKpBZwWmH7JF0ZBa9iBS999bTlQfViaQj7jAH-XgIVcdVcDVYyy3x5Dh7fEXCPhbrSUXX1G1 es la contraseña secreta y 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 es la contraseña root_password_sha2 generada para tu servidor Graylog.

A continuación, abre la configuración de Graylog /etc/graylog/server/server.conf con el editor nano.

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

Introduce la contraseña secreta generada en el parámetro password_secret y cambia la root_password_sha2 por defecto por la nueva contraseña que has generado.

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
...
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

Descomenta el parámetro http_bind_address y cambia la dirección IP por tu dirección IP interna seguida del puerto 9000 por defecto del servidor Graylog.

http_bind_address = 192.168.10.20:9000

Guarda el archivo y cierra el editor.

Ahora ejecuta el siguiente comando systemctl para recargar el gestor systemd.

sudo systemctl daemon-reload

A continuación, inicia y habilita el servidor Graylog mediante el comando siguiente.

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

iniciar activar graylog

Por último, comprueba el estado del servidor Graylog utilizando el siguiente comando. Si Graylog se está ejecutando, deberías obtener una salida activa (en ejecución) en tu terminal.

sudo systemctl status graylog-server

comprobación del servicio graylog

Además, también puedes verificar el servidor Graylog comprobando la lista de puertos abiertos en tu sistema utilizando el comando ss que aparece a continuación.

ss -tulpn | grep 9000

Si tienes éxito, deberías ver que el servidor Graylog está utilizando ese puerto 9000.

Configurar Firewalld y SELinux

Tras instalar y configurar el servidor Graylog, el siguiente paso será configurar SELinux y firewalld. En este caso, el SELinux se está ejecutando con el modo enforcing y el firewalld se está ejecutando.

Ejecuta el siguiente comando dnf para instalar las herramientas de gestión de SELinux en tu servidor AlmaLinux. Introduce y cuando se te pida, y pulsa ENTER para continuar.

sudo dnf install policycoreutils policycoreutils-python-utils

instalación de herramientas selinux

Ahora, ejecuta el siguiente comando para añadir algunas políticas SELinux y permitir puertos para algunos servicios como el servidor Graylog puerto 9000, MongoDB puerto 27017, y Opensearch puerto 9200.

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

configuración de selinux

A continuación, ejecuta el siguiente comando firewall-cmd para añadir el puerto 9000 del servidor Graylog al firewalld y vuelve a cargar el firewalld para aplicar los cambios.

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

Por último, ejecuta el siguiente comando para verificar la lista de reglas firewalld de tu sistema. Asegúrate de que el puerto 9000 está disponible en tu firewalld.

sudo firewall-cmd --list-all

configurar firewalld

Acceder al servidor Graylog

Una vez que hayas configurado correctamente SELinux y firewalld, ahora puedes acceder a tu instalación del servidor Graylog.

Inicia tu navegador web preferido y visita la dirección IP de tu servidor AlmaLinux seguida del puerto 9000 (es decir: http://192.168.10.20:9000/). Si la instalación de Graylog se ha realizado correctamente, deberías ver la página de inicio de sesión de Graylog como la siguiente.

Inicia sesión con el usuario por defecto admin y la contraseña que hayas generado (la contraseña root_password_sha2 ).

graylog login

Si tienes el usuario y la contraseña correctos, aparecerá en tu navegador el panel de administración de Graylog.

salpicadero graylog

Crear la primera entrada de Graylog

Tras iniciar sesión en el servidor Graylog, lo primero que debes hacer es crear nuevas entradas que se utilizarán como receptor de registros del sistema de monitorización de destino. Hay dos tipos de entradas Graylog, las entradas Listener y las entradas Pull.

Algunos ejemplos de entradas Listener son Syslog TCP/UDP, Beats TCP, GELF TCP, CEF TCP y Netflow TCP. Algunos ejemplos de entradas Pull son CEF AMQP y Kafka, Raw/Plaintext AMQP y Kafka, y Syslog AMQP y Kafka.

En la siguiente sección, crearás la primera entrada Graylog utilizando Syslog UDP.

Haz clic en el menú Sistema y selecciona Entradas.

crear entrada

Selecciona el tipo de entrada que deseas crear en el menú desplegable y haz clic en Lanzar nueva entrada. En este caso, crearemos una entrada de tipo Syslog UDP.

crear entradas

Escribe el nombre de la entrada, la dirección IP interna y el puerto donde se ejecutará la nueva entrada. En este caso, crearemos una entrada Syslog UDP graylog-alma que se ejecutará en una dirección IP interna 0.0.0.0 con el puerto 5142.

crear la primera entrada

A continuación, desplázate hasta la página inferior y deberías ver la nueva entrada graylog-alma con el estado en ejecución.

la entrada está en marcha

Por último, vuelve al servidor terminal y ejecuta el comando firewall-cmd que aparece a continuación para abrir el puerto 5142 que utilizará la entrada graylog-alma.

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

Comprueba la lista de puertos abiertos en firewalld utilizando el siguiente comando. Asegúrate de que el puerto 5142 está disponible en firewalld.

sudo firewall-cmd --list-all

añadir entradas firewalld

Envío del registro a Graylog mediante Rsyslog

Tras crear la entrada Syslog UDP en el servidor Graylog, ahora puedes enviar mensajes de registro al servidor Graylog. En la siguiente sección, enviarás logs desde una máquina Linux al servidor Graylog utilizando Rsyslog.

Crea una nueva configuración adicional rsyslog /etc/rsyslog.d/graylog.conf utilizando el siguiente comando del editor nano.

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

Inserta la siguiente configuración y asegúrate de cambiar la dirección IP y el puerto con los datos de entrada graylog-alma.

*.*@192.168.10.20:5142;RSYSLOG_SyslogProtocol23Format

Guarda y sal del archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio Rsyslog y aplicar los cambios. Una vez reiniciado Rsyslog, la máquina de destino enviará los registros al servidor Graylog mediante el protocolo syslog a la entrada graylog-alma.

sudo systemctl restart rsyslog

A continuación, vuelve al panel de administración de Graylog y haz clic en el menú Stream. Si la instalación se ha realizado correctamente, deberías ver los registros detallados de la máquina de destino disponibles en el servidor Graylog.

flujo graylog

Conclusión

Enhorabuena, ¡has completado la instalación de Graylog como sistema centralizado de gestión de registros en tu sistema AlmaLinux 9! Has instalado Graylog con MongoDB y Opensearch y también has configurado la primera entrada de Graylog a través de Syslog UDP. Ahora puedes explorar diferentes tipos de entradas Graylog o configurar el despliegue de Graylog con múltiples servidores.

Scroll al inicio