ELK Stack: Parte 1 – Instalación ElasticSearch sobre Ubuntu Server

Voy a realizar una serie de entradas donde os explicaré como podemos montar la solución Open Source ELK Stack.

Para aquellos que no lo conozcáis ELK Stack es la unión de tres proyectos Open Source (Elasticsearch, Logstash y Kibana) desarrollados por Elastics los cuales juntos nos permiten recoger datos de cualquier tipo de fuente y en cualquier formato para realizar búsquedas, análisis y visualización de los datos en tiempo real.

Poco a poco os iré explicando como instalar y configurar cada uno de los componentes que conforman esta plataforma así como os daré ejemplos de cosas que podéis hacer.

No me enrollo más, vamos a empezar esta primera entrada explicando como realizar la instalación de Elasticsearch que será nuestro motor de analítica y análisis distribuido y donde también guardaremos los datos que vayamos recogiendo.

Requisitos servidor

  • CPU: No se hace un consumo demasiado elevado de CPU por lo que al menos necesitaremos un procesador actual con la menos 2 núcleos.
  • Memoria: El uso de memoria es bastante importante por lo que se recomienda al menos 8 GB aunque esto dependerá de la carga que vaya a tener el servidor. Lo normal suelen ser 16 o 32 GB siendo lo ideal 64 GB.
  • Disco: Se recomiendan en la medida de lo posible discos SSD. La capacidad dependerá del número de datos a guardar/procesar.
  • Red: Una conexión al menos Gibabyte.

Preparación entorno

La instalación la realizaré sobre un servidor Linux Ubuntu 20.04 LTS.

Los componentes de ElasticSearch no están disponibles en los repositorios de paquetes predeterminados de Ubuntu aunque si tenemos la opción de realizar la instalación mediante APT simplemente agregando la lista de fuentes de Elastic tal y como os muestro a continuación.

Primero importaremos la clave GPG pública de Elasticsearch a APT.

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Agregamos la lista de fuentes de Elastic al directorio sources.list.d

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Actualizamos las listas de paquetes para que APT obtenga la información de la nueva fuente de Elastic.

sudo apt update

Instalación ElasticSearch

Una vez configurado nuestro entorno ya podremos realizar la instalación de una forma rápida y sencilla mediante APT.

sudo apt install elasticsearch

Configuración ElasticSearch

Para configurar Elasticsearch, editaremos el archivo de configuración elasticsearch.yml. Este archivo podemos encontrarlo en /etc/elasticsearch.

Este fichero trae ya muchas cosas configuradas por defecto y podemos modificarlo a nuestro agrado para realizar configuraciones para cluster, modificar valores de memoria, red, etc… pero para este ejemplo dejaremos las opciones por defecto y sólo modificaremos el tipo de acceso permitido para que sólo sea desde el propio servidor o el caso contrario, acceder desde otro servidor/equipo.

Nota: Yo voy a utilizar el editor nano pero podéis utilizar el que uséis normalmente.

sudo nano /etc/elasticsearch/elasticsearch.yml

Acceso desde el propio servidor

Buscamos la línea network.host, eliminamos el comentario, reemplazaremos el valor por localhost y guardamos los cambios.

Acceso desde el exterior

Buscamos la línea network.host, eliminamos el comentario, reemplazamos el valor por el valor 0.0.0.0, agregamos una nueva línea cluster.initial_master_nodes: node-1 y guardamos los cambios.

Para el acceso desde el exterior es importante que abramos en nuestro Firewall el puerto 9200.

Una vez modificado el fichero de configuración iniciamos el servicio de ElasticSearch.

sudo systemctl start elasticsearch

Configuramos el servicio para que se inicie automáticamente junto con el arranque del sistema.

sudo systemctl enable elasticsearch

Comprobación ElasticSearch

Ya sólo nos quedaría comprobar que ElasticSearch está levantando y escuchando por el puerto 9200.

curl -X GET 'http://localhost:9200'

Y si todo ha ido bien deberá aparecernos algo parecido a esto:

{
  "name" : "server",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "9KgGuAmkQDy64-H_WV51BA",
  "version" : {
    "number" : "7.7.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "81a1e9eda8e6183f5237786246f6dced26a10eaf",
    "build_date" : "2020-05-12T02:01:37.602180Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"

Y esto es todo ya tenemos nuestro servidor ElasticSearch funcionando.

En próximas entradas os explicaré como realizar la instalación del resto de componentes entre otras cosas.

Espero os haya servido de utilidad.

Deja un comentario