Lo stack ELK è abbreviato in Elasticsearch, Logstash e Kibana stack, uno stack di analisi completo open source che aiuta ad analizzare qualsiasi dato della macchina. Viene utilizzato come alternativa ad altri software di analisi dei dati commerciali come Splunk.
Spero che tu non abbia bisogno di un'introduzione dello stack ELK se ne hai ancora bisogno; Ho scritto molti tutorial sulla configurazione dello stack ELK su sistemi operativi Linux.
Puoi seguire i tutorial di seguito per capire cos'è ELK,
- Come installare lo stack ELK su Ubuntu 16.04
- Come installare lo stack ELK su CentOS 7 / RHEL 7
In questo tutorial, vedremo come eseguire lo stack ELK sul container Docker invece di installarli sul sistema operativo host.
Possiamo eseguire lo stack ELK utilizzando Docker Native CLI o Docker Compose.
Prerequisiti:
Tutto ciò che devi avere è l'ultima Docker installata sul tuo sistema. Assicurati che la versione della finestra mobile sia 1.6 e successive, ma alcune immagini, ad es. elasticsearch è ufficialmente supportato solo su Docker versione 1.12.1
- Come installare Docker su Ubuntu 16.04 / 15.10 / 14.04
- Come configurare Docker su CentOS 7 / RHEL 7
- Come installare Docker su Fedora 24/23
Come installare Docker su openSUSE
Le immagini Docker che stiamo usando qui sono le immagini ufficiali di Elastic
Ricerca elastica:
Per iniziare, eseguiremo un contenitore Elastisearch. L'immagine Elasticsearch è configurata con un volume in /usr/share/elasticsearch/data per mantenere i dati dell'indice persistenti. Quindi usa quel percorso se desideri salvare i dati in un volume montato che è /esdata.
Crea un /esdata directory sull'host Docker.
mkdir /esdata
Esegui il comando seguente per creare il contenitore Elasticsearch Docker. Il percorso dell'host viene sempre prima nella riga di comando e in :, quindi il volume interno del contenitore.
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -v /esdata:/usr/share/elasticsearch/data elasticsearch
Usa il CURL per ottenere la risposta da Elasticsearch.
curl -X GET http://localhost:9200 { "name" : "Red Skull", "cluster_name" : "elasticsearch", "version" : { "number" : "2.3.5", "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4", "build_timestamp" : "2016-07-27T10:36:52Z", "build_snapshot" : false, "lucene_version" : "5.5.0" }, "tagline" : "You Know, for Search" }
Archivio:
Una volta che Elasticsearch è attivo e funzionante, ora siamo pronti per eseguire il contenitore Logstash. Prima di avviare il contenitore Logstash, crea un file di configurazione per ricevere i log dai beat.
Crea la directory e il file di configurazione sull'host Docker.
mkdir /logstash vi /logstash/logstash.conf
Sotto il file di configurazione è ricevere i registri con il tipo di registro "syslog ” sulla porta “5044 "e inviali a Elasticsearch per l'indicizzazione.
input { beats { port => 5044 } } filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Nel file di configurazione sopra, se vedi la sezione di output; host elasticsearch è definito come elasticsearch:9200 . Potresti pensare che come Logstash risolverà quell'host per inviare i log, non preoccuparti; Collegamento Docker (–link ) se ne occuperà.
cd /logstash/
Crea un contenitore Logstash eseguendo il comando seguente.
Dove,
–link elasticsearch-container-name:hostname-in-config-file
docker run -d --name logstash -p 5044:5044 --link elasticsearch:elasticsearch -v "$PWD":/logstash logstash -f /logstash/logstash.conf
Kibana:
Il contenitore Kibana non richiede alcuna configurazione, tutto ciò che devi fare è semplicemente collegare il contenitore Kibana Docker con il contenitore Elasticsearch.
docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana
Verifica:
Utente docker ps comando per verificare se tutti i contenitori sono in esecuzione o meno.
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 824dc7ee3c9f kibana "/docker-entrypoint.s" About an hour ago Up About an hour 0.0.0.0:5601->5601/tcp kibana 4fa8a72c96a2 logstash "/docker-entrypoint.s" About an hour ago Up About an hour 0.0.0.0:5044->5044/tcp logstash 4ea93b1d838b elasticsearch "/docker-entrypoint.s" About an hour ago Up About an hour 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch
Installazione e configurazione di Beats:
I battiti sono quelli che raccolgono e inviano i log a Logstash. L'installazione e la configurazione dei beat non rientrano nell'ambito di applicazione.
- Come installare e configurare Filebeat su Ubuntu / Debian
- Come installare e configurare Filebeat su CentOS 7 / RHEL 7
Accedi all'interfaccia di Kibana:
Se tutti i contenitori funzionano come previsto, visita il seguente URL per accedere all'interfaccia web.
http://il-tuo-indirizzo-ip:5601/Imposta un indice dei battiti per iniziare la ricerca dei dati utilizzando Kibana.
Fare clic su Scopri per iniziare a cercare gli ultimi registri dal filebeat.
Questo è tutto, per ora.