Graylog es una herramienta de administración de registros de código abierto que lo ayuda a recopilar, almacenar y analizar registros de máquinas en una ubicación central.
Configuración de Graylog
Para configurar un Graylog en su entorno, necesita los siguientes softwares.
- MongoDB:almacena las configuraciones y la metainformación.
- Elasticsearch:almacena los mensajes de registro recibidos del servidor Graylog y proporciona una función para buscarlos cuando sea necesario. Elasticsearch es un traficante de recursos ya que indexa datos, así que asigne más memoria y use discos SAS o SAN.
- Servidor Graylog:analiza los registros que provienen de varias entradas y proporciona una interfaz web integrada para manejar esos registros.
Esta guía lo ayudará a instalar Graylog en CentOS 8 / RHEL 8.
Requisitos
Repositorio EPEL
Necesitamos habilitar el repositorio EPEL para descargar e instalar las utilidades requeridas.
Paquetes de instalación
Deberá instalar los siguientes paquetes para la instalación de Graylog.
dnf install -y wget pwgen perl-Digest-SHA
Instalar Java
Elasticsearch requiere que Java esté instalado en la máquina. Entonces, instale OpenJDK u Oracle JDK.
dnf install -y java-1.8.0-openjdk-headless
Verifique la versión de Java.
java -version
Salida:
openjdk version "1.8.0_242" OpenJDK Runtime Environment (build 1.8.0_242-b08) OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
Instalar Elasticsearch
Elasticsearch es uno de los software importantes en la configuración de Graylog. El propósito de Elasticsearh es almacenar los datos provenientes de la entrada de Graylog y mostrarlos en la interfaz web integrada de Graylog a pedido.
Graylog es compatible con Eleasticsearch v6.x.
Importe la clave de firma GPG antes de la instalación.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Configure un repositorio para obtener el paquete Elasticsearch v6.x del repositorio oficial.
cat << EOF > /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/oss-6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
Ahora, instale el paquete de Elasticsearch usando el comando dnf.
dnf install -y elasticsearch-oss
Para que Elasticsearch funcione con la configuración de Graylog, debemos establecer el nombre del clúster en graylog.
Edite el archivo elasticsearch.yml.
vi /etc/elasticsearch/elasticsearch.yml
Actualícelo, como se muestra a continuación.
cluster.name: graylog action.auto_create_index: false
Vuelva a cargar el demonio systemctl y habilite que Elasticsearch se inicie automáticamente al iniciar el sistema.
systemctl daemon-reload
systemctl enable elasticsearch
Reinicie Elasticsearch.
systemctl restart elasticsearch
Espere uno o dos minutos para que Elasticsearch comience por completo.
Elastisearch ahora debería escuchar 9200 para procesar solicitudes HTTP. Utilice el comando CURL para comprobar la respuesta.
curl -X GET http://localhost:9200
El nombre del clúster debe ser graylog.
{ "name" : "eaTfFg6", "cluster_name" : "graylog", "cluster_uuid" : "u-ageNH-RHGIzpfxDtNsgQ", "version" : { "number" : "6.8.6", "build_flavor" : "oss", "build_type" : "rpm", "build_hash" : "3d9f765", "build_date" : "2019-12-13T17:11:52.013738Z", "build_snapshot" : false, "lucene_version" : "7.7.2", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Instalar MongoDB
MongoDB actúa como una base de datos para almacenar las configuraciones y la metainformación.
Graylog solo es compatible con MongoDB v4.0.Usaremos el repositorio oficial de MongoDB para obtener la versión requerida.
cat << EOF > /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
Instale la edición comunitaria de MongoDB usando el siguiente comando.
dnf install -y mongodb-org
Inicie el servicio MongoDB y actívelo para el inicio del sistema.
systemctl start mongod
systemctl enable mongod
Instalar Graylog
El servidor de Graylog acepta y procesa los mensajes de registro provenientes de varias entradas y muestra datos a las solicitudes que provienen de la interfaz web de Graylog con la ayuda de Elasticsearch.
Instale el repositorio RPM de Graylog para configurar automáticamente la configuración del repositorio.
dnf install -y https://packages.graylog2.org/repo/packages/graylog-3.2-repository_latest.rpm
Instale el servidor Graylog usando el siguiente comando.
dnf install -y graylog-server
Edite el archivo server.conf para comenzar la configuración de graylog.
vi /etc/graylog/server/server.conf
Use el siguiente comando para crear un secreto
pwgen -N 1 -s 96
Salida:
1dcw10Snsvk1bKgkARGNaalO3QeZqkPG8pUcbJO3oF5ktYvDUeqRTaErFixOR95Nrv40FCFRClXIdnxwknGtl4HDrTspWmom
Coloque el secreto en el archivo server.conf.
password_secret = 1dcw10Snsvk1bKgkARGNaalO3QeZqkPG8pUcbJO3oF5ktYvDUeqRTaErFixOR95Nrv40FCFRClXIdnxwknGtl4HDrTspWmom
Establezca la contraseña hash para el usuario raíz, es decir, administrador de graylog. Necesitará esta contraseña para iniciar sesión en la interfaz web de Graylog.
Si alguna vez desea cambiar/restablecer la contraseña olvidada del administrador de Gralog, puede editar/actualizar server.conf con una contraseña codificada.Genere una contraseña hash usando el siguiente comando. Reemplaza tu contraseña con la que elijas.
echo -n yourpassword | shasum -a 256
Salida:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Coloque la contraseña hash.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Puede configurar una dirección de correo electrónico para el usuario administrador.
root_email = "[email protected]"
Establezca la zona horaria del usuario raíz (administrador).
root_timezone = UTC
Configurar la interfaz web de Graylog
A partir de la versión 2.x de Graylog, la interfaz web es atendida directamente por el servidor de Graylog. Habilite la interfaz web de Graylog editando el archivo server.conf.
vi /etc/graylog/server/server.conf
Modifique las entradas para permitir que Graylog Web Interface se conecte al servidor Graylog. Reemplace 192.168.0.10 con la dirección IP de su sistema.
http_bind_address = 192.168.0.10:9000Si accede a Graylog utilizando una dirección IP pública debido a NAT, actualice los valores a continuación. De lo contrario, sáltelo.
http_external_uri = http://public_ip:9000/
Reinicie el servicio Graylog.
systemctl daemon-reload
systemctl restart graylog-server
Haga que el servidor Graylog se inicie automáticamente al iniciar el sistema.
systemctl enable graylog-server
Puede consultar los registros de inicio del servidor para solucionar cualquier problema de Graylog.
tail -f /var/log/graylog-server/server.log
Si todo va bien, debería ver el mensaje de servidor en funcionamiento en el archivo server.log.
2020-02-08T10:26:54.484-05:00 INFO [ServerBootstrap] Graylog server up and running.
Cortafuegos
En CentOS 8/RHEL 8, las reglas de firewall están configuradas para bloquear la mayor parte del tráfico proveniente de las máquinas externas de manera predeterminada.
Agregue una regla de permiso para la interfaz web de Graylog para que podamos acceder a ella desde máquinas externas.
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --reload
Acceder a la interfaz web de Graylog
Acceda a la interfaz web yendo a la siguiente URL.
http://ip.add.re.ss:9000Inicie sesión con el nombre de usuario admin y la contraseña que configuró en root_password_sha2 en server.conf.
Una vez que haya iniciado sesión, verá la página de inicio.
Haga clic en Sistema » Resumen para conocer el estado del servidor Graylog.
Conclusión
Eso es todo. Ha instalado correctamente Graylog en CentOS 8/RHEL 8. En el próximo artículo, configuraremos Graylog para recibir registros de Rsyslog de fuentes externas. Como lectura adicional, puede intentar configurar Nginx o Apache como un proxy inverso y configurar HTTPS para la interfaz web de Graylog.