GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instalación de Filebeat, Logstash, ElasticSearch y Kibana en Ubuntu 14.04

PREPARACIONES

#Ref:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
Primero instale Java 8 en Ubuntu 14.04

# Ref:https://www.liquidweb.com/kb/how-to-install-oracle-java-8-on-ubuntu-14-04-lts/
apt-get install python-software-properties software-properties-common
apt-add-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
java -version

Resultado:
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Facilite la actualización de todos los paquetes a través de repositorios APT

apt-get install apt-transport-https
Guarde la definición del repositorio en /etc/apt/sources.list.d/elastic-5.x.list:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt-get update

BEAT DE ARCHIVO

Instalando filebeat

Filebeat lee líneas de registros definidos, las formatea correctamente y las reenvía a logstash mientras mantiene un flujo de canalización sin obstrucciones
Ref:https://github.com/elastic/beats/tree/master/filebeat
Ref:https://www.elastic.co/guide/en/beats/filebeat/5.5/filebeat-primeros-pasos.html
Ref:https://www.elastic.co/products/beats/filebeat

apt-get install filebeat
mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.orig
touch /etc/filebeat/filebeat.yml
mcedit /etc/filebeat/filebeat.yml

(contenido)
————————

filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]

————————
service filebeat restart

LOGSTASH

Descargue el paquete de instalación de logstash debian y configúrelo

# Ref:https://www.elastic.co/downloads/logstash
apt-get install logstash

# Resultado:
.......
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash

Preparación de Logstash

mcedit /etc/logstash/startup.options
(añada la siguiente línea al principio)
LS_CONFIGS_DIR=/etc/logstash/conf.d/

(Luego ajuste la siguiente línea de la siguiente manera)
from:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
a:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIGS_DIR}"

Iniciar/Detener/Reiniciar logstash
service logstash {start|stop|restart}

Prueba de logstash

cd /etc/logstash/ ; /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

Escribe:hola mundo
y presiona CTRL-D

(Logstash agrega información de marca de tiempo y dirección IP al mensaje. Salga de Logstash emitiendo un comando CTRL-D en el shell donde se está ejecutando Logstash).

Resultados:

ERROR StatusLogger No se encontró el archivo de configuración log4j2. Uso de la configuración predeterminada:registro solo de errores en la consola.
ADVERTENCIA:No se pudo encontrar logstash.yml, que normalmente se encuentra en $LS_HOME/config o /etc/logstash. Puede especificar la ruta usando –path.settings. Continuando con los valores predeterminados
No se pudo encontrar la configuración de log4j2 en la ruta //usr/share/logstash/config/log4j2.properties. Usando la configuración predeterminada que inicia sesión en la consola
11:22:59.822 [[main]-pipeline-manager] INFO logstash.pipeline – Iniciando canalización {“id”=>”main”, “pipeline.workers”=>2 , “pipeline.batch.size”=>125, “pipeline.batch.delay”=>5, “pipeline.max_inflight”=>250}
11:22:59.847 [[main]-pipeline-manager] INFO logstash.pipeline – Pipeline principal iniciado
El complemento stdin ahora está esperando entrada:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
11:22:59.946 [Api Webserver] INFO logstash.agent:se inició con éxito el extremo de la API de Logstash {:port=>9601}
11:23:02.861 [LogStash::Runner] WARN logstash.agent:se detuvo la canalización {:id=>” principal”}

Los errores y advertencias están bien por ahora. La línea de resultado principal anterior que es significativa es:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
que agrega una marca de tiempo y un nombre de servidor a la cadena de entrada (prueba 1)

Configuración de logstash
# Nota:esta configuración de prueba obtendrá la entrada de filebeat y la salida en un archivo de registro que se puede ver con tail -f …..
mcedit /etc/logstash/conf.d/apache2.conf
(contenido)
input {
beats {
port => 5044
type => "apache"
}
}
filter {
if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
}
output {
file {
path => "/var/log/logstash_output.log"
}
}

Para enviar la salida adecuada a elasticsearch, utilice esta configuración de salida:
———————————-
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

Seguridad de Filebeat => Logstash con SSL

Ref:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash
Nota:La escritura manual a continuación se muestra en negrita.

Preparar los directorios de certificados:

mkdir -p /etc/logstash/certs/Logstash/ /etc/logstash/certs/Beats/
Crear certificados de cliente para FileBeat:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
Enter instance name: Beats
Enter name for directories and files : Beats
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Beats/certificate-bundle_Beats.zip

Crear certificados de cliente para Logstash:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
Enter instance name: Logstash
Enter name for directories and files : Logstash
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip

Este archivo debe protegerse adecuadamente, ya que contiene las claves privadas para todas las
instancias y la autoridad de certificación.

Después de descomprimir el archivo, habrá un directorio para cada instancia que contiene
el certificado y la clave privada. Copie el certificado, la clave y el certificado de CA
en el directorio de configuración del producto Elastic para el que se utilizarán
y siga las instrucciones de configuración de SSL en la guía del producto.

Para las aplicaciones cliente, es posible que solo necesite copiar el certificado CA y
configurar el cliente para que confíe en este certificado.

Extraer certificados:
unzip /etc/logstash/certs/Beats/certificate-bundle_Beats.zip -d /etc/logstash/certs/Beats/
unzip /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip -d /etc/logstash/certs/Logstash/

Convierta la clave Logstash Logstash.key del formato PKCS#1 al formato PKCS#8:
Motivo:se produjo el siguiente mensaje de error en logstash.log al usar el formato PKCS1:
[ERROR][logstash.inputs.beats] Parece que tiene una clave no válida o su clave privada no era en formato PKCS8. {:exception=>java.lang.IllegalArgumentException:el archivo no contiene una clave privada válida:/etc/logstash/certs/Logstash/Logstash/Logstash.key}

Ver:https://github.com/spujadas/elk-docker/issues/112

Comando:
openssl pkcs8 -in /etc/logstash/certs/Logstash/Logstash/Logstash.key -topk8 -nocrypt -out /etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8

Configurar Beats para SSL

Contenido de /etc/filebeat/filebeat.yml
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]
ssl.certificate_authorities: ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl.certificate: "/etc/logstash/certs/Beats/Beats/Beats.crt"
ssl.key: "/etc/logstash/certs/Beats/Beats/Beats.key"

Contenido de /etc/logstash/conf.d/apache.conf
input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl_certificate => "/etc/logstash/certs/Logstash/Logstash/Logstash.crt"
ssl_key => "/etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8"
ssl_verify_mode => "force_peer"
}
}

Reiniciar Logstash y Filebeat
service logstash restart
service filebeat restart

NOTA: Sigo teniendo problemas con la conexión SSL de Filebeat a Logstash, donde Filebeat arroja este error en (/var/log/logstash/logstash-plain.log):
Error interno de TLS.
La siguiente URL parece haber encontrado algunos problemas similares, pero debido a la falta de tiempo aún no lo he resuelto.
https://discuss.elastic.co/t/mutual-tls-filebeat-to-logstash-fails- con-error-remoto-tls-error-interno/85271/3

Paquete X para Logstash

INSTALAR X-Pack para logstash

X-Pack es una extensión de Elastic Stack que reúne capacidades de seguridad, alertas, monitoreo, generación de informes, aprendizaje automático y gráficos en un paquete fácil de instalar.
X-Pack también proporciona una interfaz de usuario de monitoreo para Logstash.

/usr/share/logstash/bin/logstash-plugin instalar x-pack

Resultado:

Descargando archivo:https://artifacts.elastic.co/downloads/logstash-plugins/x-pack/x-pack-5.5.2.zip
Descargando [============================================================] 100%
Archivo de instalación:/tmp/studtmp-bc1c884de6d90f1aaa462364e5895b6b08b050f0b64587b4f5e0a8ec5300/x-pack-5.5.2.zip
Instalación exitosa

Configuración de X-Pack en Logstash:

La configuración predeterminada creada durante la instalación funciona mejor en la mayoría de los casos. Para obtener más información, consulte:
https://www.elastic.co/guide/en/logstash/5.5/settings-xpack.html

Para evitar la generación de mensajes de error de monitoreo en logstash.log edite /etc/logstash/logstash.yml y agregue la siguiente línea al final:
(Ref:https://discuss.elastic.co/t/logstash- se rompe-al-desactivar-ciertas-características-x-pack/89511)

xpack.monitoring.enabled: false

Búsqueda elástica

Instalación:
apt-get install elasticsearch

Iniciar/detener/reiniciar búsqueda elástica:
/etc/init.d/elasticsearch {start|stop|restart}

Para comprobar si se ha iniciado elasticsearch:
ps aux | grep $(cat /var/run/elasticsearch/elasticsearch.pid)

Ejemplo de resultado (truncado):
elastic+ 10978 3.2 55.2 4622152 2319168 pts/3 Sl 15:44 0:10 /usr/lib/jvm/java-8-oracle/bin/java ........

Luego verifique el archivo de registro de Elasticsearch:
tail -f /var/log/elasticsearch/elasticsearch.log

NOTA 1:
Si ve la línea:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] el máximo de áreas de memoria virtual vm.max_map_count [65530] es demasiado bajo, aumente al menos a [262144]
y el resultado del siguiente comando está vacío,

grep vm.max_map_count /etc/sysctl.conf

Solución:
Aumente las áreas máximas de memoria virtual vm.max_map_count a 262144 de la siguiente manera:
Agregue la siguiente línea en el archivo /etc/sysctl.conf

vm.max_map_count=262144

Y ejecute el comando:
sysctl -w vm.max_map_count=262144
O
echo 262144 > /proc/sys/vm/max_map_count

TAMBIÉN Asegúrese de que el archivo de configuración de elasticsearch (/etc/elasticsearch/jvm.options ) tiene las siguientes entradas:
-Xms2g
-Xmx2g

IMPORTANTE:
Si los siguientes comandos fallan, es posible que algunos servidores virtuales no permitan tales cambios en el kernel:
por ejemplo,
sysctl -w vm.max_map_count=262144
sysctl:permiso denegado en la clave 'vm.max_map_count'
echo 262144 > /proc/sys/vm/max_map_count
-bash:/proc/sys/vm/max_map_count:Permiso denegado

La búsqueda elástica debería poder ejecutarse de todos modos, pero podría tener un rendimiento limitado y podría tener otros problemas debido a estas limitaciones.
No hay remedios conocidos para esto para los servidores Strato VM.

NOTA 2:
Si ve la línea:
[WARN][i.n.u.i.MacAddressUtil] No se pudo encontrar una dirección de hardware utilizable desde las interfaces de red; usando bytes aleatorios:……..

Solución:
No se preocupe, la precisión de la dirección MAC no es tan importante en esta instalación.

NOTA 3:
Si ve la línea:
[WARN][o.e.b.BootstrapChecks] [wJdCtOd] los filtros de llamadas del sistema no se pudieron instalar; verifique los registros y corrija su configuración o deshabilite los filtros de llamadas del sistema bajo su propio riesgo
Si ocurre este problema, Elasticsearch se iniciará pero no se inicializará correctamente y lo más probable es que no funcione correctamente.

Solución:
Si se accede a elasticsearch solo en un entorno protegido, deshabilitar esta instalación de filtros de llamadas del sistema no debería ser un problema
editando el archivo /etc/elasticsearch/elasticsearch.yml y agregando la siguiente línea:
bootstrap.system_call_filter: false
Reiniciar elasticsearch:
service elasticsearch restart

—————————————————————————

Paquete X para búsqueda elástica

X-Pack es una extensión de Elastic Stack que reúne capacidades de seguridad, alertas, monitoreo, generación de informes, aprendizaje automático y gráficos en un paquete fácil de instalar.

Instalación:
/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

Resultados:
-> Downloading x-pack from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission \\.\pipe\* read,write
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin forks a native controller @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to the Java
security manager nor to system call filters.

Continue with installation? [y/N]y
-> Installed x-pack

KIBANA

Instale el paquete kibana
apt install kibana
Instalar X-Pack para logstash
X-Pack es una extensión de Elastic Stack que agrupa capacidades de seguridad, alertas, monitoreo, informes, aprendizaje automático y gráficos en un paquete fácil de instalar.
/usr/share/kibana/bin/kibana-plugin install x-pack
Cambiar la contraseña de los usuarios integrados
Ref:https://www.elastic.co/guide/en/x-pack/5.5/setting-up-authentication.html#reset-built-in- usuario-contraseñas
cambiar contraseñas

curl -XPUT 'localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "elasticpassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/kibana/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "kibanapassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/logstash_system/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "logstashpassword"
}
'

Actualice el servidor Kibana con la nueva contraseña /etc/kibana/kibana.yml
elasticsearch.password: kibanapassword
Actualice la configuración de Logstash con la nueva contraseña /etc/logstash/logstash.yml
xpack.monitoring.elasticsearch.password: logstashpassword
Deshabilitar la función de contraseña predeterminada /etc/elasticsearch/elasticsearch.yml
xpack.security.authc.accept_default_password: false

Iniciar/Detener/Reiniciar kibana
service kibana {start|stop|restart}


Ubuntu
  1. Instalación de la pila ELK en Ubuntu 14.04

  2. Cómo instalar Elasticsearch, Logstash y Kibana 4 en CentOS 7 / RHEL 7

  3. Cómo instalar Elasticsearch, Logstash y Kibana 4 en Ubuntu 14.04 / 15.04

  4. Cómo instalar y configurar Elasticsearch en Ubuntu 20.04

  5. ¿Construir e instalar Ibus-typing-booster en Ubuntu?

Configure ELK Stack en Ubuntu 16.04:instale ElasticSearch, Logstash y Kibana en Ubuntu 16.04

Cómo instalar Elasticsearch, Logstash y Kibana (ELK Stack) en Ubuntu 18.04/Ubuntu 16.04

Instalación de Ubuntu 18.04 LTS [Escritorio y servidor]

Cómo instalar ELK Stack (Elasticsearch, Logstash y Kibana) en Ubuntu 20.04

23 mejores cosas que hacer después de instalar Ubuntu 18.04 y 18.10

Cómo instalar Elasticsearch Logstash Kibana (Elastic Stack) en Ubuntu 18.04