Instalar Elastic Stack en Centos 7

Hoy veremos cómo terminar de instalar Elastic Stack en Centos 7. Concretamente las piezas que nos faltan para ello, que son Kibana, que nos permitirá dar forma a los datos vía interfaz web, y Logstash, que como ya comentamos, se encarga de cumplir la función de ser un motor de recopilación de datos.


Pero, antes de nada, ¿Qué hemos visto hasta ahora? En una primera parte hablamos de que es y en que consiste Elasticsearch, y en una segunda parte vimos su instalación sobre un servidor virtual con una distribución de GNU Linux, Centos 7

Instalar los componentes de Elastic Stack en Centos 7

Como hemos dicho Elasticsearch ya lo tenemos instalado, por lo que a continuación vamos a ver como instalar y configurar las partes que nos faltan para tener Elastic Stack al completo. Esto es Kibana y Logstash

Antes de continuar, una nota. La mayoría de los tutoriales y guías que he visto por Internet se refieren a versiones anteriores a la 6, que es con la que estamos trabajando. Tengo que decir que con esta versión estas guías ya no son útiles, sobre todo en la parte de Logstash. Y os puedo asegurar que eso me ha dado bastantes dolores de cabeza.

Instalación de Kibana en Centos 7

Kibana nos permite explorar, visualizar y descubrir datos vía una amigable interfaz web.

Su instalación es bien sencilla. Antes de nada, debemos añadir los repositorios oficiales del producto. Para ello debemos importar la llave PGP, que necesitará el repositorio:

  1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Una vez hecho, creamos el fichero con la información del repositorio, para la versión 6.4

Como sigue:

  1. vi /etc/yum.repos.d/kibana.repo

Con la información:

  1. [kibana-6.x]
  2. name=Kibana repository for 6.x packages
  3. baseurl=https://artifacts.elastic.co/packages/6.x/yum
  4. gpgcheck=1
  5. gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  6. enabled=1
  7. autorefresh=1
  8. type=rpm-md

Guardamos y salimos, escribiendo “:wq”

Ahora sí, ya podemos instalar el paquete de Kibana:

  1. yum install kibana

Si nos interesa, otra opción es descargar el paquete con extensión RPM, desde las fuentes oficiales. Esta opción también nos puede servir para otras distribuciones que utilicen esta paquetería, ya sea Fedora, Scientific Linux u OpenSuse

  1. wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-x86_64.rpm
  2. sudo rpm --install kibana-6.4.0-x86_64.rpm

Para que funcione Kibana correctamente, debemos primero abrir el puerto 5601 en nuestro firewall, de esta manera:

  1. firewall-cmd –permanent –add-port=5601/tcp
  2. firewall-cmd –reload

Hecho esto, añadimos la IP de nuestro equipo a la configuración del fichero “/etc/kibana/kibana.yml

  1. server.host: "IP-Privada"
  2. elasticsearch.url: "http://localhost:9200"

Una vez instalado debemos añadir el programa al arranque del servidor. Ya sabéis que Centos 7 funciona con “systemd”, por lo que utilizaremos la herramienta “systemctl”, como sigue:

  1. systemctl start kibana
  2. systemctl enable kibana

Comprobamos que efectivamente se está escuchando por el puerto 5601:

  1.  [root@servcentos1 ~]# lsof -i :5601
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. node 1505 kibana 13u IPv4 19700 0t0 TCP bcn-8c028377h-l.desigual.com:esmagent (LISTEN)

Si ha ido todo bien, accederemos a Kibana (https://ip-del-servidor: 5601) viendo una imagen similar a esta:

Aspecto de la interfaz de Kibana (click en la imagen para ampliar)

Instalar Logstash en Centos 7

Tal y como hemos comentado Logstash es el componente que se encarga de procesar los datos, del lado del servidor, los transforma y luego los envía a Elasticsearch.

Para instalar Logstash vía repositorio, al igual que hemos hecho con otros componentes, debemos crear un fichero en la ruta “/etc/yum.repos.d/logstash.repo” con esta información:

  1. [logstash-6.x]
  2. name=Elastic repository for 6.x packages
  3. baseurl=https://artifacts.elastic.co/packages/6.x/yum
  4. gpgcheck=1
  5. gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  6. enabled=1
  7. autorefresh=1
  8. type=rpm-md

Guardamos y salimos con “:wq”

Instalamos el componente vía YUM

  1. yum install logstash

La otra manera es instalar directamente desde la fuente, así:

  1. wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.1.rpm
  2. rpm -ivh logstash-6.4.1

Añadimos Logstash al inicio del sistema:

  1. systemctl enable logstash
  2. systemctl start logstash

NOTA: En mi caso, en Centos 7, no se ha generado la configuración del servicio en systemd de forma automática. Para crearla de manera manual he tenido que realizar esta acción:

  1. /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

Y con esto ya tendríamos Logstash funcionando pero sin configurar. 

En otro artículo hablaremos de su configuración.

Añadir Metricbeat

Para darle un poco de «chicha» vamos a añadir Metricbeat, que nos permitirá poder visualizar en directo la actividad de nuestro servidor. Para ello lo primero desde la interfaz de Kibana, nos iremos al apartado «Management» y una vez allí seleccionamos sobre «Learn How»


De esta manera podemos utilizar patrones ya definidos para distintos fines. Nosotros escogeremos «System Metrics»

Como añadir el patrón «System metrics» (click en la imagen para ampliar)

Al marcar sobre el enlace nos dirigirá a una página donde podemos ver las instrucciones de instalación y configuración.

Los pasos son estos:

Debemos descargar el paquete de instalación:

  1. wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-x86_64.rpm --no-check-certificate

E instalamos:

  1. rpm -ivh metricbeat-6.4.0-x86_64.rpm

Editamos el fichero de configuración ubicado en «/etc/metricbeat/metricbeat.yml», adaptado a nuestra configuración, en mi caso:

  1. #============================== Kibana =====================================
  2. host: "http://ip-del-servidor:5601"
  3. #-------------------------- Elasticsearch output ------------------------------
  4. hosts: ["ip-del-servidor:9200"]

Guardamos y habilitamos el módulo que nos interesa:

  1. metricbeat modules enable system

Si nos dice que no encuentra el módulo, debemos realizar esta paso:

  1. cp -r /usr/share/metricbeat/modules.d /etc/metricbeat/

Para cargar el módulo, ejecutamos:

  1. metricbeat setup

Si todo ha ido bien, debemos volver a Kibana al apartado «Management«, e indicarle al sistema que nuestro patrón favorito es «metricbeat-*»

Desde «Dashboards» podemos escoger el filtro que nos interesa, en mi caso «Metricbeat System«, como se muestra en la imagen:

Muestra de Metricbeats en funcionamiento (click en la imagen para ampliar)

Lo dejamos aquí. Espero que os haya parecido interesante.

NOTA: En otro artículo veremos lo fácil que es añadir clientes a monitorizar con «Metricbeats»

ACLARACIÓN: En estos artículos intento explicar como instalar y configurar, por lo menos en los primeros pasos, las diferentes partes de Elastic Stack, desde mi experiencia. Quiero que quede claro que no soy un experto en esta plataforma. Existen profesionales al respecto, que si sois una empresa os recomiendo consultar.

Para elaborar el artículo me he servido de la siguiente información:

Github.com – Modules.d installed to wrong location

Elastic.co –  Install Kibana with RPM

Elastic.co – Install Logstash