En esta guía, aprenderá a instalar Elastic Stack en Ubuntu 18.04. Pila elástica , anteriormente conocido como pila ELK es una colección o pila de software gratuito y de código abierto de Elastic Company diseñado para el registro centralizado.
Permite la búsqueda, el análisis y la visualización de registros de diferentes fuentes en una gran variedad de formatos. El registro centralizado ayuda a identificar los problemas del servidor o de la aplicación desde un punto común.
Componentes de pila elástica
Elastic Stack se compone de 4 componentes principales.
- Búsqueda elástica :Este es un motor de búsqueda RESTful que almacena o retiene todos los datos recopilados
- Logstash :este es el componente que procesa los datos y los analiza para la búsqueda elástica
- Kibana :Esta es una interfaz web que visualiza registros
- Latidos :Estos son cargadores de datos ligeros que envían registros de cientos/miles de servidores al servidor central en el que está configurado ELK.
Veamos ahora cómo puede instalar Elastic Stack en Ubuntu 18.04.
Requisitos
Antes de comenzar la instalación, asegúrese de tener la siguiente infraestructura.
- Servidor Ubuntu 18.04 LTS con acceso raíz y un usuario no raíz más firewall ufw. Los siguientes deben ser los requisitos mínimos del servidor.
- Ubuntu 18.04 LTS
- 4 GB de RAM
- 2 CPU
- Java 8 instalado en su sistema que será requerido por Elasticsearch y Logstash.
- NGINX instalado en su servidor que luego se configurará para manejar Kibana. Lectura recomendada:Instalar Nginx en Ubuntu 18.04
Dicho esto, profundicemos y comencemos la instalación de Elastic Stack en Ubuntu.
1. Instalar Elasticsearch en Ubuntu
En primer lugar, vamos a importar la clave GPG pública de Elasticsearch a APT. Los paquetes de pila elástica generalmente se firman con la clave de firma de Elasticsearch para proteger su sistema contra la suplantación de identidad de paquetes. Además, el administrador de paquetes considera que los paquetes autenticados son de confianza.
Para importar la llave GPG ejecute:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
A continuación, agregue el repositorio de Elastic a sources.list.d directorio usando el siguiente comando.
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list La salida de los dos comandos es como se muestra:
Salida

Ahora actualice el repositorio del sistema usando el siguiente comando.
sudo apt update Salida de muestra

Ahora, instale Elasticsearch usando el siguiente comando.
sudo apt install elasticsearch Salida

2. Configurar Elasticsearch en Ubuntu
Elasticsearch escucha en el puerto 9200. Sin embargo, vamos a limitar el acceso externo para que las partes externas no puedan acceder a los datos y cerrar el clúster elástico. Dicho esto, vamos a realizar algunas modificaciones en el archivo de configuración de Elasticsearch como se muestra a continuación
sudo nano /etc/elasticsearch/elasticsearch.yml
Encuentra el network.host atributo y descomentelo y agregue localhost como su valor. También descomente el http.port atributo.
Salida
network.host: localhost
http.port: 9200
A continuación, inicie y habilite el servicio Elasticsearch como se muestra.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Salida

En este punto, Elasticsearch debería estar en funcionamiento. Puede verificar esto ejecutando el siguiente comando.
systemctl status elasticsearch Salida

También puede usar el netstat comando como se muestra.
netstat -pnltu

Además, puede ejecutar el curl comando como se muestra.
curl -X GET "localhost:9200" Salida

¡Excelente! Hemos finalizado la instalación y configuración de Elasticsearch. A continuación, instalaremos y configuraremos Logstash.
3. Instalación y configuración de Logstash
El segundo componente de la pila elástica que vamos a instalar es Logstash. Logstash será responsable de recopilar y centralizar los registros de varios servidores mediante el envío de datos de Filebeat. Luego filtrará y transmitirá los datos de syslog a Elasticsearch.
Primero, confirmemos que OpenSSL se está ejecutando. Para hacer eso, corre.
openssl version -a Salida

Para instalar Logstash, ejecute el siguiente comando.
sudo apt install logstash -y Salida

A continuación, edite el /etc/hosts archivo y agregue lo siguiente.
18.224.44.11 elk-master Donde 18.224.44.11 es la dirección IP del servidor masterELk.
Luego vamos a generar la clave del certificado SSL para asegurar la transferencia de datos de registro desde el filebeat del cliente al servidor logstash.
Para hacer esto, primero, cree un nuevo directorio SSL en el directorio de configuración de logstash '/etc/logstash' y navegue hasta ese directorio.
mkdir -p /etc/logstash/ssl
cd /etc/logstash/
Ahora puede generar el certificado SSL como se muestra a continuación.
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt A continuación, vamos a crear nuevos archivos de configuración para logstash. Crearemos un archivo de configuración 'filebeat-input.conf' como archivo de entrada de filebeat, 'syslog-filter.conf' para el procesamiento de syslog y, por último, un archivo 'output-elasticsearch.conf' para definir la salida de Elasticsearch.
Navegue al directorio de Logstash y cree un archivo 'filebeat-input.conf' en el directorio 'conf.d'.
cd /etc/logstash/
vim conf.d/filebeat-input.conf Pegue la siguiente configuración.
input {
beats {
port => 5443
type => syslog
ssl => true
ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
}
} Guarde y salga del editor de texto.
Para los datos de registro de procesamiento de syslog, estamos utilizando el complemento de filtro llamado "grok" para analizar los archivos de syslog.
Cree una nueva configuración 'syslog-filter.conf'.
vim conf.d/syslog-filter.conf Pegue la configuración a continuación.
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
Guarde y salga del editor de texto.
Finalmente, cree un archivo de configuración llamado 'output-elasticsearch.conf' para la salida de elasticsearch.
vim conf.d/output-elasticsearch.conf Pegue el siguiente contenido.
output {
elasticsearch { hosts => ["localhost:9200"]
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
} Guarde y salga del editor de texto.
Cuando haya terminado, habilite e inicie el servicio Logstash.
sudo systemctl enable logstash
sudo systemctl start logstash
Para verificar que Logstash se está ejecutando, ejecute el comando.
sudo systemctl status logstash Salida de muestra

También puede usar el netstat comando como se muestra.
netstat -pnltu

4. Instalar y configurar Kibana en Ubuntu
A continuación, vamos a instalar Kibana usando el siguiente comando.
sudo apt install kibana -y Salida

A continuación, vamos a realizar algunas modificaciones en el archivo de configuración de Kibana.
vim /etc/kibana/kibana.yml Localice y descomente los siguientes atributos.
server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"
Guarde y salga del editor de texto.
Luego habilite e inicie el servicio Kibana:
sudo systemctl enable kibana
sudo systemctl start kibana
Salida

Puede confirmar que Kibana se está ejecutando en su puerto predeterminado 5601 usando netstat comando como se muestra.
netstat -pnltu Salida

5. Instalación y configuración de NGINX como proxy inverso para Kibana
Estamos usando NGINX como un proxy inverso para los paneles de kibana. Debe instalar Nginx y 'Apache2-utils' como se muestra a continuación.
sudo apt install nginx apache2-utils -y Salida
A continuación, cree un nuevo archivo de host virtual llamado kibana.
vim /etc/nginx/vim sites-available/kibana Pegue el siguiente contenido en el archivo de host virtual
server {
listen 80;
server_name localhost;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass https://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 salga del editor de texto. Lectura recomendada:directiva de ubicación de NGINX.
A continuación, cree una autenticación básica para el panel de kibana usando htpasswd comando como se muestra.
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password
Salida

En el ejemplo anterior, el nombre de usuario es elastic y la contraseña será la que usted proporcione.
A continuación, active la configuración del host virtual de Kibana y pruebe la configuración de Nginx.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
Salida

Sin errores, habilite y reinicie el servidor Nginx.
systemctl enable nginx
systemctl restart nginx
6. Instalación y configuración de Filebeat
En este paso, vamos a configurar el cargador de datos filebeat en nuestro servidor elk-master. Esto transmitirá todos los mensajes de syslog a logstash que serán procesados y visualizados por kibana.
Para instalar filebeat ejecute:
sudo apt install filebeat A continuación, abra el archivo de configuración de Filebeat.
sudo vim /etc/filebeat/filebeat.yml Vamos a utilizar Logstash para realizar un procesamiento adicional de los datos recopilados por Filebeat. Filebeat no será necesario para enviar ningún dato directamente a Elasticsearch. Por lo tanto, ubique y comente la sección de búsqueda elástica como se muestra.
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
A continuación, diríjase a la sección Logstash y elimine los comentarios como se muestra.
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
Habilite los prospectores de Filebeat cambiando el valor de la línea "habilitado" a "verdadero".
enabled: true Especifique los archivos de registro del sistema que se enviarán al servidor logstash. En este ejemplo, agregaremos el archivo de registro ssh 'auth.log' y el archivo syslog.
paths:
- /var/log/auth.log
- /var/log/syslog
Guardar y Salir.
Finalmente, copie el archivo de certificado de logstash, logstash-forwarder.crt, en /etc/filebeat directorio.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt Ahora inicie y habilite filebeat.
systemctl start filebeat
systemctl enable filebeat
Para verificar el estado de ejecución de filebeat:
systemctl status filebeat Salida

7. Probando la pila de Elasticsearch
Para probar nuestra pila elástica, abra su navegador y busque la IP de su servidor seguido del puerto 5601, que es el puerto que escucha Kibana.
ip-address:5601 Ingrese el nombre de usuario y la contraseña y posteriormente, se desplegará la siguiente pantalla.

Haga clic en la pestaña 'descubrir' y haga clic en 'Filebeat'. Aparecerá la siguiente interfaz que le ofrece transmisión en vivo de los datos visualizados.

¡Felicidades! Ha instalado y configurado con éxito The Elastic Stack y Elastic Beat 'Filebeat' en su sistema Ubuntu 18.04.