Instalación de ELK 6.1 en Ubuntu server 16.04 Instalación de ELK 6.1 en Ubuntu server 16.04
En la entrada de hoy hablaremos de la pila ELK, estos tres componentes que son bastante comunes en arquitecturas Big Data. Logstash facilita la ingesta de datos... Instalación de ELK 6.1 en Ubuntu server 16.04

En la entrada de hoy hablaremos de la pila ELK, estos tres componentes que son bastante comunes en arquitecturas Big DataLogstash facilita la ingesta de datos provenientes de fuentes distribuidas, Elasticsearch indexa los datos y Kibana permite su visualización. En esta entrada mostraré las funcionalidades básicas de Elasticsearch como motor de indexación.Proceso de instalación

Partiendo de una instalación limpia de Ubuntu 17 podemos instalar todo de una manera más o menos automática utilizando apt. Además vamos a configurar la pila como servicio en la máquina Linux para que este corriendo como un demonio (IP de NAT de la VM: 192.168.74.142) tal y como debería estar en un servicio que montemos en producción.

Como paso previo, hay que realizar una instalación mínima de Ubuntu 17.04 server, podemos descargarlo de:

http://releases.ubuntu.com/17.04/

Una ver tenemos la instalación del servidor Ubuntu terminada, nos conectamos a la consola y comenzamos instalando JAVA como requisito: ElasticSearch y Logstash usan esta tecnología.

Para su instalación añadimos el repositorio y lanzamos la instalación: 

sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer

Podemos comprobar que se ha instalado y la vesión de JAVA con el comando java -version:


Añadir los repositorios de la versión 6.x (actualmente la 6.1) a Ubuntu para realizar la instalación de la pila ELK:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
sudo apt-get update

Instalacion de ElasticSearch

sudo apt-get install elasticsearch

Con esto ya tendríamos instalado ElasticSearch, vamos a configurar el acceso a él para que solo sea posible desde la propia máquina (localhost) así evitamos que se puedan leer datos o hacer cambios mediante la API.

Editamos el fichero de configuración:

vi /etc/elasticsearch/elasticsearch.yml

Aqui podemos ver un pantallazo de la entrada del fichero que tenemos que modificar:

Buscamos, des comentamos y configuramos así, y una vez guardado el fichero reiniciamos el servicio.

sudo systemctl restart elasticsearch

Para que ElasticSearch arranque como servicio, configuramos el demonio:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

Instalacion de Kibana

sudo apt-get install kibana

Editamos también el fichero de configuración para hacer el “bind” a solo localhost:

El fichero a editar:

sudo vi /etc/kibana/kibana.yml

En la siguiente captura podemos ver un pantallazo de la entrada a modificar en el fichero de configuración: 

Des comentamos y configuramos como muestra en la imagen, guardamos los cambios y reiniciamos el servicio. Para configurar también Kibana al arranque del sistema hacemos lo mismo que antes:

sudo systemctl daemon-reload
sudo systemctl enable kibana
sudo systemctl start kibana

Esto lo hacemos así porque vamos a utilizar un proxy inverso para el acceso vía web ya que la versión free de ELK no trae seguridad, entre otras cosas como son permisos por roles, avisos, reporting, etc.

Para ello hay modulos como X-Pack

https://www.elastic.co/products/x-pack

o alternativas gratuitas como SearchGuard para seguridad:

https://github.com/floragunncom/search-guard

o Sentinl para alertas y generación de reports:

https://github.com/sirensolutions/sentinl

En nuestro caso, haremos un pequeño arreglo para proteger el acceso a Kibana mediante un proxy inverso, esto lo haremos con Nginx, lo instalamos:

sudo apt-get -y install nginx

Necesitamos ahora configurar la autenticación, para ello creamos un fichero donde estén guardados los usuarios y password que pueden acceder a la web de Kibana. El fichero estará en /etc/nginx/htpasswd.users, lo editamos y añadimos un usuario de ejemplo admin y contraseña 123.qwe.

1 – Generamos la contraseña con openssl (Algoritmo aprt1, variante de Apache)

https://wiki.openssl.org/index.php/Manual:Passwd(1)

2 – La añadimos al fichero htpasswd.users junto con el nombre de usuario:

Debe quedar como se muestra la imagen.

Ahora falta configurar Nginx para que actue como proxy inverso hacia nuestro Kibana que esta en la misma máquina, para ello editamos el “site” por defecto:

sudo vi /etc/nginx/sites-available/default

El fichero debe quedar como sigue:

server {
  listen 80 default_server;
  server_name _;
  
  auth_basic "Acceso solo a usuarios autorizados. Log-in";
  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;
  }
}

Le metemos la autenticación y el user-file será el creado anteriormente con el usuario admin. Por lo demás es sencillo, todo lo que sea petición a /, hace de proxy y lo redirige a el propio servidor al puerto 5601 (puerto por defecto de Kibana), con esto nos pide validación para acceder:

Instalacion de Logstash

sudo apt-get install logstash

Y como el resto lo ejecutamos como servicio:

sudo systemctl daemon-reload
sudo systemctl enable logstash.service

Ya podemos acceder a Kibana y comenzar a configurar los indices

 

gpinero

No hay comentarios

Se el primero en dejar un comentario.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

CAPTCHA ImageChange Image