GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come eseguire lo stack ELK su Docker Container

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,

  1. Come installare lo stack ELK su Ubuntu 16.04
  2. 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

  1. Come installare Docker su Ubuntu 16.04 / 15.10 / 14.04
  2. Come configurare Docker su CentOS 7 / RHEL 7
  3. Come installare Docker su Fedora 24/23
  4. 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.

  1. Come installare e configurare Filebeat su Ubuntu / Debian
  2. Come installare e configurare Filebeat su CentOS 7 / RHEL 7
Non è necessario utilizzare il certificato logstash per inviare i log, non inserire una voce del percorso del certificato logstash nel file di configurazione di filebeat.

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.


Cent OS
  1. Come eseguire un programma all'interno di un contenitore Docker?

  2. Come eseguire un comando su un contenitore Docker in esecuzione

  3. Come uscire da un container Docker

  4. Come installare lo stack ELK su CentOS 7

  5. Come eseguire un cron job all'interno di un contenitore docker

Come installare ELK Stack su CentOS 7

Come installare ELK Stack su CentOS 8

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come eseguire i contenitori Docker

Come installare ELK Stack su Debian 8