Cómo instalar Elasticsearch, Logstash y Kibana (alces) en CentOS/RHEL 7
- 4573
- 15
- Sta. Enrique Santiago
Si usted es una persona que está o ha estado en el pasado, a cargo de inspeccionar y analizar registros del sistema en Linux, sabe en qué pesadilla puede convertirse esa tarea si se controlan múltiples servicios simultáneamente.
En los días pasados, esa tarea debía hacerse principalmente, con cada tipo de registro manejado por separado. Afortunadamente, la combinación de Elasticsearch, Establo de registro, y Kibana en el lado del servidor, junto con FileBeat En el lado del cliente, hace que esa tarea una vez difícil parezca un paseo por el parque hoy.
Los primeros tres componentes forman lo que se llama un ALCE Stack, cuyo objetivo principal es recopilar registros de múltiples servidores al mismo tiempo (también conocido como registro centralizado).
Leer sugerido: 4 Buenas herramientas de administración de registros de código abierto para Linux
Una interfaz web incorporada basada en Java le permite inspeccionar registros rápidamente de un vistazo para una comparación y solución de problemas más fáciles. Estos registros de clientes se envían a un servidor central por FileBeat, que se puede describir como un agente de envío de registros.
Veamos cómo encajan todas estas piezas. Nuestro entorno de prueba consistirá en las siguientes máquinas:
Servidor central: Centos 7 (Dirección IP: 192.168.0.29). 2 GB de carnero. Cliente #1: Centos 7 (Dirección IP: 192.168.0.100). 1 GB de carnero. Cliente #2: Debian 8 (Dirección IP: 192.168.0.101). 1 GB de carnero.
Tenga en cuenta que el RAM Los valores proporcionados aquí no son requisitos previos estrictos, sino valores recomendados para la implementación exitosa del ALCE pila en el servidor central. Menos RAM en los clientes no harán mucha diferencia, si es que hay alguna.
Instalación de la pila de Elk en el servidor
Comencemos por instalar el ALCE Apilar en el servidor, junto con una breve explicación sobre lo que hace cada componente:
- Elasticsearch almacena los registros enviados por los clientes.
- Establo de registro procesa esos registros.
- Kibana Proporciona la interfaz web que nos ayudará a inspeccionar y analizar los registros.
Instale los siguientes paquetes en el servidor central. En primer lugar, instalaremos Java jdk versión 8 (actualizar 102, el último en el momento de este escrito), que es una dependencia del ALCE componentes.
Es posible que desee consultar primero en la página de descargas de Java aquí para ver si hay una actualización más nueva disponible.
# yum actualización # cd /opt # wget--no-cookies--no-check-certificate--header "cookie: gpw_e24 = http%3a%2f%2fwww.oráculo.com%2f; oraclelicense = Aceptación-SecureBackup-Cookie "" http: // Descargar.oráculo.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.RPM " # RPM -UVH JRE-8U102-LINUX-X64.rpm
Es hora de verificar si la instalación se completó correctamente:
# java -versionVerifique la versión Java desde la línea de comandos
Para instalar las últimas versiones de Elasticsearch, Establo de registro, y Kibana, Tendremos que crear repositorios para beque manualmente de la siguiente manera:
Habilitar el repositorio de elasticsearch
1. Importe la clave de Elasticsearch Public GPG al Administrador de paquetes RPM:
# rpm --import http: // paquetes.elástico.CO/GPG-Key-ElasticSearch
2. Inserte las siguientes líneas en el archivo de configuración del repositorio elasticsearch.repositorio
:
[Elasticsearch] name = elasticsearch repositorio baseUrl = http: // paquetes.elástico.CO/Elasticsearch/2.x/centos gpgcheck = 1 gpgkey = http: // paquetes.elástico.CO/GPG-Key-ElasticSearch habilitado = 1
3. Instale el paquete Elasticsearch.
# yum install elasticsearch
Cuando se complete la instalación, se le solicitará que inicie y habilite ElasticSearch:
Instalar Elasticsearch en Linux4. Iniciar y habilitar el servicio.
# SystemCTL Daemon-Reload # SystemCTL Habilitar Elasticsearch # SystemCTL Start Elasticsearch
5. Permitir el tráfico a través del puerto TCP 9200 En tu firewall:
# firewall-cmd --add-puerto = 9200/tcp # firewall-cmd --add-port = 9200/tcp --Permanent
6. Comprobar si Elasticsearch responde a solicitudes simples sobre Http:
# curl -x get http: // localhost: 9200
La salida del comando anterior debe ser similar a:
Verificar la instalación de ElasticsearchAsegúrese de completar los pasos anteriores y luego continúe con Establo de registro. Ya que ambos Establo de registro y Kibana compartir el Elasticsearch GPG clave, no hay necesidad de volver a importarlo antes de instalar los paquetes.
Leer sugerido: Administrar registros del sistema (configurar, rotar e importar en la base de datos) en CentOS 7
Habilitar el repositorio de Logstash
7. Inserte las siguientes líneas en el archivo de configuración del repositorio establo de registro.repositorio
:
[logstash] name = logStash baseUrl = http: // paquetes.elasticsearch.org/logstash/2.2/centos gpgcheck = 1 gpgkey = http: // paquetes.elasticsearch.org/gpg-key-elasticsearch habilitado = 1
8. Instala el Establo de registro paquete:
# Yum Install Logstash
9. Agrega un Ssl certificado basado en la dirección IP del servidor Elk en la siguiente línea debajo de la [V3_CA]
sección de /etc/pki/tls/openssl.CNF
:
[V3_CA] SUSTUSTALTNAME = IP: 192.168.0.29Agregar dirección IP del servidor Elasticsearch
10. Generar un certificado autofirmado válido para 365 días:
# cd/etc/pki/tls # openssl req -config/etc/pki/tls/openssl.CNF -X509 -Days 3650 -Batch -Nodes -Newkey RSA: 2048 -KeyOut Private/Logstash -ForWarder.Key -Out Certs/Logstash -Forwarder.CRT
11. Configurar Establo de registro Archivos de entrada, salida y filtro:
Aporte: Crear /etc/logstash/conf.d/entrada.confusión
e inserte las siguientes líneas en él. Esto es necesario para Logstash a "aprender"Cómo procesar los ritmos provenientes de los clientes. Asegúrese de que la ruta al certificado y la clave coincidan con las rutas correctas como se describe en el paso anterior:
Entrada Beats Port => 5044 ssl => true ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.CRT "ssl_key =>"/etc/pki/tls/private/logstash-forwarder.llave"
Producción (/etc/logstash/conf.d/salida.confusión
) archivo:
salida elasticsearch hosts => ["localhost: 9200"] sniffing => true manage_template => false index => "%[@metadata] [beat]-%+yyyy.Mm.dd "document_type =>"%[@metadata] [type] "
Filtro (/etc/logstash/conf.d/filtro.confusión
) archivo. Registraremos mensajes syslog para simplificar:
Filtro if [type] == "syslog" grok match => "mensaje" => "%syslogline" date match => ["timestamp", "mmm d hh: mm: ss" , "Mmm dd hh: mm: ss"]
12. Verificar el Establo de registro Archivos de configuración.
# Service Logstash ConfigTestVerificar la configuración de Logstash
13. Iniciar y habilitar Logstash:
# SystemCTL Daemon-Reload # SystemCTL Start logstash # SystemCTL Habilitar logstash
14. Configure el firewall para permitir que Logstash obtenga los registros de los clientes (puerto TCP 5044)
# firewall-cmd --add-puerto = 5044/tcp # firewall-cmd --add-port = 5044/tcp --Permanent
Habilitar el repositorio de Kibana
14. Inserte las siguientes líneas en el archivo de configuración del repositorio kibana.repositorio
:
[kibana] nombre = Kibana Repository BaseUrl = http: // paquetes.elástico.CO/KIBANA/4.4/Centos gpgcheck = 1 gpgkey = http: // paquetes.elástico.CO/GPG-Key-ElasticSearch habilitado = 1
15. Instala el Kibana paquete:
# yum instalar kibana
dieciséis. Iniciar y habilitar kibana.
# SystemCTL Reload de demonio # SystemCTL Inicio Kibana # SystemCTL Habilitar kibana
17. Asegúrese de poder acceder a la interfaz web de acceso a Kibana desde otra computadora (permita el tráfico en el puerto TCP 5601)
# firewall-cmd --add-puerto = 5601/tcp # firewall-cmd --add-puer = 5601/tcp --permanent
18. Lanzamiento Kibana (http: // 192.168.0.29: 5601
) para verificar que puede acceder a la interfaz web:
Volveremos aquí después de haber instalado y configurado FileBeat en los clientes.
Leer sugerido: Los registros del servidor de monitoreo en tiempo real con "registro.herramienta io "en Linux
Instale fileBeat en los servidores del cliente
Te mostraremos cómo hacer esto por Cliente #1 (Repita para Cliente #2 Posteriormente, cambiar rutas si corresponde a su distribución).
1. Copie el certificado SSL del servidor a los clientes:
# scp/etc/pki/tls/certs/logstash-forwarder.CRT [correo electrónico protegido]:/etc/pki/tls/certs/
2. Importar el Elasticsearch Clave de GPG público al Administrador de paquetes RPM:
# rpm --import http: // paquetes.elástico.CO/GPG-Key-ElasticSearch
3. Crear un repositorio para FileBeat (/etc/yum.repositar.d/fileBeat.repositorio
) en Cento distribuciones basadas:
[fileBeat] name = fileBeat para elk clientes baseUrl = https: // paquetes.elástico.CO/beats/yum/el/$ basearch habilitado = 1 gpgkey = https: // paquetes.elástico.CO/GPG-Key-ElasticSearch GPGCHECK = 1
4. Configurar la fuente para instalar fileBeat en Debian y sus derivados:
# aptitude install apt-transport-https # echo "debtps: // paquetes.elástico.CO/beats/apt estable main ">/etc/apt/fuentes.lista.d/fileBeat.Lista # Actualización de aptitud
5. Instala el FileBeat paquete:
# yum instalar fileBeat [en Cento y distribuciones basadas] # aptitude instalar fileBeat [en Debian y sus derivados]
6. Iniciar y habilitar fileBeat:
# SystemCTL iniciar fileBeat # SystemCTL Habilitar fileBeat
Configurar fileBeat
Una palabra de precaución aquí. FileBeat La configuración se almacena en un Yaml archivo, que requiere una sangría estricta. Tenga cuidado con esto mientras edita /etc/fileBeat/fileBeat.YML
como sigue:
- Bajo caminos, indicar qué archivos de registro deben "enviarse" al servidor Elk.
- Bajo prospectores:
input_type: registrar documento_type: syslog
- Bajo producción:
- Descopment la línea que comienza con establo de registro.
- Indique la dirección IP de su servidor y puerto de Elk donde Logstash está escuchando en Hospedadores.
- Asegúrese de que la ruta al certificado apunte al archivo real que creó en Paso I (Establo de registro sección) arriba.
Los pasos de arriba se ilustran en la siguiente imagen:
Configurar fileBeat en servidores de clientesGuardar cambios y luego reiniciar FileBeat En los clientes:
# SystemCTL reiniciar fileBeat
Una vez que hayamos completado los pasos anteriores en los clientes, no dude en continuar.
Prueba de FileBeat
Para verificar que los registros de los clientes se puedan enviar y recibir con éxito, ejecute el siguiente comando en el ALCE servidor:
# curl -xget 'http: // localhost: 9200/fileBeat -*/_ búsqueda?bonito'
La salida debe ser similar a (observe cómo los mensajes de /var/log/mensajes y /var/log/seguro están siendo recibidos de cliente1 y cliente2)
Prueba de FileBeatDe lo contrario, verifique el FileBeat Archivo de configuración para errores.
# Journalctl -xe
Después de intentar reiniciar Filebeat, lo señalará a la (s) línea (s) de ofensiva (s).
Prueba de kibana
Después de haber verificado que los clientes están siendo enviados por los clientes y recibidos con éxito en el servidor. Lo primero que tendremos que hacer en Kibana está configurando un patrón de índice y establecerlo como predeterminado.
Puede describir un índice como una base de datos completa en un contexto de base de datos relacional. Iremos con fileBeat-*
(O puede usar un criterio de búsqueda más preciso como se explica en la documentación oficial).
Ingresar fileBeat-*
en el Nombre del índice o campo de patrón y luego haga clic Crear:
Tenga en cuenta que se le permitirá ingresar un criterio de búsqueda de grano más fino más adelante. A continuación, haga clic en la estrella dentro del rectángulo verde para configurarlo como el patrón de índice predeterminado:
Configurar el patrón de índice Kibana predeterminadoFinalmente, en el Descubrir Menú encontrará varios campos para agregar al informe de visualización de registro. Simplemente flote sobre ellos y haga clic Agregar:
Agregar informe de visualización de registroLos resultados se mostrarán en el área central de la pantalla como se muestra arriba. Siéntase libre de jugar (agregar y eliminar campos del informe de registro) para familiarizarse con Kibana.
Por defecto, Kibana mostrará los registros que se procesaron durante el último 15 minutos (ver esquina superior derecha) pero puede cambiar ese comportamiento seleccionando otro marco de tiempo:
Informes de registro de kibanaResumen
En este artículo, hemos explicado cómo configurar una pila de alces para recopilar los registros del sistema enviados por dos clientes, un CentOS 7 y un Debian 8 máquinas.
Ahora puede consultar la documentación oficial de ElasticSearch y encontrar más detalles sobre cómo usar esta configuración para inspeccionar y analizar sus registros de manera más eficiente.
Si tiene alguna pregunta, no dude en preguntar. Esperamos con interés escuchar de usted.
- « La verdad de Python y Perl - Características, pros y contras discutidos
- Cómo crear y ejecutar nuevas unidades de servicio en Systemd usando script shell »