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:
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:
vi /etc/yum.repos.d/kibana.repo
Con la información:
[kibana-6.x]
name=Kibana 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
Guardamos y salimos, escribiendo “:wq”
Ahora sí, ya podemos instalar el paquete de Kibana:
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
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-x86_64.rpm
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:
firewall-cmd –permanent –add-port=5601/tcp
firewall-cmd –reload
Hecho esto, añadimos la IP de nuestro equipo a la configuración del fichero “/etc/kibana/kibana.yml”
server.host: "IP-Privada"
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:
systemctl start kibana
systemctl enable kibana
Comprobamos que efectivamente se está escuchando por el puerto 5601:
[root@servcentos1 ~]# lsof -i :5601
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
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:
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:
[logstash-6.x]
name=Elastic 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
Guardamos y salimos con “:wq”
Instalamos el componente vía YUM
yum install logstash
La otra manera es instalar directamente desde la fuente, así:
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.1.rpm
rpm -ivh logstash-6.4.1
Añadimos Logstash al inicio del sistema:
systemctl enable logstash
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:
/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»
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:
wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-x86_64.rpm --no-check-certificate
E instalamos:
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:
#============================== Kibana =====================================
host: "http://ip-del-servidor:5601"
#-------------------------- Elasticsearch output ------------------------------
hosts: ["ip-del-servidor:9200"]
Guardamos y habilitamos el módulo que nos interesa:
metricbeat modules enable system
Si nos dice que no encuentra el módulo, debemos realizar esta paso:
cp -r /usr/share/metricbeat/modules.d /etc/metricbeat/
Para cargar el módulo, ejecutamos:
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:
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