Cómo: Instalar Elasticsearch 6 con yum (RPM) en RedHat, CentOS, Fedora, OpenSuSe

Elasticsearch (E.S.) es un motor de búsqueda (y analítica) a texto completo (full-text). Es un proyecto de código abierto y permite almacenar y analizar grandes volúmenes de información de forma muy rápida y muy próxima al tiempo real. Se usa generalmente como el motor/tecnología subyacente que potencia aplicaciones con características y requerimientos de búsqueda muy complejos.

E.S. está basado en Lucene y es además distribuido y con capacidad de multi-tenencia. Dispone de una interfaz web RESTful y trabaja con documentos JSON. Está desarrollado en Java y está publicado como código abierto bajo las condiciones de la licencia Apache.

En mi caso, he visto que uno de los usos más inmediatos y prácticos es el del almacenamiento de logs, u otro tipo de información que se genere de forma constante y que se requiere almacenar y potencialmente ser analizada. Al ser el motor, E.S. realmente se encarga de la parte del almacenamiento y las capacidades de búsqueda, pero disponen de lo que se denomina Elastic Stack que está conformado de:

Todos los elementos del stack están disponibles para sistemas tipo RPM, y para el caso de RedHat y sus símiles como CentOS y Fedora (también para OpenSuSE), incluso se dispone de un repositorio que facilitará, no solo la instalación, sino la mantenibilidad a través de las actualizaciones. Todo está muy bien documentado en el sitio oficial, pero aquí mi resumen práctico:

Crear un nuevo archivo de repositorio /etc/yum.repos.d/elasticsearch.repo y agregar el siguiente contenido:

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Ahora podremos instalar los elementos del stack con yum (RH y CentOS) o dnf (Fedora) o zypper (OpenSuSe):

Elasticsearch:

# yum install elasticsearch
# dnf install elasticsearch
# zypper install elasticsearch

El servicio instalado se llama elasticsearch y se puede controlar con:

SysV init:

# chkconfig --add elasticsearch
# service elasticsearch start

Systemd

# systemctl enable elasticsearch
# systemctl start elasticsearch

El servicio empieza a responder inmediatamente por el puerto 9200 (por defecto)

Kibana:

# yum install kibana
# dnf install kibana
# zypper install kibana

El servicio de instalado se llama kibana y se puede controlar con:

SysV init:

# chkconfig --add kibana
# service kibana start

Systemd

# systemctl enable kibana
# systemctl start kibana

El servicio empieza a responder inmediatamente por el puerto 5601 (por defecto) y puede usarse la consola desde unnavegador accediendo a http://localhost:5601:

Logstash:

# yum install logstash
# dnf install logstash
# zypper install logstash

Beats:

# yum install auditbeat filebeat metricbeat packetbeat
# dnf install auditbeat filebeat metricbeat packetbeat
# zypper install auditbeat filebeat metricbeat packetbeat

En este caso se instalan todos los 4 tipos de beats disponibles, pero se podría sólo instalar el/los beat/s que se requiera usar, de acuerdo a las necesidades particulares.