El análisis de registros siempre ha sido una parte importante de la administración del sistema, pero es una de las tareas más tediosas y tediosas, especialmente cuando se trata de varios sistemas. Afortunadamente, la pila ELK ha facilitado la tarea, la pila ELK ahora se usa 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 recopila y analiza registros
- Kibana: proporciona GUI (interfaz gráfica de usuario) y se utiliza para la visualización de los datos y funciona además de elasticsearch.
La pila ELK recibe registros del cliente a través del protocolo Beats, enviados mediante un cliente Beats. En este tutorial, vamos a crear una pila ELK en una máquina Centos 7 y también instalaremos el cliente Beat llamado ‘File Beat’ en la máquina cliente.
- 192.168.0.180 pila de alces (CentOS 7)
- Cliente 192.168.0.70 (CentOS 7)
Requisito previo
La máquina en la que instalaremos ELK debe tener instalada la versión 8 de Java como . Así que asegúrese de que java open-jdk versión 1.8.0_* esté instalado y ejecutándose y, en caso de que no esté instalado, ejecute el siguiente comando yum para instalar
[[email protected] ~]# yum instalar java-1.8.0-openjdk
[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode) [[email protected] ~]#
Establezca el nombre de host y actualice el archivo /etc/hosts
[[email protected] ~]# hostnamectl set-hostname "elk-stack.example.com"
Actualizar el archivo /etc/hosts
192.168.0.180 elk-stack.example.com elk-stack
Pasos de instalación de ELK Stack
Elasticsearch
Comenzaremos importando las claves GPG para elasticsearch, esta clave también se compartirá con logstash y kibana. Para instalar elasticsearch, ejecute
[[email protected] ~]# rpm –importar https://packages.elastic.co/GPG-KEY-elasticsearch
[[email protected] ~]#
Ahora crearemos un repositorio para el repositorio de búsqueda elástica,
[[email protected] ~]# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch] name=Elasticsearch repository baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Una vez que se haya agregado el repositorio, instale elasticsearch usando yum,
[[email protected] ~]# yum install elasticsearch -y
Ahora iniciamos el servicio y también lo configuraremos para que comience en el momento del arranque
[[email protected] ~]# systemctl daemon-reload [[email protected] ~]# systemctl start elasticsearch [[email protected] ~]# systemctl enable elasticsearch
Permita el puerto tcp 9200 en el firewall del sistema operativo. En caso de que se esté ejecutando Firewall
[[email protected] ~]# firewall-cmd --permanent --add-port 9200/tcp
Ahora probaremos elasticsearch para asegurarnos de que responde a las consultas
[[email protected] ~]# curl -X GET http://localhost:9200
La salida del comando anterior debería ser algo como lo siguiente:
Logstash
Ahora agregaremos el repositorio logstash,
[[email protected] ~]# 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 enabled=1
Ahora instale logstash,
[[email protected] ~]# yum install logstash -y
kibana
Ahora crearemos un repositorio para kibana,
[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo [kibana-4.5] name=Kibana repository for 4.5.x packages baseurl=http://packages.elastic.co/kibana/4.5/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
Ahora instala kibana usando yum,
[[email protected] ~]# yum install kibana -y
Después de la instalación, inicie el servicio y habilítelo en el momento del arranque
[[email protected] ~]# systemctl start kibana [[email protected] ~]# systemctl enable kibana
Permitir el puerto 5601 en OS Firewall
[[email protected] ~]# firewall-cmd --permanent --add-port 5601/tcp [[email protected] ~]# firewall-cmd --reload
A continuación, accederemos a la página web de kibana para asegurarnos de que funciona. Para hacer eso, abra el navegador web e ingrese la siguiente URL
http://Dirección IP:5601/
La instalación de la pila ELK ahora está completa y haremos las configuraciones necesarias.
Configuración
Certificado SSL para logstash
Después de la instalación de logstash, ahora crearemos un certificado SSL para asegurar la comunicación entre logstash y filebeat (clientes). Dado que usaremos la dirección IP para conectarnos al servidor, crearemos un certificado SSL para IP SAN.
Antes de crear un certificado SSL, haremos una entrada de nuestra IP en openssl.cnf,
[[email protected] ~]# vi /etc/pki/tls/openssl.cnf
y busque el parámetro con ‘subjectAltName’ debajo [ v3_ca ] y añádele la IP de tu servidor,
subjectAltName = IP: 192.168.0.180
Ahora cambie el directorio a /etc/ssl y cree un certificado SSL con una validez de 365 días,
[[email protected] ~]# cd /etc/ssl/ [[email protected] ssl]# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crt Generating a 2048 bit RSA private key .....+++ ...........+++ writing new private key to 'logstash-forwarder.key' ----- [[email protected] ssl]#
Una vez que el certificado esté listo, debe copiarse a todos los clientes mediante el comando scp.
Configuración de Logstash
Ahora crearemos un archivo de configuración para logstash en la carpeta ‘/etc/logstash/conf.d‘. Este archivo se dividirá en tres secciones, es decir, sección de entrada, filtro y salida
[[email protected] ~]# vi /etc/logstash/conf.d/logstash.conf # input section input { beats { port => 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 detalles del certificado SSL para una conexión segura.
La siguiente sección, es decir, ‘sección de filtro’ analizará los registros antes de enviarlos a elasticsearch,
# Filter section filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { 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 registros,
# output section output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Ahora guarde el archivo y salga. Todas estas secciones también se pueden dividir en tres archivos separados, pero los hemos usado en un solo archivo para facilitar la configuración. Ahora iniciaremos el servicio logstash y lo habilitaremos en el momento del arranque,
[[email protected] ~]# systemctl daemon-reload [[email protected] ~]# systemctl start logstash [[email protected] ~]# systemctl enable logstash
Permita el puerto 5044 tcp en el firewall del sistema operativo con el siguiente comando para que Logstash obtenga registros de los clientes
[[email protected] conf.d]# firewall-cmd --permanent --add-port=5044/tcp success [[email protected] conf.d]# firewall-cmd --reload success [[email protected] conf.d]#
Instalación de Filebeat en clientes
Filebeat debe instalarse en todos los sistemas para los que necesitamos analizar registros. Primero copiemos el archivo de certificado del servidor elk-stack al cliente
[[email protected] ~]# scp /etc/ssl/logstash_frwrd.crt [email protected]:/etc/ssl
Para instalar Filebeat, primero agregaremos el repositorio para ello,
[[email protected] ~]# vi /etc/yum.repos.d/filebeat.repo [beats] name=Elastic Beats Repository baseurl=https://packages.elastic.co/beats/yum/el/$basearch enabled=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch gpgcheck=1
Ahora instale filebeat ejecutando debajo del comando
[[email protected] ~]# yum install filebeat
Ahora haremos cambios en el archivo de configuración para conectar los clientes de 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 filebeat,
[[email protected] ~]# vi /etc/filebeat/filebeat.yml
Necesitamos hacer cambios en las siguientes tres secciones,
. . . paths: - /var/log/*.log - /var/log/secure - /var/log/messages . . .
En esta sección, podemos permitir que se analicen los registros. Lo he dejado por defecto, es decir, todos los registros, pero puede modificarlo para enviar solo uno o dos archivos de registro. Para la siguiente sección, cambie document_type a ‘syslog’,
. . . document_type: syslog . . .
y en la última sección, es decir, ‘salida’, definiremos la dirección IP y la ubicación de nuestro servidor de pila ELK para el certificado ssl,
. . . output: logstash: hosts: ["192.168.0.180:5044"] tls: certificate_authorities: ["/etc/ssl/logstash_frwrd.crt"] . . .
Nota: deshabilite la salida de búsqueda elástica, comente la entrada «hosts: [“localhost:9200″]” en caso de que esté habilitado.
Ahora inicie el servicio y actívelo en el momento del arranque,
[[email protected] ~]# systemctl restart filebeat [[email protected] ~]# systemctl enable filebeat
Eso es todo, las configuraciones tanto en el extremo del servidor como en el extremo del cliente ahora están completas. Ahora podemos iniciar sesión en la interfaz web de Kibana para buscar registros analizados.
Crear patrón de índice, cambiar logstash-* a filebeat-*
Haga clic en Crear
Haga clic en Descubrir y luego busque, obtendremos registros similares a los siguientes
Eso es todo de este artículo. Comparta sus valiosos comentarios y comentarios.