Cómo instalar el software Logstash Logfile Analytics en Ubuntu 20.04
ELK es una combinación de tres productos de código abierto, ElasticSearch, Logstash y Kibana. Es una de las plataformas de gestión de registros más populares del mundo. Elasticsearch es un motor de búsqueda y análisis. Logstash es una canalización de procesamiento de registros que transporta registros de múltiples fuentes simultáneamente, los transforma y luego los envía a un «alijo» como Elasticsearch. Kibana se usa para visualizar sus datos que Logstash ha indexado en el índice de Elasticsearch
En este tutorial explicaremos cómo instalar Logstash en Ubuntu 20.04.
requisitos previos
- Un servidor con Ubuntu 20.04.
- Una contraseña de root está configurada en el servidor.
Instalar las dependencias requeridas
Para instalar Elasticsearch, deberá instalar Java en su sistema. Puede instalar Java JDK con el siguiente comando:
apt-get install openjdk-11-jdk -y
Una vez instalado, verifique la versión instalada de java con el siguiente comando:
java -version
Debería ver el siguiente resultado:
openjdk 11.0.7 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
A continuación, instale otras dependencias requeridas ejecutando el siguiente comando:
apt-get install nginx curl gnupg2 wget -y
Una vez que todas las dependencias estén instaladas, puede continuar con el siguiente paso.
Instalar y configurar Elasticsearch
Antes de comenzar, deberá instalar Elasticsearch en su sistema. Almacena registros y eventos de Logstash y ofrece la posibilidad de buscar los registros en tiempo real.
Primero, agregue el repositorio de Elastic a su sistema con el siguiente comando:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
A continuación, actualice el repositorio e instale Elasticsearch con el siguiente comando:
apt-get update -y apt-get install elasticsearch -y
Una vez instalado, edite el archivo de configuración predeterminado de Elasticsearch:
nano /etc/elasticsearch/elasticsearch.yml
Descomente y cambie su valor como se muestra a continuación:
network.host: localhost
Guarde y cierre el archivo, luego inicie el servicio Elasticsearch y habilítelo para que comience en el arranque con el siguiente comando:
systemctl start elasticsearch systemctl enable elasticsearch
En este punto, Elasticsearch está instalado y escuchando en el puerto 9200. Ahora puede probar si Elasticsearch funciona o no ejecutando el siguiente comando:
curl -X GET "localhost:9200"
Si todo está bien, debería ver el siguiente resultado:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA", "version" : { "number" : "7.8.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Una vez que haya terminado, puede continuar con el siguiente paso.
Instalar y configurar Kibana
A continuación, deberá instalar Kibana en su sistema. Kibana le permite analizar los datos almacenados en Elasticsearch. Puede instalarlo simplemente ejecutando el siguiente comando:
apt-get install kibana -y
Una vez que se haya instalado Kibana, inicie el servicio de Kibana y habilítelo para que se inicie en el arranque con el siguiente comando:
systemctl start kibana systemctl enable kibana
A continuación, deberá crear un usuario administrativo para que Kibana acceda a la interfaz web de Kibana. Ejecute el siguiente comando para crear el usuario y la contraseña administrativos de Kibana y guárdelos en el archivo htpasswd.users.
echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users
Se le pedirá que proporcione una contraseña como se muestra en el siguiente resultado:
Password: Verifying - Password: admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/
A continuación, cree un archivo de configuración de host virtual de Nginx para servir a Kibana:
nano /etc/nginx/sites-available/kibana
Agregue las siguientes líneas:
server { listen 80; server_name kibana.example.com; auth_basic "Restricted Access"; 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; } }
Guarde y cierre el archivo, luego habilite el archivo de host virtual Nginx con el siguiente comando:
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
A continuación, reinicie el servicio Nginx para aplicar los cambios:
systemctl restart nginx
Luego, abra su navegador web y verifique el estado de Kibana usando la URL http://kibana.example.com/status. Se le pedirá que proporcione el nombre de usuario y la contraseña como se muestra a continuación: Anuncio
Proporcione su nombre de usuario y contraseña de Kibana y haga clic en el botón Iniciar sesión. Debería ver la siguiente pantalla:
En este punto, el tablero de Kibana está instalado en su sistema. Ahora puede continuar con el siguiente paso.
Instalar y configurar Logstash
Logstash se utiliza para el procesamiento de registros enviados por latidos. Puede instalarlo ejecutando el siguiente comando:
apt-get install logstash -y
Una vez que se haya instalado Logstash, cree un nuevo archivo de configuración de ritmo con el siguiente comando:
nano /etc/logstash/conf.d/02-beats-input.conf
Agregue las siguientes líneas:
input { beats { port => 5044 } }
Guarde y cierre el archivo, luego cree un archivo de configuración de Elasticsearch con el siguiente comando:
nano /etc/logstash/conf.d/30-elasticsearch-output.conf
Agregue las siguientes líneas:
output { if [@metadata][pipeline] { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline => "%{[@metadata][pipeline]}" } } else { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } }
Guarde y cierre el archivo, luego verifique su configuración de Logstash con este comando:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Si todo está bien, debería ver el siguiente resultado:
Config Validation Result: OK. Exiting Logstash
A continuación, inicie el servicio Logstash y habilítelo para que se inicie en el arranque con el siguiente comando:
systemctl start logstash systemctl enable logstash
En este punto, Logstash está instalado en su sistema. Ahora puede continuar con el siguiente paso.
Instalar y configurar Filebeat
La pila ELK usa Filebeat para recopilar datos de varias fuentes y transportarlos a Logstash.
Puede instalar Filebeat con el siguiente comando:
apt-get install filebeat -y
Una vez instalado, deberá configurar Filebeat para conectarse a Logstash. Puedes configurarlo con el siguiente comando:
nano /etc/filebeat/filebeat.yml
Comenta las siguientes líneas:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
Luego, descomente las siguientes líneas:
output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
Guarde y cierre el archivo, luego habilite el módulo del sistema con el siguiente comando:
filebeat modules enable system
De forma predeterminada, Filebeat está configurado para usar rutas predeterminadas para los registros de autorización y syslog.
Puede cargar la canalización de ingesta para el módulo del sistema con el siguiente comando:
filebeat setup --pipelines --modules system
A continuación, cargue la plantilla con el siguiente comando:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Debería ver el siguiente resultado:
Index setup finished.
De forma predeterminada, Filebeat incluye paneles de muestra de Kibana que le permiten visualizar los datos de Filebeat en Kibana. Por lo tanto, debe deshabilitar la salida de Logstash y habilitar la salida de Elasticsearch. Puedes hacerlo con el siguiente comando:
filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
Debería ver el siguiente resultado:
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling. Index setup finished. Loading dashboards (Kibana must be running and reachable) Loaded dashboards Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead. See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html Loaded machine learning job configurations Loaded Ingest pipelines
Ahora, inicie el servicio Filebeat y habilítelo para que se inicie en el arranque con el siguiente comando:
systemctl start filebeat systemctl enable filebeat
Acceder al panel de control de Kibana
En este punto, todos los componentes de ELK están instalados y configurados. Ahora, abra su navegador web y escriba la URL http://kibana.example.com. Debería ver el tablero de Kibana en la siguiente pantalla:
En el panel izquierdo, haga clic en el Descubrir y seleccione el patrón de índice filebeat-* predefinido para ver los datos de Filebeat en la siguiente pantalla:
Ahora, Kibana ofrece muchas características. Siéntase libre de explorarlos como desee.
Conclusión
¡Felicidades! Ha instalado y configurado correctamente Logstash en el servidor Ubuntu 20.04. Ahora puede recopilar y analizar registros del sistema desde una ubicación central. No dude en preguntarme si tiene alguna pregunta.