Despliegue y Configuración de Elasticsearch y Kibana en Linux

Preparación del Entorno Java (JDK)

Aunque Elasticsearch incluye su propia distribución de Java embebida, en entornos de producción es una práctica recomendada utilizar un JDK gestionado de forma independiente. A continuación, se detalla la instalación de un JDK 8 alternativo.


# Crear directorio base para el JDK
sudo mkdir -p /opt/java/jdk
cd /opt/java/jdk

# Descargar y extraer el paquete (ejemplo con OpenJDK)
sudo tar -xvf openjdk-8u312-linux-x64.tar.gz

# Verificar la ruta exacta de extracción
pwd

Configuración de las variables de entorno a nivel de sistema:


sudo nano /etc/profile.d/java_env.sh

# Agregar las siguientes líneas al archivo:
export JAVA_BASE=/opt/java/jdk/jdk1.8.0_312
export PATH=$JAVA_BASE/bin:$PATH

Aplicar los cambios en la sesión actual y verificar la instalación:


source /etc/profile.d/java_env.sh
java -version

Instalación y Configuración de Elasticsearch

Procederemos a desplegar el motor de búsqueda y análisis. Por razones de seguridad estrictas, Elasticsearch prohíbe su ejecución bajo el usuario root.

1. Descarga y Extracción


sudo mkdir -p /srv/elasticsearch
cd /srv/elasticsearch

# Descargar el paquete tarball usando curl
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz

2. Creación de Usuario Dedicado

Generamos un usuario y grupo específicos para gestionar el servicio y aislar sus permisos:


sudo groupadd elastic_group
sudo useradd -g elastic_group -m -s /bin/bash elastic_usr
sudo chown -R elastic_usr:elastic_group /srv/elasticsearch/elasticsearch-7.10.2

3. Ajustes de Configuración de Elasticsearch

Cambiam al usuario dedicado y preparamos los directorios personalizados para datos y logs:


su - elastic_usr
cd /srv/elasticsearch/elasticsearch-7.10.2
mkdir -p storage/data storage/logs

Editamos el archivo config/elasticsearch.yml para definir los parámetros básicos de red, clúster y almacenamiento:


cluster.name: "mi-cluster-produccion"
node.name: "nodo-01"
path.data: /srv/elasticsearch/elasticsearch-7.10.2/storage/data
path.logs: /srv/elasticsearch/elasticsearch-7.10.2/storage/logs
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node

4. Optimización del Sistema Operativo

Regresamos al usuario root (usando exit) para ajustar los límites del kernel y del sistema de archivos, requisitos indispensables para el rendimiento óptimo de Elasticsearch.

Editar /etc/security/limits.conf para aumentar los descriptores de archivo y procesos:


elastic_usr soft nofile 65535
elastic_usr hard nofile 65535
elastic_usr soft nproc 4096
elastic_usr hard nproc 4096

Editar /etc/sysctl.conf para aumentar el límite de mapas de memoria virtual:


vm.max_map_count=262144

Aplicar la configuración del kernel de inmediato:


sudo sysctl -p

5. Inicio del Servicio

Como usuario elastic_usr, iniciamos el proceso en segundo plano y generamos un archivo PID para su gestión:


cd /srv/elasticsearch/elasticsearch-7.10.2/bin
./elasticsearch -d -p pid_es.txt

El servicio expondrá el puerto 9300 para comunicación interna del clúster y el 9200 para la API REST. Se puede verificar el estado del nodo mediante:


curl -X GET "http://localhost:9200/"

Despliegue de Kibana

Kibana actúa como la capa de visualización, exploración y gestión para los datos indexados en Elasticsearch dentro del Elastic Stack.

1. Obtención del Binario


sudo mkdir -p /srv/kibana
cd /srv/kibana

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-linux-x86_64.tar.gz
tar -xzf kibana-7.10.2-linux-x86_64.tar.gz
sudo chown -R elastic_usr:elastic_group /srv/kibana/kibana-7.10.2-linux-x86_64

2. Configuración de Kibana

Como usuario elastic_usr, editamos el archivo config/kibana.yml para vincularlo con nuestra instancia de Elasticsearch:


server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana-dashboard"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
i18n.locale: "es"

3. Ejecución del Dashboard

Para iniciar Kibana de forma desacoplada de la terminal actual y asegurar que persista tras cerrar la sesión SSH, utilizamos nohup redirigiendo la salida estándar:


cd /srv/kibana/kibana-7.10.2-linux-x86_64
nohup ./bin/kibana > /srv/kibana/kibana_output.log 2>&1 &

La interfaz web estará disponible en http://[IP_DEL_SERVIDOR]:5601, permitiendo la interacción con los índices, la creación de visualizaciones y la adimnistración general del clúster.

Etiquetas: Elasticsearch Kibana JDK linux Sysadmin

Publicado el 6-29 17:08