Ir al contenido principal

[Logs II] Instalar ELK elastic stack 7.5

Requerimientos

  • Ubuntu 18.04.3 LTS
  • 4 GB de Ram

¿Qué es entonces el ELK Stack?

ELK es la sigla para tres proyectos open source: Elasticsearch, Logstash y Kibana. Elasticsearch es un motor de búsqueda y analítica. Logstash es un pipeline de procesamiento de datos del lado del servidor que ingesta datos de una multitud de fuentes simultáneamente, los transforma y luego los envía a como Elasticsearch. Kibana permite a los usuarios visualizar los datos en cuadros y gráficos con Elasticsearch.
Si quieres aprender mas del proyecto puedes visitar https://www.elastic.co/es/what-is/elk-stack

Instalar elasticsearch

La opción de instalación mas conveniente para Ubuntu es usar los paquetes deb.
El paquete deb de elasticsearch funciona para sistemas operativos Debian y sus derivados, los puedes bajar directamente del sitio web de elasticsearch o desde el repositorio usando APT.
El paquete que vamos a instalar usa la licencia de elastic, que es open source pero tenemos la opción de pasarnos a la licencia comercial, con la licencia open source ser suficiente para una buena cantidad de requerimientos.

Importar PGP key de elastic

Los paquetes están firmados con la clave D88E42B4, disponible desde https://pgp.mit.edu con el fingerprint:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
Descargar e instalar la clave publica

Instalar desde los repositorios APT

Antes de iniciar necesitamos instalar apt-transport-https

Agregamos el repositorio

Instalamos los paquetes

Iniciar automáticamente elasticsearch al iniciar el sistema

Por default elasticsearch no inicia automáticamente después de la instalación, iniciar y detenerse depende del sistema SysV init o systemd
Podemos saber que sysV estamos usando con el comando

ps -p 1
PID TTY          TIME CMD
    1 ?        00:00:13 systemd
    

En Ubuntu 18.04 por default usa systemd
Para configurar que elasticsearch inicie automáticamente después de un reinicio del sistema usaremos.

para iniciar o detener elasticsearch

estos comandos no tienen salida en consola, pero podemos usar journalctl para ver el estado del inicio de la aplicación

Validar el funcionamiento

Vamos a enviar una petición con curl al puerto 9200 para ver si esta corriendo.

nos regresara algo parecido a esto

{
  "name" : "lnr",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "iv8LyrgVTZW_ax6W2wuxHw",
  "version" : {
    "number" : "7.5.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
    "build_date" : "2019-12-16T22:57:37.835892Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Directorios importantes

Tipo Descricion Directorio Setting
home directorio home or $ES_HOME /usr/share/elasticsearch
bin Binary scripts incluyendo elasticsearch y elasticsearch-plugin para instalar plugins /usr/share/elasticsearch/bin
conf Archivos de configuración incluyendo elasticsearch.yml /etc/elasticsearch ES_PATH_CONF
conf Variables de entorno incluyendo heap size, file descriptors. /etc/default/elasticsearch
data Datos de index / /var/lib/elasticsearch path.data
logs Archivos de Log /var/log/elasticsearch path.logs
plugins Archivos de plugins /usr/share/elasticsearch/plugins
Referencias

instalar kibana

Kibana es un panel de visualización de datos de código abierto para Elasticsearch. Proporciona capacidades de visualización sobre el contenido indexado en un clúster Elasticsearch. Los usuarios pueden crear gráficos de barras, líneas y dispersión, o gráficos circulares y mapas sobre grandes volúmenes de datos.
Vamos a instalar kibana usando los paquetes deb. Si seguimos los pasos anteriores de la parte de la instalación de elasticsearch podemos continuar de lo contrario, agregamos el PGP key, el repositorio e intalamos el apt transports.
Instalamos kibana con apt

Kibana no inicia por default con el sistema podemos hacer que inicie automáticamente con systemd

para iniciar y detener el sistema

validamos el status con

y podemos ver los logs de salida del sistema con journalctl

Validamos el correcto funcionamiento entrado en un navegador a localhost:5601/app/kibana o con curl

si queremos que kibana este disponible en alguna interfaz de especifica editamos el archivo /etc/kiaba/kibana.yml para editar la server.host: "tu ip"

y agregamos la etiqueta

#
#
#
server.host: "tu ip"
#
#

y agregamos las reglas al firewall ufw
entramos desde el navegador o usando curl y si nos regresa el logo de kibana esta listo

Direcciones importantes

Tipo Descrición PATH
home Home de kibana o $KIBANA_HOME /usr/share/kibana
bin Binary scripts incluyendo kibana y kibana-plugin /usr/share/kibana/bin
config Archivos de configuración incluyendo kibana.yml /etc/kibana
data Informacion escrita por kibana /var/lib/kibana
logs Logs /var/log/kibana
plugins Archivos de plugins /usr/share/kibana/plugins
Referencias

instalar logstash

instalar java

Para instalar logstash necesitar java 1.8, podemos instalar java la versión de Oracle o el openjdk, aquí usaremos el openjdk.

verificamos la instalación
java -version

instalar logstash


iniciar o detener el servicio

ver el estatus del servicio

ver salida de logs

Esta es la forma mas fácil de instalar ELK, pero dejaremos para otra entrada la configuración de logstash para dividir los logs.

Comentarios

Entradas más populares de este blog

Introducción a los CIS controls

Introducción CIS Controls es un conjunto de acciones priorizadas que colectivamente forman un conjunto de mejores prácticas de defensa que mitigan los ataques más comunes contra sistemas y redes. Los Controles CIS son desarrollados por una comunidad de expertos en TI que aplican su experiencia de primera mano como defensores cibernéticos para crear estas mejores prácticas de seguridad aceptadas globalmente. Los expertos que desarrollan los Controles CIS provienen de una amplia gama de sectores que incluyen retail, fabricación, salud, educación, gobierno, defensa y otros. Estamos en un punto fascinante en la evolución de lo que ahora llamamos defensa cibernética. Pérdidas masivas de datos, robo de propiedad intelectual, violaciones de tarjetas de crédito, robo de identidad, amenazas a nuestra privacidad, denegación de servicio: se han convertido en una forma de vida para todos nosotros en el ciberespacio. Y, como defensores, tenemos acceso a una extraordinaria

Inventario de Software autorizados y no autorizados

Gestione activamente todo software en la red (inventario, seguimiento y corrección), de tal manera que solo software autorizado esté instalado y pueda ejecutarse, y que el software no autorizado y no gestionado sea encontrado y se prevenga su instalación y ejecución. ¿Por qué es importante este control? Los atacantes escanean continuamente a las organizaciones objetivo en busca de versiones vulnerables de software que pueden explotarse de forma remota. Algunos atacantes también distribuyen páginas web, archivos de documentos, archivos multimedia y otros contenidos hostiles a través de sus propias páginas web o sitios de terceros de confianza. Cuando las víctimas desprevenidas acceden a este contenido con un navegador vulnerable u otro programa del lado del cliente, los atacantes comprometen sus máquinas, a menudo instalando programas de puerta trasera y bots que le dan al atacante un control a largo plazo del sistema. Algunos atacantes sofisticados pueden usar exploits d

Configuración segura para hardware y software en dispositivos móviles, computadoras portátiles, estaciones de trabajo y servidores

Configuración segura para hardware y software en dispositivos móviles, computadoras portátiles, estaciones de trabajo y servidores Establezca, implemente y gestione activamente (rastree, informe, corrija) la configuración de seguridad de dispositivos móviles, computadoras portátiles, servidores y estaciones de trabajo utilizando una rigurosa gestión de configuraciones y un proceso de control de cambios para evitar que los atacantes exploten servicios y configuraciones vulnerables. ¿Por qué es importante este control? Las configuraciones predeterminadas entregadas por los fabricantes y revendedores de sistemas operativos y aplicaciones normalmente están orientadas a la facilidad de implementación y la facilidad de uso, no a la seguridad. Controles básicos, servicios y puertos abiertos, cuentas o contraseñas predeterminadas, protocolos antiguos (vulnerables), preinstalación de software innecesario - todos pueden ser explotables en su estado predeterminado. Desarrollar