Cómo instalar ELK Stack (Elasticsearch, Logstash y Kibana) en CentOS 7 / RHEL 7

Cómo instalar ELK Stack (Elasticsearch, Logstash y Kibana) en CentOS 7 / RHEL 7

El análisis de registros siempre ha sido una parte importante de la administración de sistemas, pero es una de las tareas más tediosas y tediosas, especialmente cuando se trata de una serie de sistemas. Afortunadamente, ELK stack ha facilitado la tarea, ELK stack se utiliza ahora para la inspección/análisis de registros y es una combinación de los siguientes tres productos de código abierto

  • ElasticSearch – Es una base de datos No-SQL que indexa y almacena información
  • Logstash – Es una herramienta de canalización de registros que recoge y analiza los registros
  • Kibana – Proporciona GUI (Interfaz Gráfica de Usuario) y se utiliza para la visualización de los datos y funciona en la parte superior de la búsqueda elástica.

En este tutorial, vamos a crear una pila ELK en una máquina de Centos 7 y también instalaremos un cliente de beat llamado’File Beat’ en la máquina del cliente.

  • 192.168.0.180 Pila de alce (CentOS 7)
  • 192.168.0.70 cliente (CentOS 7)

Requisito previo

La máquina en la que vamos a instalar ELK debe tener Java versión 8 instalado en ella como… Así que asegúrese de que java open-jdk versión 1.8.0_* esté instalado y funcionando y en caso de que no esté instalado, entonces ejecute el comando yum para instalar

[root@elk-stack ~]# yum install java-1.8.0-openjdk

[root@elk-stack ~]# java -version
openjdk versión «1.8.0_131»
Entorno de tiempo de ejecución de OpenJDK (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, modo mixto)
[root@elk-stack ~]#

Establecer el nombre de host y actualizar el archivo /etc/hosts

[root@elk-stack ~]# hostnamectl set-hostname "elk-stack.example.com"

Actualizar el archivo /etc/hosts

192.168.0.180 pila de alce.example.com pila de alce>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

Pasos de instalación de la pila ELK

Búsqueda elástica

Empezaremos importando las claves GPG para el elasticsearch, esta clave también será compartida con logstash & kibana. Para instalar elasticsearch, ejecute

[root@elk-stack ~]# rpm -import http://packages.elastic.co/GPG-KEY-elasticsearch

[root@elk-stack ~]#

Ahora crearemos un repositorio para el repositorio de búsqueda elástica,

>

Una vez añadido el repositorio, instale elasticsearch usando yum,

[root@elk-stack ~]# yum install elasticsearch -y

Ahora iniciamos el servicio y también se configurará para que se inicie en el momento del arranque

[root@elk-stack ~]# systemctl daemon-reload
[root@elk-stack ~]# systemctl start elasticsearch
root@elk-stack ~]# systemctl enable elasticsearch

Permitir el puerto 9200 tcp en el firewall del sistema operativo. En caso de que Firewall se esté ejecutando

[root@elk-stack ~]# firewall-cmd --permanente --add-port 9200/tcp

Ahora probaremos la búsqueda elástica para asegurarnos de que está respondiendo a las consultas

[root@elk-stack ~]# curl -X GET http://localhost:9200

La salida del comando de arriba debería ser algo así como abajo:

curl-elastic-centos7

Logstash

Ahora añadiremos el repositorio logstash,

[root@elk-stack ~]# vi /etc/yum.repos.d/logstash.repo
[logstash]
name=Logstash
baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enable=1

>

Ahora instale logstash,

[root@elk-stack ~]# yum install logstash -y

Kibana

Ahora crearemos un repositorio para kibana,

>

Ahora instale kibana usando yum,

[root@elk-stack ~]# yum install kibana -y

Después de la instalación, inicie service & enable it en el momento del arranque

[root@elk-stack ~]# systemctl start kibana
root@elk-stack ~]# systemctl enable kibana>

Permitir el puerto 5601 en OS Firewall

[root@elk-stack ~]# firewall-cmd –permanente –add-port 5601/tcp
[root@elk-stack ~]# firewall-cmd –reload

A continuación, accederemos a la página web de kibana para asegurarnos de que funciona. Para ello, abra el navegador web e introduzca la siguiente url

http://IP-Address:5601/

Kibana-Dashboard-CentOS7

La instalación de ELK stack ya está completa y haremos las configuraciones necesarias.

Configuración

Certificado SSL para logstash

Después de la instalación de logstash, crearemos un certificado SSL para asegurar la comunicación entre logstash y filebeat (clientes). Dado que utilizaremos la dirección IP para conectarnos al servidor, crearemos un certificado SSL para SAN IP.

Antes de crear un certificado SSL, haremos una entrada de nuestra IP en openssl.cnf,

[root@elk-stack ~]# vi /etc/pki/tls/openssl.cnf

y busque el parámetro con’subjectAltName’ bajo [ v3_ca ] sección & agregue la IP de su servidor,

subjectAltName = IP: 192.168.0.180

Ahora cambie el directorio a /etc/ssl & cree un certificado SSL con 365 días de validez,

[root@elk-stack ~]# cd /etc/ssl/
[root@elk-stack ssl]# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crt
Generación de una clave privada RSA de 2048 bits
.....+++
...........+++
escribir una nueva clave privada en 'logstash-forwarder.key'.
-----
[root@elk-stack ssl]#

>

Una vez que el certificado esté listo, debe ser copiado a todos los clientes usando el comando scp.

Configuración de Logstash

Ahora crearemos un archivo de configuración para logstash bajo la carpeta ‘ /etc/logstash/conf.d ‘. Este archivo se dividirá en tres secciones: entrada, filtro y salida

5044
ssl => true
ssl_certificate => «/etc/ssl/logstash_frwrd.crt»
ssl_key => «/etc/ssl/logstash-forwarder.key»
congestion_threshold => «40»
}
}>

Esta sección hace que logstash escuche en el puerto 5044 los registros entrantes y también proporciona los detalles del certificado SSL para una conexión segura.

La siguiente sección,’sección de filtro’, analizará los registros antes de enviarlos a elasticsearch ,

.
# Sección de filtro
Filtro {
if[type] == «syslog» {
grok {
match => { «message» => «%{SYSLOGLINE}» }
}
fecha { fecha
match => [«timestamp», «MMM d HH:mm:ss», «MMM dd HH:mm:ss»] ]
}
}
}>

La última sección es’sección de salida’ y define la ubicación para el almacenamiento de los registros,

localhost
index => «%{[@metadata][beat]}-%{+YYYYY.MM.dd}»
}
stdout {
codec => rubydebug
}
}>

Ahora guarda el archivo y sal de ahí. Todas estas secciones también se pueden dividir en tres archivos separados, pero las hemos utilizado en un solo archivo para facilitar la configuración. Ahora iniciaremos el servicio logstash y lo habilitaremos en el momento del arranque,

[root@elk-stack ~]# systemctl daemon-reload
root@elk-stack ~]# systemctl start logstash
root@elk-stack ~]# systemctl enable logstash

Permitir el puerto 5044 tcp en el cortafuegos del sistema operativo con el siguiente comando para que Logstash obtenga los registros de los Clientes

[root@elk-stack conf.d]# firewall-cmd –permanente –add-port=5044/tcp
triunfo
[root@elk-stack conf.d]# firewall-cmd –reload
triunfo
[root@elk-stack conf.d]#

Instalación de Filebeat en Clientes

Filebeat tiene que estar instalado en todos los sistemas para los que necesitemos analizar los registros. Primero copiemos el archivo de certificado desde el servidor de pila de alkos al cliente

[root@elk-stack ~]# scp /etc/ssl/logstash_frwrd.crt root@192.168.0.70:/etc/ssl

Para instalar filebeat, primero añadiremos el repositorio para él,

>

Ahora instale filebeat ejecutándose debajo del comando

[root@client1 ~]# yum install filebeat

Ahora vamos a hacer cambios en el archivo de configuración para conectar los clientes filebeat a nuestra pila ELK, pero antes de hacerlo asegúrese de que el certificado que creamos durante la configuración de logstash se copia en el cliente en el directorio ‘/etc/ssl’. Una vez hecho esto, iniciaremos la configuración de los latidos del archivo,

vi /etc/filebeat/filebeat/filebeat.yml

Necesitamos hacer cambios en las siguientes tres secciones,

. . . caminos: – /var/log/*.log – var/log/secure – /var/log/mensajes . …

En esta sección, podemos permitir que se analicen los registros que necesitan ser analizados. Lo he dejado por defecto, es decir, todos los registros, pero puedes modificarlo para que envíe sólo uno o dos archivos de registro. Para la siguiente sección, cambie el tipo document_type a ‘syslog’,

. . . tipo_de_documento: syslog . …

& en la última sección, es decir,’output’, definiremos la dirección IP de nuestro servidor de pila ELK y la ubicación del certificado ssl,

. . . salida: logstash: anfitriones: [«192.168.0.180:5044»] tls: autoridades_de_certificado: [«/etc/ssl/logstash_frwrd.crt»] . …

Nota: Desactivar la salida de búsqueda elástica, comentar la entrada «hosts: [«localhost:9200″]» en caso de que esté habilitado.

Ahora inicia el servicio y habilítalo en el momento del arranque,

[root@client1 ~]# systemctl reiniciar el latido del archivo
root@client1 ~]# systemctl enable filebeat

Eso es todo, las configuraciones en ambos extremos del servidor y del cliente ya están completas. Ahora podemos acceder a la interfaz web de kibana para buscar los registros analizados.

Crear patrón de índice, cambiar logstash-* a filebeat-*

Settings - Kibana-Filebeat-Index

Haga clic en Crear

filebeat- Settings-Kibana-CentOS7

Haga clic en Descubrir y luego busque, obtendremos registros como los siguientes

Discover-Client-Logs-Kibana-CentOS7

Eso es todo de este artículo, Por favor, comparta sus valiosos comentarios y sugerencias.

Deja un comentario