Graylog es una herramienta de administración de registros de código abierto que lo ayuda a recopilar, indexar y analizar los registros de cualquier máquina de manera centralizada. Esta guía lo ayudará a instalar Graylog en CentOS 7 / RHEL 7.
Componentes
- MongoDB:ser una base de datos para almacenar 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.
Requisitos
Asegúrese de que su sistema esté configurado con el repositorio EPEL.
Instale los paquetes necesarios para la instalación de Graylog.
yum -y instalar wget pwgen
Elasticsearch requiere que Java esté instalado en la máquina. Entonces, instale OpenJDK u Oracle JDK.
yum install -y java-1.8.0-openjdk-headless
Verifique la versión de Java.
java-versión
Salida:
openjdk versión "1.8.0_191" OpenJDK Runtime Environment (compilación 1.8.0_191-b12)OpenJDK 64-Bit Server VM (compilación 25.191-b12, modo mixto)
Instalar Elasticsearch
Elasticsearch es uno de los componentes importantes en la configuración de Graylog. Almacena los datos provenientes de la entrada de Graylog y muestra los mensajes cada vez que un usuario lo solicita a través de la interfaz web integrada de Graylog.
Elasticseach se usa principalmente aquí para indexar los datos/registros y proporcionar la funcionalidad de búsqueda cuando la interfaz web de Graylog solicita cualquier información.
Esta guía cubre la configuración básica requerida para Graylog.
Importe la clave de firma GPG antes de la instalación.
rpm --importar https://artifacts.elastic.co/GPG-KEY-elasticsearch
Cree un archivo de repositorio para obtener la última versión del paquete Elasticsearch del repositorio oficial.
vi /etc/yum.repos.d/elasticsearch.repo
Agregue el contenido a continuación al archivo anterior.
[elasticsearch-6.x]name=Repositorio de Elasticsearch para paquetes 6.xbaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
Ahora, instale el paquete Elasticsearch usando el comando yum.
yum install -y elasticsearch
Vuelva a cargar el demonio systemctl y habilite que Elasticsearch se inicie automáticamente al iniciar el sistema.
systemctl daemon-reloadsystemctl habilitar búsqueda elástica
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
Reinicie Elasticsearch.
systemctl reiniciar elasticsearch
Espere un minuto para permitir que Elasticsearch se reinicie por completo. Elastisearch ahora debería estar escuchando 9200 para procesar solicitudes HTTP. Utilice el comando CURL para comprobar la respuesta.
curl -X OBTENER http://localhost:9200
El nombre del clúster debe ser graylog.
{ "name" :"DF8QK3-", "cluster_name" :"graylog", "cluster_uuid" :"_wAgUfN9RJeQ0npCKBswVA", "version" :{ "number" :"6.6.0", "build_flavor" :"predeterminado ", "build_type":"rpm", "build_hash":"a9861f4", "build_date":"2019-01-24T11:27:09.439740Z", "build_snapshot":falso, "lucene_version":"7.6.0" , "minimum_wire_compatibility_version" :"5.6.0", "minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"Ya sabes, para la búsqueda"}
Realice una verificación de estado del clúster de Elasticsearch.
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Asegúrate de que el estado del clúster sea verde. .
{ "cluster_name":"graylog", "status":"green", "timed_out":false, "number_of_nodes":1, "number_of_data_nodes":1, "active_primary_shards":0, "active_shards":0, "relocating_shards":0, "initializing_shards":0, "unassigned_shards":0, "delayed_unassigned_shards":0, "number_of_pending_tasks":0, "number_of_in_flight_fetch":0, "task_max_waiting_in_queue_millis":0, "active_shard/0.}Instalar MongoDB
MongoDB actúa como una base de datos para almacenar las configuraciones y la metainformación. Usaremos el repositorio oficial de MongoDB para obtener la última versión de MongoDB.
vi /etc/yum.repos.d/mongodb-org-4.0.repoAgregue información del repositorio al archivo anterior.
[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https:// www.mongodb.org/static/pgp/server-4.0.ascInstale la edición comunitaria de MongoDB usando el siguiente comando.
yum install -y mongodb-orgInicie el servicio MongoDB y actívelo para el inicio del sistema.
systemctl iniciar mongodsystemctl habilitar mongodInstalar Graylog
El servidor de Graylog acepta y procesa los mensajes de registro provenientes de las diversas entradas, muestra datos a las solicitudes que provienen de la interfaz web de Graylog.
Descargue e instale el repositorio graylog 3.x.
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpmInstale el servidor Graylog usando el siguiente comando.
yum -y instalar graylog-servidorEdite el archivo server.conf para comenzar la configuración de graylog.
vi /etc/graylog/server/server.confUse el siguiente comando para crear un secreto
pwgen -N 1 -s 96Salida:
OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPColoque el secreto como se muestra a continuación en server.conf
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPEstablezca la contraseña hash para el usuario raíz, es decir, administrador de graylog. Necesitará esta contraseña para iniciar sesión en la web de graylog.
Si alguna vez desea cambiar/restablecer la contraseña olvidada del administrador, puede editar/actualizar el server.conf con una contraseña hash.
Genere una contraseña hash usando el siguiente comando. Reemplace su contraseña con la elección de los tuyos.
echo -n su contraseña | sha256sumSalida:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Coloque la contraseña hash.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Puede 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 =UTCEstablezca solo un nodo maestro definiendo la siguiente variable, la configuración predeterminada es verdadera.
Si este servidor es su segundo nodo Graylog en su entorno, configúrelo en falso para convertir este nodo en esclavo. El nodo maestro realiza algunas tareas periódicas que los nodos esclavos no realizarán.
is_master =verdaderoEstablezca el número de mensajes de registro para mantener por índice. Se recomienda tener varios índices más pequeños en lugar de más grandes.
elasticsearch_max_docs_per_index =20000000El siguiente parámetro define tener un número total de índices. Si se alcanza este número, se eliminará el índice antiguo.
elasticsearch_max_number_of_indices =20La configuración de fragmentos se basa en la cantidad de nodos en el clúster de Elasticsearch en particular. Si solo tiene un nodo, configúrelo como 1.
elasticsearch_shards =1Esto define el número de réplicas para sus índices. Si solo tiene un nodo en el clúster de Elasticsearch, configúrelo como 0.
elasticsearch_replicas =0Instalar 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.confModifique las entradas para permitir que Graylog Web Interface se conecte al servidor Graylog. Reemplace 192.168.1.10 con la dirección IP de su sistema.
http_bind_address =192.168.1.10 :9000Reinicie el servicio Graylog.
systemctl daemon-reloadsystemctl reiniciar graylog-serverHaga que el servidor Graylog se inicie automáticamente al iniciar el sistema.
systemctl habilitar servidor graylogPuede consultar los registros de inicio del servidor; le será útil para solucionar cualquier problema de Graylog.
tailf /var/log/graylog-servidor/servidor.logSi todo va bien, debería ver el siguiente mensaje en el archivo server.log.
2019-02-25T21:00:23.157+05:30 INFO [ServerBootstrap] Servidor Graylog en funcionamiento.Cortafuegos
En CentOS 7/RHEL 7, las reglas de firewall están configuradas para bloquear la mayor parte del tráfico proveniente de las máquinas externas de manera predeterminada. Deberá agregar reglas de permiso para que Graylog funcione correctamente.
cortafuegos-cmd --permanente --add-port=9000/tcpVuelva a cargar firewalld para aplicar las nuevas reglas.
firewall-cmd --recargarAcceder a la interfaz web de Graylog
La interfaz web ahora escuchará en el puerto 9000. Apunte su navegador a.
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 servidor.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.
Crear entradas de Graylog
La entrada de Graylog debe configurarse para recibir los registros de fuentes externas, es decir, syslog o cualquier sistema de registro. Para este ejemplo, configuraremos una entrada para recibir registros de syslog en el número de puerto UDP 514.
Pero hay un problema. Si comienza a probar una entrada en uno de los puertos privilegiados, cualquier número de puerto TCP/UDP por debajo de 1024, verá un error de permiso denegado en los registros de Graylog.
Para resolver el problema, crearemos una entrada para comenzar en el puerto 1514 y redirigiremos el tráfico del 514 al 1514 con reglas de firewall.
Haga clic en Sistema>> Entradas>> seleccione UDP de Syslog y luego haga clic en Iniciar nueva entrada.
Complete los valores que se muestran a continuación.
Nodo: Seleccione su nodo Graylog
Título: Nombra tu entrada
Dirección de enlace: 0.0.0.0 (Dejar el predeterminado)
Puerto: 1514
Asegúrese de que la entrada Syslog creada esté en estado de ejecución.
Configurar Rsyslog
Una vez que haya creado las entradas, configure Rsyslog o reenvíe los registros del sistema a su servidor Graylog.
Edite el archivo de configuración de Rsyslog.
vi /etc/rsyslog.confLa configuración típica de Rsyslog se verá a continuación para enviar registros en UDP 514.
Si no desea utilizar UDP 514 y desea enviar registros directamente a UDP 1514 de Graylog, puede cambiar el número de puerto en el archivo de configuración de Rsyslog*.info;mail.none;authpriv.none;cron. ninguno @192.168.1.10:514Reinicie el servicio Rsyslog para enviar registros.
systemctl reiniciar rsyslogCortafuegos
Configure el firewall según la configuración de Rsyslog que realizó en el paso anterior.
Puerto 514
Ejecute los siguientes comandos en el servidor Graylog para redirigir el tráfico que llega del puerto UDP 514 al UDP 1514 de la entrada de Graylog.
firewall-cmd --add-masquerade --permanentfirewall-cmd --add-forward-port=port=514:proto=udp:toport=1514 --permanentfirewall-cmd --recargarPuerto 1514
Ejecute los siguientes comandos en el servidor Graylog para permitir que el número de puerto UDP 1514 en el firewall reciba registros de Rsyslog.
firewall-cmd --permanente --add-port=1514/udpfirewall-cmd --recargarVer registros usando Graylog
Espere unos minutos. Debería comenzar a recibir mensajes de registro de la máquina cliente cuando se genera el evento.
La siguiente captura de pantalla muestra los registros recibidos por Graylog (consola de Graylog>> Buscar h ).
Conclusión
Ha instalado correctamente Graylog 3.0 en CentOS 7/RHEL 7 y ha configurado 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.