Try   HackMD

Instalar ELK en CentOS 7

Johnny Pan Sanabria
2018-10-24

Descripción

En este tutorial, le mostraremos cómo instalar y configurar la pila ELK en CentOS 7. Elasticsearch, Logstash y Kibana son los tres productos de código abierto que forman parte de la colección llamada pila ELK. Es una solución robusta para la búsqueda, análisis y visualización de datos. Como ya sabemos, Elasticsearch está distribuido para búsquedas RESTful y el análisis NoSQL basado en el motor Lucene, el proceso de procesamiento de datos ligero o Logstash se usa para administrar eventos y registros de muchas fuentes diferentes y Kibana, que es una aplicación web y se usa para la visualización de datosm la cual trabaja encima de Elsticsearch.

1. Requisitos previos

Lo primero que necesita para completar este tutorial con éxito es el acceso de root al servidor CentOS 7 o utilizar el comando sudo.

El volumen de registros que desea recopilar es importante porque la cantidad de CPU, RAM y almacenamiento requerido por su servidor ELK depende de ellos.

Requisitos básicos del sistema:

  • OS: CentOS 7
  • RAM: 4GB
  • CPU: 2

2. Java

El despliegue de la pila ELK requiere de Java. Soporta tanto OpenJDK como Oracle Java.

sudo yum install java-1.8.0-openjdk-headless

Probamos que se haya instalado correctamente

java -version

3. Elasticsearch

Ahora es el momento de instalar y configurar Elasticsearch. Utilizaremos el paquete rpm para esta instalación que proporciona elastic.co y luego lo configuraremos para que se ejecute en localhost (todo esto es para asegurarnos de que hemos hecho la configuración segura y para asegurarnos de que no se pueda acceder a ella desde el exterior).

Se debe agregar la clave elastic.co al servidor antes de la instalación de Elasticsearch.

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo yum install https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

En este punto, Elasticsearch ya está instalado, ahora editamos el archivo de configuración elasticsaerch.yml.

sudo nano /etc/elasticsearch/elasticsearch.yml

Luego se debe descomentar la línea 40. Esto desactiva el intercambio de memoria para Elasticsearch.

bootstrap.memory_lock: true

Después de eso, debemos descomentar las líneas network.host y http.port

network.host: localhost
http.port: 9200

Guardamos y salimos del editor.

El siguiente paso es editar el archivo de configuración sysconfig para Elasticsearch.

sudo nano /etc/sysconfig/elasticsearch

Ahora debe descomentar la línea 60 y asegurarse de que el valor sea ilimitado.

MAX_LOCKED_MEMORY = ilimitado

Guardar y Salir.

Completar todos estos pasos significa que ha finalizado la configuración de Elasticsearch en CentOS 7. El puerto de escucha de Elasticsearch es el 9200.

Antes de iniciar el servicio, primero debemos volver a cargar los cambios y habilitar Elasticsearch para que se inicie en el momento del arranque.

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Después de unos segundos, se iniciará Elasticsearch y luego deberá verificar los puertos abiertos en el servidor y el estado para el puerto 9200 sea LISTEN.

4. Kibana

Cuando llegue a este punto, lo siguiente en la lista es la instalación y configuración de Kibana con un servidor web Nginx. Kibana escuchará en la dirección IP de localhost y Nginx actúa como un proxy inverso para la aplicación Kibana.

Debe usar wget para descargar Kibana 6.2.4 y luego instalarlo usando el comando rpm. Pero podemos realizar la instalación mediante el siguiente comando.

sudo yum install https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm

El siguiente paso es editar el archivo de configuración de Kibana.

sudo nano /etc/kibana/kibana.yml

Descomente las líneas de configuración para server.port, server.host y elasticsearch.url.

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Los cambios deben guardarse y luego puede salir.
Inicie el servicio Kibana y configúrelo para que se inicie automáticamente
en el arranque:

systemctl enable kibana
systemctl start kibana

Ya has terminado la instalación de Kibana.

5. Instalar y configurar Logstash

En el siguiente paso, instalaríamos Logstash y lo configuraríamos para centralizar los registros del servidor de los clientes con filebeat, luego filtraríamos y transformaríamos los datos de Syslog y los moveríamos al servidor (Elasticsearch).

Usa rpm para descargar Logstash e instalarlo.

sudo yum install https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm

Cuando la instalación de Logstash se haya completado, inicie el servicio Logstash y configúrelo para que se inicie automáticamente en el arranque:

sudo systemctl start logstash
sudo systemctl enable logstash

La configuración de Logstash depende de sus preferencias personales y de los complementos que utilizará. Puede encontrar más información sobre cómo configurar Logstash aquí .

Eso es. Ha instalado con éxito la pila ELK en su CentOS 7.

6. Nginx (Opcional)

Lo siguiente es instalar Nginx y, por supuesto, configurarlo como un proxy inverso para acceder a Kibana desde la dirección IP pública.

Nginx se puede encontrar en el repositorio de Epel, instale epel-release con yum.

sudo yum install epel-release

Luego, debe instalar el paquete Nginx y httpd-tools.

sudo yum install nginx httpd-tools

Las herramientas para el servidor web están contenidas en el paquete httpd-tools, puede usar la autenticación básica htpasswd para Kibana.

En este punto, es necesario que creemos un nuevo archivo de configuración de host virtual en el directorio conf.d.

sudo nano /etc/nginx/conf.d/your_domain.com.conf

Así podremos agregar una nueva configuración de host virtual. Pega la siguiente configuración:

server {
        listen 192.168.1.1:80 default_server;
        server_name  _;


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

        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;
    }
}

Luego, se debe crear un nuevo archivo de autenticación básica con el comando htpasswd.

sudo htpasswd -c /etc/nginx/htpasswd.kibana admin

ESCRIBIR UNA CONTRASEÑA ROBUSTA

Configure Nginx para ejecutarlo en el momento de arranque e inicie Nginx.

sudo systemctl enable nginx
sudo systemctl start nginx