GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Elasticsearch, Logstash y Kibana 4 en Ubuntu 14.04 / 15.04

En esta publicación, veremos cómo instalar Elasticsearch, Logstash y Kibana 4 en Ubuntu 14.04 / 15.04. Esta pila ELK nos ayuda a almacenar y administrar los registros en una ubicación centralizada. La pila ELK consta de cuatro componentes vitales que forman una pila maravillosa para analizar los problemas al correlacionar los eventos en un momento determinado.

La centralización de los registros hará que la vida del administrador del sistema sea más fácil para analizar los problemas y las cuestiones sin ir a cada máquina en busca de registros, y visualizar esos registros para la gestión de los requisitos comerciales.

Componentes:

Logstash:realiza el procesamiento (recopila, analiza y envía a Elasticsearch) de los registros entrantes.

Elasticsearch:almacena los registros provenientes de Logstash.

Kibana 4 – Interfaz web para visualización de logs (tiene interfaz propia). Los tres anteriores están instalados en el servidor.

Logstash-forwarder:instalado en las máquinas cliente, envía el registro a Logstash a través del protocolo Lumberjack.

Versiones de la aplicación:

Este artículo utiliza la siguiente versión de software para la pila ELK.

Elastisearch 1.7.0

logstash-1.5.3

Kibana 4.1.1

logstash-forwarder-0.4.0

Requisitos previos:

1. Necesitaríamos instalar openJDK u Oracle JDK. Se recomienda instalar Oracle JDK. Verifique la versión de Java usando el siguiente comando.

$ java -version

java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

2. Instalar wget.

$ sudo su -
# apt-get update
# apt-get install wget

Instalar Elasticsearch:

Elasticsearch es un servidor de búsqueda de código abierto que ofrece análisis y búsqueda distribuidos en tiempo real con una interfaz web RESTful. Elasticsearch almacena todos los registros enviados por el servidor logstash y muestra los mensajes cuando kibana4 solicita una solicitud de usuario de llenado completo a través de la interfaz web.

Este tema cubre los ajustes de configuración que se requieren para ELK, también puede consultar Instalar Elasticsearch en CentOS 7/Ubuntu 14.10/Linux Mint 17.1 para obtener instrucciones detalladas.

Instalemos Elasticsearch, se puede descargar desde el sitio web oficial. Configure el repositorio e instale la última versión de Elasticsearch.

# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

# echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list

# apt-get update && apt-get install elasticsearch

Configure Elasticsearch para que se inicie durante el inicio del sistema.

# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service

Espere al menos un minuto para permitir que Elasticsearch se reinicie por completo; de lo contrario, la prueba fallará. Elastisearch debería escuchar ahora en 9200 para procesar la solicitud HTTP, podemos usar CURL para obtener la respuesta.

# curl -X GET http://localhost:9200
{
  "status" : 200,
  "name" : "Thermo",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.7.0",
    "build_hash" : "929b9739cae115e73c346cb5f9a6f24ba735a743",
    "build_timestamp" : "2015-07-16T14:31:07Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

Instalar Logstash:

Logstash es una herramienta de código abierto, que se utiliza para recopilar registros, analizarlos y almacenarlos buscando. Sí, logstash viene con una interfaz web (kibana3 está integrado) para visualizar registros que no vamos a discutir aquí, sino que usamos kibana4. El procesamiento de varios tipos de eventos se puede ampliar agregándole complementos, más de 160 complementos están disponibles a partir de ahora. Vayamos directamente a la instalación.

# echo "deb http://packages.elasticsearch.org/logstash/1.5/debian stable main" | sudo tee -a /etc/apt/sources.list

# apt-get update && apt-get install logstash

Una vez que el servidor logstash esté instalado, pasemos a la siguiente sección

Crear certificado SSL:

Logstash-forwarder, que se instalará en el cliente-servidor para enviar los registros, requiere un certificado SSL para validar la identidad del servidor de logstash. Tenemos dos opciones para crear un certificado SSL y depende de la configuración del reenviador de logstash; si usa el nombre de host ("servidores":["servidor.itzgeek.local:5050"]), el nombre del sujeto de SSL debe coincidir con "servidor.itzgeek.local". Si usa ("servers":[ "192.168.12.10:5050" ]) una dirección ip, debe crear un certificado SSL con IP SAN con valor 192.168.12.10.

Siga cualquiera de los métodos para crear un certificado SSL.

Opción 1:(Nombre de host FQDN)

Antes de crear un certificado, asegúrese de tener un registro A para el servidor logstash; asegúrese de que los servidores del cliente puedan resolver el nombre de host del servidor logstash. Si no tiene DNS, agregue la entrada de host para el servidor logstash; donde 192.168.12.10 es la dirección IP del servidor logstash e itzgeek es el nombre de host de su servidor logstash.

# vi /etc/hosts

192.168.12.10 server.itzgeek.local

Vamos a crear un certificado SSL. Vaya al directorio de OpenSSL.

# cd /etc/ssl/

Ejecute el siguiente comando para crear un certificado SSL, reemplace el "rojo" con 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)

Antes de crear un certificado SSL, necesitaríamos agregar una dirección IP del servidor logstash a SubjectAltName en el archivo de configuración de OpenSSL.

# vi /etc/pki/tls/openssl.cnf

Vaya a la sección "[ v3_ca ]" y reemplace la sección "roja" con la IP de su servidor logstash.

subjectAltName = IP:192.168.12.10

Ir al directorio de OpenSSL.

# cd /etc/ssl/

Ejecute el siguiente comando para crear un certificado SSL.

# 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:

Los archivos de configuración de Logstash se pueden encontrar en /etc/logstash/conf.d/, solo una carpeta vacía. Necesitaríamos crear un archivo, los archivos de configuración de logstash constan de tres secciones de entrada, filtro y salida; las tres secciones se pueden encontrar en un solo archivo o cada sección tendrá un archivo separado que termina con .conf.

Aquí usaremos un solo archivo para colocar las secciones de entrada, filtro y salida.

# vi /etc/logstash/conf.d/logstash.conf

En el primer apartado pondremos una entrada para la configuración de entrada. La siguiente configuración configura a Lumberjack para que escuche en el puerto 5050 los registros entrantes del logstash-forwarder que se encuentra en los servidores del cliente, y también usará el certificado SSL que creamos anteriormente.

input {
lumberjack {
port => 5050
type => "logs"
ssl_certificate => "/etc/ssl/logstash-forwarder.crt"
ssl_key => "/etc/ssl/logstash-forwarder.key"
}
}

En el segundo apartado pondremos una entrada para la configuración del filtro. Grok es un filtro en logstash, que analiza los registros antes de enviarlos a Elasticsearch para su almacenamiento. El siguiente filtro grok buscará los registros que están 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" ]
}
  }

}

Considere visitar grokdebugger para patrones de filtro.

En el tercer apartado pondremos una entrada de configuración de salida. Esta sección define la ubicación donde se almacenan los registros; obviamente debería ser Elasticsearch.

output {
elasticsearch { host => localhost index => "logstash-%{+YYYY.MM.dd}" }
stdout { codec => rubydebug }
}

Ahora inicie el servicio logstash.

# systemctl start logstash.service

Los registros del servidor Logstash se almacenan en el siguiente archivo y nos ayudarán a solucionar los problemas.

# cat /var/log/logstash/logstash.log

A continuación, configuraremos un reenviador de logstash para enviar registros al servidor de logstash.

Configurar el reenviador de Logstash.

Logstash-forwarder es un software de cliente que envía registros a un servidor de logstash, debe instalarse en todos los servidores de clientes. Logstash-forwarder se puede descargar desde el sitio web oficial o puede usar el siguiente comando para descargarlo en la terminal e instalarlo.

# wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder_0.4.0_amd64.deb

# dpkg -i logstash-forwarder_0.4.0_amd64.deb

Logstash-forwader usa un certificado SSL para validar la identidad del servidor de logstash, así que copie el logstash-forwarder.crt que creamos anteriormente desde el servidor de logstash al cliente.

# scp -pr [email protected]://etc/ssl/logstash-forwarder.crt /etc/ssl

Abra el archivo de configuración.

# vi /etc/logstash-forwarder.conf

En la sección "red", mencione el servidor de logstash con el número de puerto y la ruta al certificado del reenviador de logstash que copió del servidor de logstash.

Esta sección define el reenviador de logstash para enviar registros al servidor de logstash "server.itzgeek.local" en el puerto 5050 y el cliente valida la identidad del servidor con la ayuda del certificado SSL. Nota:Reemplace "server.itzgeek.local" con la dirección IP en caso de que esté utilizando IP SAN.

"servers": [ "server.itzgeek.local:5050" ],

"ssl ca": "/etc/ssl/logstash-forwarder.crt",

"timeout": 15

En la sección “archivos”, configura cuáles son todos los archivos a enviar. En este artículo, configuraremos un reenviador de logstash para enviar registros (/var/log/syslog) al servidor de logstash con "syslog" como tipo.

{
"paths": [
"/var/log/syslog"
],

"fields": { "type": "syslog" }
}

Reinicie el servicio.

# systemctl start logstash-forwarder.service

Puede mirar un archivo de registro en caso de cualquier problema.

# cat /var/log/logstash-forwarder/logstash-forwarder.err

Configurar Kibana 4:

Kidbana proporciona visualización de registros, descárguelo del sitio web oficial. Use el siguiente comando para descargarlo en la terminal.

# wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz

Extráigalo y muévalo a /opt/

# tar -zxvf kibana-4.1.1-linux-x64.tar.gz

# mv kibana-4.1.1-linux-x64 /opt/kibana4

Habilite el archivo PID para Kibana, esto es necesario para crear un archivo de inicio systemd.

# sed -i 's/#pid_file/pid_file/g' /opt/kibana4/config/kibana.yml

Kibana se puede iniciar ejecutando /opt/kibana4/bin/kibana, para ejecutar kibana como servidor crearemos un archivo systemd.

# vi /etc/systemd/system/kibana4.service

[Unit]
Description=Kibana 4 Web Interface
After=elasticsearch.service
After=logstash.service
[Service]
ExecStartPre=/bin/rm -rf /var/run/kibana.pid
ExecStart=/opt/kibana4/bin/kibana
ExecReload=/bin/kill -9 $(cat /var/run/kibana.pid) && /bin/rm -rf /var/run/kibana.pid && /opt/kibana4/bin/kibana
ExecStop=/bin/kill -9 $(cat /var/run/kibana.pid)
[Install]
WantedBy=multi-user.target

Inicie y habilite kibana para que se inicie automáticamente al iniciar el sistema.

# systemctl start kibana4.service

# systemctl enable kibana4.service

Accede a tu portal de kibana visitando el siguiente enlace

http://your-ip-address:5601/

Obtendrá una página siguiente donde debe mapear el índice de logstash para usar kibana. Desplácese hacia abajo en el nombre del campo de tiempo y seleccione

@timestamp

Una vez que haya seleccionado, lo redirigirá a la página principal de Kibana.

Kibana no viene con ningún tipo de acceso al portal protegido por contraseña. Con Nginx, podemos configurar de tal manera que el usuario debe cumplir con el mecanismo de autenticación antes de ingresar al portal.

Eso es todo, ha configurado correctamente la pila ELK para la gestión centralizada de registros.


Ubuntu
  1. Cómo instalar Logstash en Ubuntu 18.04

  2. Cómo instalar y usar Elasticsearch en Ubuntu 20.04

  3. Cómo instalar Elasticsearch, Logstash y Kibana 4 en CentOS 7 / RHEL 7

  4. Cómo instalar Elasticsearch, Logstash y Kibana 4 en Ubuntu 14.04 / 15.04

  5. Instale Elasticsearch, Logstash y Kibana en Ubuntu 20.04

Cómo instalar Elastic Stack (Elasticsearch, Logstash y Kibana) en CentOS 8

Cómo instalar Graylog2 y Elasticsearch en Ubuntu 15.10

Configure ELK Stack en Ubuntu 16.04:instale ElasticSearch, Logstash y Kibana en Ubuntu 16.04

Cómo instalar Elasticsearch, Logstash y Kibana (ELK Stack) en Ubuntu 18.04/Ubuntu 16.04

Cómo instalar ELK Stack (Elasticsearch, Logstash y Kibana) en Ubuntu 20.04

Cómo instalar Elasticsearch Logstash Kibana (Elastic Stack) en Ubuntu 18.04