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
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 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
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.
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
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 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
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 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
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
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
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 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
Además, se te pedirá que añadas la clave GPG al repositorio de Graylog Server. Introduce‘y’ para añadir la clave GPG a tu sistema y pulsa INTRO. Y la instalación de Graylog Server habrá terminado.
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
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
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.
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
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
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«.
Ahora deberías ver la nueva ventana del salpicadero de administración de Graylog Server.
Para crear una nueva Entrada Graylog, haz clic en el menú«Sistema» y selecciona«Entradas«.
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.
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.
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.
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
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.
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.