GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installazione di Filebeat, Logstash, ElasticSearch e Kibana in Ubuntu 14.04

PREPARATIVI

#Ref:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
Prima installazione di Java 8 in Ubuntu 14.04

# Rif: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

Risultato:
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)

Facilita l'aggiornamento di tutti i pacchetti tramite i repository APT

apt-get install apt-transport-https
Salva la definizione del repository in /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

FILEBEAT

Installazione di filebeat

Filebeat legge le righe dai log definiti, le formatta correttamente e le inoltra a logstash mantenendo un flusso di pipeline senza intasamento
Rif:https://github.com/elastic/beats/tree/master/filebeat
Rif:https://www.elastic.co/guide/en/beats/filebeat/5.5/filebeat-getting-started.html
Rif: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

(contenuto)
————————

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

————————
service filebeat restart

LOGSTASH

Scarica il pacchetto di installazione debian logstash e configuralo

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

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

Preparazione di Logstash

mcedit /etc/logstash/startup.options
(aggiungi la riga seguente all'inizio)
LS_CONFIGS_DIR=/etc/logstash/conf.d/

(Quindi regola la seguente riga come segue)
from:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
a:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIGS_DIR}"

Avvia/Interrompi/Riavvia logstash
service logstash {start|stop|restart}

Test del logstash

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

Digita:ciao mondo
e premi CTRL-D

(Logstash aggiunge al messaggio informazioni su timestamp e indirizzo IP. Esci da Logstash eseguendo un comando CTRL-D nella shell in cui è in esecuzione Logstash.)

Risultati:

ERRORE StatusLogger Nessun file di configurazione log4j2 trovato. Utilizzando la configurazione predefinita:registrazione solo degli errori sulla console.
AVVERTENZA:impossibile trovare logstash.yml che si trova in genere in $LS_HOME/config o /etc/logstash. È possibile specificare il percorso utilizzando –path.settings. Continuando a utilizzare le impostazioni predefinite
Impossibile trovare la configurazione di log4j2 nel percorso //usr/share/logstash/config/log4j2.properties. Utilizzo della configurazione predefinita che registra sulla console
11:22:59.822 [[main]-pipeline-manager] INFO logstash.pipeline – Avvio della pipeline {“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 principale avviata
Il plugin stdin è ora in attesa di input:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
11:22:59.946 [Api Webserver] INFO logstash.agent – ​​Avviato correttamente Endpoint API Logstash {:port=>9601}
11:23:02.861 [LogStash::Runner] WARN logstash.agent – ​​arresto pipeline {:id=>” principale”}

Gli errori e gli avvisi sono OK per ora. La riga principale del risultato sopra che è significativa è:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
che aggiunge un timestamp e il nome del server alla stringa di input (test 1)

Configurazione di logstash
# Nota:questa configurazione di test riceverà input da filebeat e output in un file di registro che può essere guardato con tail -f …..
mcedit /etc/logstash/conf.d/apache2.conf
(content)
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"
}
}

Per inviare l'output corretto a elasticsearch, utilizzare invece questa configurazione di output:
———————————--
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

Protezione di Filebeat => Logstash con SSL

Rif:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash
Nota:la digitazione manuale di seguito è mostrata in grassetto.

Prepara le directory degli ertificates:

mkdir -p /etc/logstash/certs/Logstash/ /etc/logstash/certs/Beats/
Crea certificati client per 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

Crea certificati client per 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

Questo file deve essere protetto correttamente in quanto contiene le chiavi private per tutte le
istanze e l'autorità di certificazione.

Dopo aver decompresso il file, ci sarà una directory per ogni istanza contenente
il certificato e la chiave privata. Copia il certificato, la chiave e il certificato CA
nella directory di configurazione del prodotto Elastic per cui verranno utilizzati
e segui le istruzioni di configurazione SSL nella guida del prodotto.

Per le applicazioni client, potrebbe essere necessario solo copiare il certificato CA e
configurare il client in modo che consideri attendibile questo certificato.

Estrarre certificati:
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/

Convertire la chiave Logstash Logstash.key dal formato PKCS#1 al formato PKCS#8:
Motivo:si è verificato il seguente messaggio di errore in logstash.log durante l'utilizzo del formato PKCS1:
[ERRORE][logstash.inputs.beats ] Sembra che tu abbia una chiave non valida o la tua chiave privata non lo fosse in formato PKCS8. {:exception=>java.lang.IllegalArgumentException:il file non contiene una chiave privata valida:/etc/logstash/certs/Logstash/Logstash/Logstash.key}

Vedi: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

Configura Beats per SSL

Contenuto di /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"

Contenuto di /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"
}
}

Riavvia sia Logstash che Filebeat
service logstash restart
service filebeat restart

NOTA: Ho ancora problemi con la connessione SSL di Filebeat a Logstash in cui Filebeat genera questo errore in (/var/log/logstash/logstash-plain.log):
Errore interno TLS.
Il seguente URL sembra aver riscontrato problemi simili ma per mancanza di tempo non l'ho ancora capito.
https://discuss.elastic.co/t/mutual-tls-filebeat-to-logstash-fails- con-errore-remoto-tls-errore-interno/85271/3

X-Pack per Logstash

INSTALLA X-Pack per logstash

X-Pack è un'estensione Elastic Stack che raggruppa funzionalità di sicurezza, avvisi, monitoraggio, reporting, apprendimento automatico e grafici in un unico pacchetto facile da installare.
X-Pack fornisce anche un'interfaccia utente di monitoraggio per Logstash.

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

Risultato:

Download del file:https://artifacts.elastic.co/downloads/logstash-plugins/x-pack/x-pack-5.5.2.zip
Download di [================================================================================================] 100%
File di installazione:/tmp/studtmp-bc1c884de6d90f1aaa462364e5895b6b08b050f0b64587b4f5e0a8ec5300/x-pack-5.5.2.zip
Installazione riuscita

Configurazione dell'X-Pack in Logstash:

Le impostazioni predefinite create durante l'installazione funzionano meglio nella maggior parte dei casi. Per ulteriori informazioni, vedere:
https://www.elastic.co/guide/en/logstash/5.5/settings-xpack.html

Per impedire la generazione di messaggi di errore di monitoraggio in logstash.log, modifica /etc/logstash/logstash.yml e aggiungi la seguente riga alla fine:
(Rif:https://discuss.elastic.co/t/logstash- si rompe-quando-disabilitando-certe-caratteristiche-x-pack/89511)

xpack.monitoring.enabled: false

Ricerca elastica

Installazione:
apt-get install elasticsearch

Avvia/Interrompi/Riavvia Ricerca elastica:
/etc/init.d/elasticsearch {start|stop|restart}

Per verificare se elasticsearch è stato avviato:
ps aux | grep $(cat /var/run/elasticsearch/elasticsearch.pid)

Esempio di risultato(troncato):
elastic+ 10978 3.2 55.2 4622152 2319168 pts/3 Sl 15:44 0:10 /usr/lib/jvm/java-8-oracle/bin/java ........

Il controllo del file di registro di Elasticsearch:
tail -f /var/log/elasticsearch/elasticsearch.log

NOTA 1:
Se vedi la riga:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] max virtual memory area vm.max_map_count [65530] è troppo basso, aumenta almeno fino a [262144]
e il risultato del comando seguente è vuoto,

grep vm.max_map_count /etc/sysctl.conf

Soluzione:
Aumenta il numero massimo di aree di memoria virtuale vm.max_map_count a 262144 come segue:
Aggiungi la seguente riga nel file /etc/sysctl.conf

vm.max_map_count=262144

Ed esegui il comando:
sysctl -w vm.max_map_count=262144
OPPURE
echo 262144 > /proc/sys/vm/max_map_count

INOLTRE Assicurati che il file di configurazione di elasticsearch (/etc/elasticsearch/jvm.options ) contiene le seguenti voci:
-Xms2g
-Xmx2g

IMPORTANTE:
se i seguenti comandi non funzionano è possibile che alcuni server virtuali non consentano tali modifiche nel kernel:
es.
sysctl -w vm.max_map_count=262144
sysctl:autorizzazione negata sulla chiave 'vm.max_map_count'
echo 262144 > /proc/sys/vm/max_map_count
-bash:/proc/sys/vm/max_map_count:autorizzazione negata

La ricerca elastica dovrebbe essere comunque in grado di essere eseguita, ma potrebbe essere limitata nelle prestazioni e potrebbe presentare altri problemi a causa di queste limitazioni.
Non sono noti rimedi a questo per i server Strato VM.

NOTA 2:
Se vedi la riga:
[WARN ][i.n.u.i.MacAddressUtil ] Impossibile trovare un indirizzo hardware utilizzabile dalle interfacce di rete; utilizzando byte casuali:……..

Soluzione:
Non c'è bisogno di preoccuparsi, l'accuratezza dell'indirizzo MAC non è così importante in questa installazione.

NOTA 3:
Se vedi la riga:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] installazione dei filtri delle chiamate di sistema non riuscita; controlla i log e correggi la tua configurazione o disabilita i filtri delle chiamate di sistema a tuo rischio
Se si verifica questo problema elasticsearch si avvierà ma non verrà inizializzato correttamente e molto probabilmente non funzionerà correttamente.

Soluzione:
Se si accede a elasticsearch solo in un ambiente protetto, disabilitare questa installazione dei filtri delle chiamate di sistema non dovrebbe essere un problema
modificando il file /etc/elasticsearch/elasticsearch.yml e aggiungendo la seguente riga:
bootstrap.system_call_filter: false
Riavvia elasticsearch:
service elasticsearch restart

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

X-Pack per elasticsearch

X-Pack è un'estensione Elastic Stack che raggruppa funzionalità di sicurezza, avvisi, monitoraggio, reporting, apprendimento automatico e grafici in un unico pacchetto facile da installare.

Installazione:
/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

Risultati:
-> 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

Installa il pacchetto kibana
apt install kibana
Installa X-Pack per logstash
X-Pack è un'estensione dello stack elastico che raggruppa funzionalità di sicurezza, avvisi, monitoraggio, reporting, apprendimento automatico e grafici in un unico pacchetto di facile installazione.
/usr/share/kibana/bin/kibana-plugin install x-pack
Cambia la password utente integrata
Rif:https://www.elastic.co/guide/en/x-pack/5.5/setting-up-authentication.html#reset-built-in- password-utente
modifica password

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"
}
'

Aggiorna il server Kibana con la nuova password /etc/kibana/kibana.yml
elasticsearch.password: kibanapassword
Aggiorna la configurazione di Logstash con la nuova password /etc/logstash/logstash.yml
xpack.monitoring.elasticsearch.password: logstashpassword
Disabilita la funzionalità password predefinita /etc/elasticsearch/elasticsearch.yml
xpack.security.authc.accept_default_password: false

Avvia/Interrompi/Riavvia kibana
service kibana {start|stop|restart}


Ubuntu
  1. Come installare Elasticsearch, Logstash e Kibana 4 su CentOS 7 / RHEL 7

  2. Come installare Elasticsearch, Logstash e Kibana 4 su Ubuntu 14.04 / 15.04

  3. Installazione e configurazione di Php e Nginx su Ubuntu 20.04

  4. Come installare e configurare Elasticsearch su Ubuntu 20.04

  5. Installa Elasticsearch, Logstash e Kibana su Ubuntu 20.04

Imposta ELK Stack su Ubuntu 16.04 – Installa ElasticSearch, Logstash e Kibana su Ubuntu 16.04

Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su Ubuntu 18.04 / Ubuntu 16.04

Installazione di Ubuntu 18.04 LTS [Desktop e server]

Come installare ELK Stack (Elasticsearch, Logstash e Kibana) su Ubuntu 20.04

23 migliori cose da fare dopo aver installato Ubuntu 18.04 e 18.10

Come installare Elasticsearch Logstash Kibana (stack elastico) su Ubuntu 18.04