ALCE es una pila de análisis de datos con todas las funciones, consta de Elasticsearch , Logstash y Kibana, que lo ayuda a almacenar y administrar los registros de forma centralizada y ofrece la capacidad de analizar los problemas correlacionando los eventos en un momento determinado.
Esta guía lo ayuda a instalar la pila ELK en Ubuntu 16.04.
Componentes
Logstash:realiza el procesamiento (recopilar, enriquecer y enviarlo a Elasticsearch) de los registros entrantes enviados por beats (reenviador).
Elasticsearch:almacena registros entrantes de Logstash y brinda la capacidad de buscar registros/datos en tiempo real
Kibana:proporciona visualización de registros.
Beats:instalado en las máquinas cliente, envíe registros a Logstash a través del protocolo beats.
Requisitos
Cambie al usuario root.
su -
O
sudo su -
Dado que Elasticsearch se basa en Java, debe tener OpenJDK u Oracle JDK instalado en su máquina.
LEER :Cómo instalar Oracle Java 8 en Ubuntu 16.04 / LinuxMint 18
Aquí, elijo instalar OpenJ D K .
apt-get update apt-get install -y openjdk-8-jdk wget
Compruebe la versión de JAVA.
java -version
Salida:
openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Instalar Elasticsearch
Elasticsearch es un servidor de búsqueda de código abierto que ofrece análisis y búsqueda distribuida en tiempo real con la interfaz web RESTful.
Elasticsearch almacena todos los datos enviados por logstash y se muestran a través de kibana a pedido de los usuarios.
Este tema cubre los ajustes de configuración que se requieren para ELK. También puede tomar en Instalar Elasticsearch en CentOS 7/Ubuntu 16.04/Linux Mint 18 para obtener más instrucciones.
Configure el repositorio de Elasticsearch.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list
Instala Elasticsearch.
apt-get update apt-get install -y elasticsearch
Configure Elasticsearch para que se inicie durante el inicio del sistema.
systemctl enable elasticsearch systemctl start elasticsearch
Elastisearch ahora debería estar escuchando en 9200 para procesar la solicitud HTTP; podemos usar CURL para obtener la respuesta.
curl -X GET http://localhost:9200
Salida:
{ "name" : "gf5QYAn", "cluster_name" : "elasticsearch", "cluster_uuid" : "S6gZNkMERpSr-MGXqEFUJw", "version" : { "number" : "5.5.2", "build_hash" : "b2f0c09", "build_date" : "2017-08-14T12:33:14.154Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }
Instalar Logstash
Logstash es una herramienta de código abierto, recopila los registros, los analiza y los almacena en Elasticsearch para realizar búsquedas. Hay más de 160 complementos disponibles para Logstash, que brinda la capacidad de procesar un tipo diferente de eventos sin trabajo adicional.
Instale Logstash usando el comando apt-get.
apt-get install -y logstash
Crear certificado SSL
El reenviador (filebeat) que se instalará en los servidores del cliente utiliza un certificado SSL para validar la identidad del servidor Logstash para una comunicación segura.
Cree un certificado SSL con el nombre de host o IP SAN.
Opción 1:(Nombre de host FQDN)
Si usa el nombre de host en la configuración de beats (reenviador), asegúrese de tener un registro A para el servidor logstash; asegúrese de que la máquina cliente pueda resolver el nombre de host del servidor logstash.
Si no tiene un servidor de nombres en su entorno; asegúrese de agregar la entrada de host para el servidor logstash en las máquinas cliente, así como en el servidor logstash.
sudo nano /etc/hosts 192.168.12.10 server.itzgeek.local
Vaya al directorio de OpenSSL.
cd /etc/ssl/
Ahora, cree el certificado SSL. Reemplace “verde ” uno con el nombre de host de su servidor logstash real.
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local
Opción 2:(Dirección IP)
Si planea usar una dirección IP en lugar de un nombre de host, siga los pasos para crear un certificado SSL para IP SAN.
Como requisito previo, necesitaríamos agregar una dirección IP del servidor logstash a SubjectAltName en el archivo de configuración de OpenSSL.
nano /etc/ssl/openssl.cnf
Busque la sección "[ v3_ca ]" y reemplace "verde ” uno con la IP de su servidor logstash.
subjectAltName = IP:192.168.12.10
Ir al directorio de OpenSSL.
cd /etc/ssl/
Ahora, crea un certificado SSL ejecutando el siguiente comando.
openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt
Este logstash-forwarder.crt debe copiarse en todos los servidores de clientes que envían registros al servidor de logstash.
Configurar Logstash
La configuración de Logstash se puede encontrar en /etc/logstash/conf.d/. Si los archivos no existen, cree uno nuevo. El archivo de configuración logstash consta de tres secciones de entrada, filtro y salida; las tres secciones se pueden encontrar en un solo archivo o cada sección tendrá archivos separados que terminarán con .conf.
Te recomiendo que uses un solo archivo para colocar las secciones de entrada, filtro y salida.
nano /etc/logstash/conf.d/logstash.conf
En el primer apartado pondremos una entrada para la configuración de entrada. La siguiente configuración configura Logstash para escuchar en el puerto 5044 los registros entrantes de los beats (reenviador) que se encuentran en las máquinas cliente. Además, agregue los detalles del certificado SSL en la sección de entrada para una comunicación segura.
input { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40" } }
En la sección de filtros. Usaremos Grok para analizar los registros antes de enviarlos a Elasticsearch. El siguiente filtro grok buscará los registros etiquetados como "syslog" e intentará analizarlos para crear un índice estructurado.
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Para ver más patrones de filtro, echa un vistazo a la página de grokdebugger.
En la sección de salida, definiremos la ubicación donde se almacenarán los registros; obviamente, debería ser Elasticsearch.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Ahora inicie y habilite Logstash.
systemctl start logstash systemctl enable logstash
Puede solucionar cualquier problema mirando el registro a continuación.
cat /var/log/logstash/logstash-plain.log
A continuación, configuraremos beats para enviar los registros al servidor logstash.
Instalar Filebeat
Hay cuatro clientes de latidos disponibles.
- Packetbeat:analiza los datos de los paquetes de red.
- Filebeat:información en tiempo real sobre los datos de registro.
- Topbeat:obtenga información de los datos de la infraestructura.
- Metricbeat:envía métricas a Elasticsearch.
En la máquina del Cliente:
Para analizar los registros del sistema, usaremos filebeat aquí. Puede descargar filebeat desde el sitio web oficial , o puede usar el siguiente comando para instalarlo.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.list
Instalar Filebeat.
apt-get update apt-get install -y filebeat
Filebeat (beats) utiliza un certificado SSL para validar la identidad del servidor de logstash, así que copie logstash-forwarder.crt del servidor de logstash al cliente.
$ scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl
Configurar Filebeat
Ahora es el momento de conectar filebeat con Logstash; siga los pasos a continuación para configurar filebeat con la pila ELK.
El archivo de configuración de Filebeat está en formato YAML, lo que significa que la sangría es muy importante. Asegúrate de usar la misma cantidad de espacios que se usan en la guía.
Abre el archivo de configuración de Filebeat.
nano /etc/filebeat/filebeat.yml
En la parte superior, verás buscadores de Filebeat. Aquí, debe especificar qué archivos deben enviarse a logstash y cómo deben manejarse. Cada prospector comienza con – personaje.
Con fines de prueba, configuraremos filebeat para enviar /var/log/syslog al servidor de Logstash. Para ello, modifique el prospector existente en rutas sección. Comente el – /var/log/*.log para evitar enviar todos los .log archivo presente en ese directorio a Logstash.
. . . paths: - /var/log/syslog # - /var/log/*.log . . .
En la sección Resultados , comente la sección output.elasticsearch: ya que no vamos a almacenar registros directamente en Elasticsearch.
Ahora, busque la línea "output.logstash: ” y modifique las entradas como se muestra a continuación. Esta sección define filebeat para enviar registros al servidor logstash “server.itzgeek.local ” en el puerto “5044 ” y mencione la ruta donde se encuentra el certificado SSL copiado.
Nota:Reemplace “server.itzgeek.local ” con la dirección IP en caso de que esté utilizando IP SAN.
. . . output.logstash: # The Logstash hosts hosts: ["server.itzgeek.local:5044"] # Optional SSL. By default is off. # List of root certificates for HTTPS server verifications ssl.certificate_authorities: ["/etc/ssl/logstash-forwarder.crt"] . . .
Reinicie el servicio.
systemctl restart filebeat systemctl enable filebeat
Los registros de Beats normalmente se encuentran en su archivo de registro.
cat /var/log/filebeat/filebeat
Instalar y configurar Kibana
Kibana proporciona visualización de registros almacenados en elasticsearch, descárguelo del sitio web oficial o use el siguiente comando para configurar el repositorio.
apt-get install -y kibana
Edite el archivo kibana.yml.
nano /etc/kibana/kibana.yml
De forma predeterminada, Kibana escucha en localhost, lo que significa que no puede acceder a la interfaz de Kibana desde máquinas externas. Para habilitarlo, edite la siguiente línea con la IP de su máquina.
server.host: "192.168.12.10"
Quite el comentario de la siguiente línea y actualícela con la URL de la instancia de Elasticsearch. En mi caso, es localhost.
elasticsearch.url: "http://localhost:9200"
Inicie y habilite kibana al iniciar el sistema.
systemctl start kibana systemctl enable kibana
Acceda a Kibana utilizando la siguiente URL.
http://tu-dirección-ip:5601/O
http://nombre-de-su-servicio:5601En su primer inicio de sesión, debe asignar el índice de filebeat.
Escriba lo siguiente en el Nombre o patrón del índice caja.
filebeat-*
Selecciona @timestamp y luego haz clic en crear.
@timestamp
Revise los patrones de índice y su mapeo.
Haz clic en Descubrir en la navegación izquierda para ver los registros entrantes de la máquina cliente.
Eso es todo. Ha configurado correctamente la pila ELK en Ubuntu 16.04