viernes, 21 de mayo de 2021

ELK, Elastic Stack en tu ambiente GNU/Linux Ubuntu Server 20.04

 Vamos desde el inicio, ¿Que ....... es ELK?

 

Una imagen dice mas que mil palabras. 


 ELK es el nombre que se le da al stack de soluciones de elastic pare referir a los proyectos open source Elasticsearch, Logstash y Kibana.

 En pocas palabras sin demeritar el excelente trabajo que a realizado los integrantes de este proyecto Elasticsearch es un motor de búsqueda y analítica.

Logstash es un pipeline de procesamiento de datos del lado del servidor que ingesta datos de una multitud de fuentes simultáneamente, los transforma y luego los envía a  Elasticsearch.

Kibana permite a usuarios visualizar los datos en gráficos con Elasticsearch.

Todo esto gracias al motor de búsqueda de código abierto distribuido RESTful, basado en JSON. esto ayuda en mucho a ser menos complejo de utilizar, totalmente escalable y súper flexible. por estos atributos inicio a tener mucha popularidad hasta el día de hoy de ser una de las tecnologías para manejo, analítica y visualización de datos muy popular entre los usuarios, compañías y departamentos de IT.


¡Cuando algo es bueno, muchos queremos aprenderlo y usarlo!

Logstash + Kibana sumaron funcionalidades que el stack necesitaba, mejoraron con el paso del tiempo, los usuarios lo estudiaron, aprendieron y creció su popularidad por una sencilla razón ¡funciona!, soy usuario, en mi particular opinión, hace lo que esta diseñada para hacer y con conocimientos, ganas e interés puedes lograr desarrollar una plataforma de recolección de datos, alarmas, Monitoreo, dando cumplimiento a la gestión de activos, gestión de consulta de información, gestión de monitoreo incluso con el desarrollo adecuado gestión de incidentes con ijntegraci9ones a terceros. Ahora con la integración de Beat que prácticamente recolecta información a nivel performance de equipos, servidores, desktop no dudo que muchos como nosotros lo estén aplicando para sistemas de monitoreo de performance (Monitoreo de CPU, Memoria, Red, procesos, Disponibilidad por ICMP).

ahora iniciemos la instalación de este excelente stack. (para que veas que no es ciencia de la nasa "tu sabes quien eres")

Si partimos de "no tengo ni idea de como puedo iniciar" amigo estas en problemas, hay ciertos conocimientos de IT / Sistemas / Computación o como le digas a rama de estudio de informática en tu país que si o si tienes que saber previo a meterte en el juego de ELK.

Recomendación

Para ti amigo amante de IT, es necesario que tengas en mente que esto no es excel y puedes usarlo de forma empírica, necesitas que botón presionar en el avión para que no lo estrelles.

Ayudaría mucho que comprendieras o trabajas con un tiempo de aproximadamente 1 a 2 años con sistemas operativos Linux, distribuciones como Ubuntu Server, Centos (RIP), Red Hat Enterprise Server ayudaran mucho a tu camino. 

Conocimiento basicos (de menos) en  RESTful, Json y SQL- en el mejor de los escenarios conocimientos medios de Os Linux, Json, Programación, SQL, ETL, BigData. esto ayuda un mucho. 

Requerimientos de ambiente

  • Un servidor de Ubuntu 20.04, con Mínimo 4 GB de RAM y 2 CPU configuradas con un usuario sudo no root. 

    Ten en cuenta que la cantidad de CPU, RAM y almacenamiento que su servidor de Elasticsearch requiera dependerá del volumen de registros que prevé.

  • OpenJDK 11 instalado. 

  • Nginx instalado en su servidor, Para configurar, siga esta guía 



    Instalación del primer modulo de ELK

    Después de instalar tu Ubuntu Server y actualizar toda tu distribución, tomando en cuenta los pre requerimientos previos mencionados, continuamos con la instalación del producto. Usaremos Curl para importar la clave GPG pública de Elasticsearch a APT

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

continuaremos  agregando a lista de fuentes de Elastic al directorio sources.list.d, donde APT buscará nuevas fuentes:

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 la lista de paquetes de APT

sudo apt update

Continuaremos por instalar elasticsearch con el siguiente comando.

sudo apt install elasticsearch

Ahora que esta  instalado utilizaremos el editor vi para modificar el archivi .yml

sudo vi /etc/elasticsearch/elasticsearch.yml

elasticsearch.yml ofrece opciones de configuración para clúster, nodo, rutas, memoria, red, detección y puerta de enlace. La mayoría de estas opciones están preconfiguradas en el archivo, pero las puede cambiar según sus necesidades.  Elasticsearch escucha todo el tráfico de todo origen por pyuerto 9200. Es recomendable restringir el acceso externo a su instancia de Elasticsearch para evitar que terceros lean sus datos o cierren su clúster de Elasticsearch.

en el archivo /etc/elasticsearch/elasticsearch.yml

ve a network.host y configuralo para localhost con esto podemos iniciar elasticsearch con el siguiente comando desde terminar.

sudo systemctl start elasticsearch

Ahora si tienes intenciones que tu instancia inicie cuando el servidor se reinicie por alguna actualización o razon ejecuta el siguiente comando para declrar que inicie automaticamente.

sudo systemctl enable elasticsearch

Para validar que el modulo se encunetra en ejecución puedes correr el siguiente comando.

curl -X GET "localhost:9200"

Instalación de Kibana

Para su instalación ejecutamos el siguiente comando

sudo apt install kibana

Para indicarle al sistema que inicie kibana cuando el equipo se reinicie ejecutamos el siguiente comando

sudo systemctl enable kibana
 

Iniciamos el servicio de Kibana con el siguiente comando.

sudo systemctl start kibana

Ahora ya tenemos nuestro segundo modulo de ELK, pero por seguridad requiere autenticación para acceso autorizado. 

para espesificar un usuario y password puede ejecutar el siguiente comando

echo "usuario:`openssl passwd mipassworddekibana" | sudo tee -a /etc/nginx/htpasswd.users

echo "oposada:`openssl passwd Temporal.2021`" | sudo tee -a /etc/nginx/htpasswd.users

 

Ahora crearemos el sitio para que el web service lo identifique y envie las configuraciones previamente creadas.
 
sudo vi /etc/nginx/sites-available/your_domain

server {
    listen 80;

    server_name your_domain;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

 

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/your_domain

Reiniciamos nginx

sudo nginx -t

Ejecutamos el reload de nginx

sudo systemctl reload nginx

Permitimos que firewall de servidor permita el trafico 

sudo ufw allow 'Nginx Full'

Validamos que este corriendo el status en nuestro navegador

http://your_domain/status


### Video de ejemplo ####


 

No hay comentarios.: