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 forma centralizada. Esta guía se centra en la instalación de Graylog en Ubuntu 18.04/Ubuntu 16.04.
Componentes
MongoDB – Actúa como una base de datos, almacena las configuraciones y la metainformación.
Búsqueda elástica – Almacena los mensajes de registro y ofrece una función de búsqueda. Se recomienda asignar más memoria y usar discos SAS o SAN para los nodos de Elasticsearch. Aquí, donde ocurre toda tu búsqueda.
Servidor Graylog – Analizador de registro. Recopila los registros de varias entradas y proporciona salida a una interfaz web integrada para administrar los registros.
Requisitos
Como sabes, Elasticsearch es una aplicación basada en Java. Instale OpenJDK u Oracle JDK en su máquina para continuar.
Aquí, optaré por OpenJDK 8.
sudo apt update sudo apt install -y apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen curl dirmngr
Verifique la versión de Java.
java -version
Salida:
openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Instalar Elasticsearch
Elasticsearch es uno de los componentes principales que requiere que Graylog se ejecute, actúa como un servidor de búsqueda, ofrece una búsqueda distribuida en tiempo real y análisis con la interfaz web RESTful.
Elasticsearch almacena todos los registros enviados por el servidor Graylog y muestra los mensajes cada vez que el usuario lo solicita a través de la interfaz web integrada.
Descargue e instale la clave de firma GPG.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Configure el repositorio de Elasticsearch ejecutando el siguiente comando.
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Actualice el caché del repositorio e instale el paquete Elasticsearch.
sudo apt update sudo apt install -y elasticsearch
Haga que el servicio Elasticsearch se inicie automáticamente al iniciar el sistema.
sudo systemctl enable elasticsearch
Lo único importante es establecer un nombre de clúster como graylog . Edite el archivo de configuración de Elasticsearch y actualícelo según corresponda.
sudo nano /etc/elasticsearch/elasticsearch.yml
Establezca el nombre del clúster que se muestra a continuación.
cluster.name: graylog
Inicie el servicio Elasticsearch para leer las nuevas configuraciones.
sudo systemctl restart elasticsearch
Espere al menos un minuto para permitir que Elasticsearch se reinicie por completo. Elastisearch ahora debería estar escuchando en 9200 para el procesamiento de la solicitud HTTP. Utilice un CURL para comprobar la respuesta.
curl -X GET http://localhost:9200
Salida:
Asegúrese de que el nombre del clúster se muestre como graylog .
{ "name" : "bgVbYrc", "cluster_name" : "graylog", "cluster_uuid" : "-wECQlwnSZWftd_XdWSz-g", "version" : { "number" : "6.6.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "1fd8f69", "build_date" : "2019-02-13T17:10:04.160291Z", "build_snapshot" : false, "lucene_version" : "7.6.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Opcional: Pruebe el estado del clúster de Elasticsearch.
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Salida:
Asegúrese de que la salida produzca el estado del clúster como 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_shards_percent_as_number" : 100.0 }
Instalar MongoDB
Descargue e instale la última versión de MongoDB desde el sitio web oficial. Importa la clave pública en la terminal para comenzar.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Agregue el repositorio mongodb creando el /etc/apt/sources.list.d/mongodb-org.list
archivo usando el siguiente comando.
### Ubuntu 18.04 ### echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list ### Ubuntu 16.04 ### echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Instale MongoDB usando el siguiente comando.
sudo apt update sudo apt install -y mongodb-org
Inicie MongoDB y habilítelo al iniciar el sistema.
sudo systemctl start mongod sudo systemctl enable mongod
Instalar Graylog
Graylog Server acepta y procesa los mensajes de registro y luego los muestra para las solicitudes que provienen de la interfaz web de graylog.
Descargue e instale el repositorio graylog 3.x.
wget https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.deb sudo dpkg -i graylog-3.0-repository_latest.deb
Actualice la memoria caché del repositorio.
sudo apt update
Instale el servidor Graylog usando el siguiente comando.
sudo apt install -y graylog-server
Configurar Graylog
Debe establecer un secreto para proteger las contraseñas de los usuarios. Usa el comando pwgen para lo mismo.
pwgen -N 1 -s 96
Salida:
fGoTI07CooB6xNy5sdPVSKSuq6QSu2QyWf6G9z3haolgwbERTQ9ZbfbF6hxRYbJMMAlEZX7CXHxJLBkNyfM0420u8aFuZy9M
Edite el servidor.conf archivo para comenzar la configuración de graylog.
sudo nano /etc/graylog/server/server.conf
Coloque el secreto como a continuación.
password_secret = fGoTI07CooB6xNy5sdPVSKSuq6QSu2QyWf6G9z3haolgwbERTQ9ZbfbF6hxRYbJMMAlEZX7CXHxJLBkNyfM0420u8aFuZy9M
Lo siguiente es establecer una contraseña hash (sha256) para el usuario root (que no debe confundirse con el usuario del sistema, el usuario root de graylog es admin).
Necesitará esta contraseña para iniciar sesión en la interfaz web de Graylog. La contraseña del administrador no se puede cambiar mediante la interfaz web. Por lo tanto, debe editar esta variable para configurarla.
Reemplace su contraseña con la elección de los tuyos.
echo -n yourpassword | sha256sum
Salida:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Edite el servidor.conf archivo de nuevo.
sudo nano /etc/graylog/server/server.conf
Coloque la contraseña hash.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Puede configurar el usuario administrador de la dirección de correo electrónico.
root_email = "[email protected]"
Establezca la zona horaria del usuario raíz (administrador).
root_timezone = UTC
Establezca solo un nodo maestro definiendo la siguiente variable. Si agrega un segundo nodo Graylog, establezca esto en falso para convertir el segundo nodo en esclavo, ya que el nodo maestro realiza algunas tareas periódicas que los nodos esclavos no realizarán.
is_master = true
Establecer 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 = 20000000
El 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 = 20
La 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 = 1
Esta configuración 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 = 0
Configurar la interfaz web de Graylog
A partir de la versión 2.x, el servidor Graylog sirve directamente la interfaz web. Configure la interfaz web de Graylog editando server.conf archivo.
sudo nano /etc/graylog/server/server.conf
Actualice la siguiente entrada con la dirección IP de su sistema desde la cual accederá a la interfaz web de Graylog.
http_bind_address = your-server-ip:9000
Reinicie el servicio Graylog.
sudo systemctl restart graylog-server
Haga que el servidor Graylog se inicie automáticamente al iniciar el sistema.
sudo systemctl enable graylog-server
Puede consultar los registros de inicio del servidor y le será útil para solucionar problemas de Graylog en caso de que surja un problema.
sudo tail -f /var/log/graylog-server/server.log
En el inicio exitoso de graylog-server, debería recibir el siguiente mensaje en el archivo de registro.
2019-02-22T10:07:49.398+05:30 INFO [ServerBootstrap] Graylog server up and running.
Acceder a Graylog
La interfaz web ahora estará escuchando en el puerto 9000, dirija 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 1514. Porque si comienza a probar una entrada en uno de los puertos privilegiados, cualquier número de puerto TCP/UDP por debajo de 1024, verá el permiso denegado. error en los registros de Graylog.
Entonces, crearemos una entrada para comenzar en el puerto 1514.
Haga clic en Sistema>> Entradas>> seleccione UDP de Syslog y luego haga clic en Iniciar nueva entrada.
Complete con los valores y luego haga clic en Guardar.
Nodo: Seleccione su nodo Graylog
Título: Nombra tu entrada
Dirección de enlace: 0.0.0.0 (Dejar el predeterminado)
Puerto: 1514
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.
sudo nano /etc/rsyslog.conf
La configuración típica de Rsyslog se verá a continuación para enviar registros en UDP 1514.
*.info;mail.none;authpriv.none;cron.none @192.168.1.10:1514
Reinicie el servicio Rsyslog para enviar registros.
systemctl restart rsyslog
Ver 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 Ubuntu 18.04/Ubuntu 16.04 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.