In questa guida imparerai a installare lo stack elastico su Ubuntu 18.04. Pila elastica , precedentemente noto come stack ELK è una raccolta o uno stack di software gratuito e opensource di Elastic Company progettato per la registrazione centralizzata.
Consente la ricerca, l'analisi e la visualizzazione di registri da diverse fonti in una miriade di formati. La registrazione centralizzata aiuta a identificare i problemi del server o dell'applicazione da un punto comune.
Componenti dello stack elastico
Elastic Stack comprende 4 componenti principali.
- Ricerca elastica :Questo è un motore di ricerca RESTful che archivia o conserva tutti i dati raccolti
- Archiviazione :questo è il componente che elabora i dati e li analizza per la ricerca elastica
- Kibana :Questa è un'interfaccia web che visualizza i log
- Batti :Si tratta di spedizionieri di dati leggeri che spediscono i registri da centinaia/migliaia di server al server centrale su cui è configurato ELK.
Vediamo ora come installare lo stack elastico su Ubuntu 18.04.
Prerequisiti
Prima di iniziare l'installazione assicurati di disporre della seguente infrastruttura.
- Server Ubuntu 18.04 LTS con accesso root e utente non root più firewall ufw. I seguenti dovrebbero essere i requisiti minimi del server.
- Ubuntu 18.04 LTS
- 4 GB di RAM
- 2 CPU
- Java 8 installato sul tuo sistema che sarà richiesto da Elasticsearch e Logstash.
- NGINX installato sul tuo server che verrà successivamente configurato per gestire Kibana. Lettura consigliata:installa Nginx su Ubuntu 18.04
Detto questo, tuffiamoci e iniziamo l'installazione dello stack elastico su Ubuntu.
1. Installa Elasticsearch su Ubuntu
Prima di tutto, importeremo la chiave GPG pubblica di Elasticsearch in APT. I pacchetti dello stack elastico sono generalmente firmati con la chiave di firma Elasticsearch per proteggere il sistema dallo spoofing dei pacchetti. Inoltre, i pacchetti autenticati sono considerati attendibili dal gestore dei pacchetti.
Per importare l'esecuzione della chiave GPG:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Quindi, aggiungi il repository elastico a sources.list.d
directory utilizzando il comando seguente.
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
L'output dei due comandi è il seguente:
Risultato
Ora aggiorna il repository del sistema usando il comando seguente.
sudo apt update
Risultato campione
Ora installa Elasticsearch utilizzando il comando seguente.
sudo apt install elasticsearch
Risultato
2. Configura Elasticsearch su Ubuntu
Elasticsearch è in ascolto sulla porta 9200. Tuttavia, limiteremo l'accesso esterno in modo che le parti esterne non possano accedere ai dati e chiuderemo il cluster elastico. Detto questo, apporteremo alcune modifiche al file di configurazione di Elasticsearch come mostrato di seguito
sudo nano /etc/elasticsearch/elasticsearch.yml
Trova il network.host
attribuiscilo e decommentalo e aggiungi localhost
come suo valore. Decommenta anche il http.port
attributo.
Risultato
network.host: localhost
http.port: 9200
Quindi, avvia e abilita il servizio Elasticsearch come mostrato.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Risultato
A questo punto, Elasticsearch dovrebbe essere attivo e funzionante. Puoi verificarlo eseguendo il comando seguente.
systemctl status elasticsearch
Risultato
Puoi anche usare netstat
comando come mostrato.
netstat -pnltu
Inoltre, puoi eseguire il curl
comando come mostrato.
curl -X GET "localhost:9200"
Risultato
Grande! Abbiamo finalizzato l'installazione e la configurazione di Elasticsearch. Successivamente, installeremo e configureremo Logstash.
3. Installazione e configurazione di Logstash
Il secondo componente dello stack elastico che installeremo è Logstash. Logstash sarà responsabile della raccolta e della centralizzazione dei registri da vari server utilizzando il data shipper di filebeat. Quindi filtrerà e trasmetterà i dati del syslog a Elasticsearch.
Innanzitutto, confermiamo che OpenSSL è in esecuzione. Per farlo, corri.
openssl version -a
Risultato
Per installare Logstash, esegui il comando seguente.
sudo apt install logstash -y
Risultato
Quindi, modifica il /etc/hosts
archiviare e aggiungere quanto segue.
18.224.44.11 elk-master
Dove 18.224.44.11 è l'indirizzo IP del server masterELk.
Genereremo quindi la chiave del certificato SSL per proteggere il trasferimento dei dati di registro dal client filebeat al server logstash.
Per fare ciò, prima crea una nuova directory SSL nella directory di configurazione di logstash '/etc/logstash' e naviga in quella directory.
mkdir -p /etc/logstash/ssl
cd /etc/logstash/
Ora puoi generare il certificato SSL come mostrato di seguito.
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
Successivamente, creeremo nuovi file di configurazione per logstash. Creeremo un file di configurazione 'filebeat-input.conf' come file di input da filebeat, 'syslog-filter.conf' per l'elaborazione syslog e infine un file 'output-elasticsearch.conf' per definire l'output di Elasticsearch.
Passa alla directory Logstash e crea un 'filebeat-input.conf' nella directory 'conf.d'.
cd /etc/logstash/
vim conf.d/filebeat-input.conf
Incolla la seguente configurazione.
input {
beats {
port => 5443
type => syslog
ssl => true
ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
}
}
Salva ed esci dall'editor di testo.
Per i dati del registro di elaborazione del syslog, utilizziamo il plug-in di filtro denominato "grok" per l'analisi dei file del syslog.
Crea una nuova configurazione 'syslog-filter.conf'.
vim conf.d/syslog-filter.conf
Incolla la configurazione qui sotto.
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" ]
}
}
}
Salva ed esci dall'editor di testo.
Infine, crea un file di configurazione chiamato "output-elasticsearch.conf" per l'output di elasticsearch.
vim conf.d/output-elasticsearch.conf
Incolla il seguente contenuto.
output {
elasticsearch { hosts => ["localhost:9200"]
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
Salva ed esci dall'editor di testo.
Al termine, abilita e avvia il servizio Logstash.
sudo systemctl enable logstash
sudo systemctl start logstash
Per verificare che Logstash sia in esecuzione, esegui il comando.
sudo systemctl status logstash
Risultato campione
Puoi anche usare netstat
comando come mostrato.
netstat -pnltu
4. Installa e configura Kibana su Ubuntu
Successivamente, installeremo Kibana usando il comando seguente.
sudo apt install kibana -y
Risultato
Successivamente, apporteremo alcune modifiche al file di configurazione di kibana.
vim /etc/kibana/kibana.yml
Individua e decommenta i seguenti attributi.
server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"
Salva ed esci dall'editor di testo.
Quindi abilita e avvia il servizio Kibana:
sudo systemctl enable kibana
sudo systemctl start kibana
Risultato
Puoi confermare che kibana è in esecuzione sulla porta predefinita 5601 usando il netstat
comando come mostrato.
netstat -pnltu
Risultato
5. Installazione e configurazione di NGINX come proxy inverso per Kibana
Stiamo usando NGINX come proxy inverso per i dashboard di kibana. Devi installare Nginx e "Apache2-utils" come mostrato di seguito.
sudo apt install nginx apache2-utils -y
Risultato
Quindi, crea un nuovo file host virtuale chiamato kibana.
vim /etc/nginx/vim sites-available/kibana
Incolla il seguente contenuto nel file host virtuale
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;
}
}
Salva ed esci dall'editor di testo. Lettura consigliata:direttiva sulla posizione NGINX.
Quindi, crea un'autenticazione di base per la dashboard di kibana usando htpasswd
comando come mostrato.
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password
Risultato
Nell'esempio sopra, il nome utente è elastico e la password sarà quella che fornisci.
Quindi, attiva la configurazione dell'host virtuale Kibana e verifica la configurazione di Nginx.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
Risultato
Senza errori, abilita e riavvia il server Nginx.
systemctl enable nginx
systemctl restart nginx
6. Installazione e configurazione di Filebeat
In questo passaggio, configureremo lo spedizioniere di dati filebeat sul nostro server elk-master. Questo trasmetterà tutti i messaggi di syslog a logstash che verrà elaborato e visualizzato da kibana.
Per installare filebeat esegui:
sudo apt install filebeat
Quindi, apri il file di configurazione di filebeat.
sudo vim /etc/filebeat/filebeat.yml
Utilizzeremo Logstash per eseguire ulteriori elaborazioni sui dati raccolti da Filebeat. Filebeat non sarà necessario per inviare dati direttamente a Elasticsearch. Pertanto, individua e commenta la sezione elasticsearch come mostrato.
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
Quindi, vai alla sezione Logstash e decommenta come mostrato.
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
Abilita i prospettori filebeat modificando il valore della riga "abilitato" in "vero".
enabled: true
Specificare i file di registro di sistema da inviare al server logstash. In questo esempio, aggiungeremo il file di registro ssh "auth.log" e il file syslog.
paths:
- /var/log/auth.log
- /var/log/syslog
Salva ed esci.
Infine, copia il file del certificato logstash – logstash-forwarder.crt – in /etc/filebeat
directory.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt
Ora avvia e abilita filebeat.
systemctl start filebeat
systemctl enable filebeat
Per controllare lo stato di esecuzione di filebeat:
systemctl status filebeat
Risultato
7. Test dello stack Elasticsearch
Per testare il nostro stack elastico, apri il browser ed esplora l'IP del tuo server seguito dalla porta 5601 che è la porta ascoltata da kibana.
ip-address:5601
Inserisci nome utente e password e successivamente verrà visualizzata la seguente schermata.
Fare clic sulla scheda "scopri" e fare clic su "Filebeat". Apparirà la seguente interfaccia che ti offre lo streaming live dei dati visualizzati.
Congratulazioni! Hai installato e configurato correttamente The Elastic Stack e Elastic Beat "Filebeat" sul tuo sistema Ubuntu 18.04.