GNU/Linux >> Znalost Linux >  >> Cent OS

Jak spustit zásobník ELK na kontejneru Docker

ELK stack je zkrácen jako Elasticsearch, Logstash a Kibana stack, open source plně vybavený analytický zásobník pomáhá analyzovat jakákoliv strojová data. Používá se jako alternativa k jinému komerčnímu softwaru pro analýzu dat, jako je Splunk.

Doufám, že nebudete vyžadovat zavedení zásobníku ELK, pokud jej stále potřebujete; Napsal jsem mnoho výukových programů o konfiguraci zásobníku ELK na operačních systémech Linux.

Můžete sledovat níže uvedené návody, abyste pochopili, co je ELK,

  1. Jak nainstalovat zásobník ELK na Ubuntu 16.04
  2. Jak nainstalovat ELK stack na CentOS 7 / RHEL 7

V tomto tutoriálu uvidíme, jak spustit zásobník ELK na kontejneru Docker namísto jejich instalace na hostitelský operační systém.

Zásobník ELK můžeme spustit buď pomocí Docker Native CLI, nebo Docker compose.

Předpoklady:

Vše, co potřebujete, je mít nainstalovaný nejnovější Docker ve vašem systému. Ujistěte se, že verze dockeru je 1.6 a novější, ale některé obrázky, např. elasticsearch je oficiálně podporován pouze na Dockeru verze 1.12.1

  1. Jak nainstalovat Docker na Ubuntu 16.04 / 15.10 / 14.04
  2. Jak nastavit Docker na CentOS 7 / RHEL 7
  3. Jak nainstalovat Docker na Fedoru 24 / 23
  4. Jak nainstalovat Docker na openSUSE

Obrázky Dockeru, které zde používáme, jsou oficiální obrázky z Elastic

Elastické vyhledávání:

Pro začátek spustíme kontejner Elastisearch. Obrázek Elasticsearch je nakonfigurován s objemem na /usr/share/elasticsearch/data pro zachování trvalých indexových dat. Tuto cestu tedy použijte, pokud chcete data uložit do připojeného svazku, což je /esdata.

Vytvořte /esdata adresář na hostiteli Docker.

mkdir /esdata

Spuštěním následujícího příkazu vytvořte kontejner Elasticsearch Docker. Cesta hostitele je vždy na prvním místě v příkazovém řádku a :, pak vnitřní objem kontejneru.

docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -v /esdata:/usr/share/elasticsearch/data elasticsearch

K získání odpovědi z Elasticsearch použijte CURL.

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" : 5 for Search":" 5 verze false"_5." 

Logstash:

Jakmile bude Elasticsearch spuštěn a spuštěn, budeme nyní připraveni spustit kontejner Logstash. Před spuštěním kontejneru Logstash vytvořte konfigurační soubor pro příjem protokolů z beatů.

Vytvořte adresář a konfigurační soubor na hostiteli Docker.

mkdir /logstashvi /logstash/logstash.conf

Níže uvedený konfigurační soubor obsahuje protokoly s typem protokolu „syslog “ na portu „5044 “a pošlete je do Elasticsearch k indexování.

input { beats { port => 5044 } }filtr {if [type] =="syslog" {    grok {      match => { "message" => "%{SYSLOGLINE}" }    }    datum {match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]}  }}výstup { elasticsearch {  hosts => ["elasticsearch:9200"]     index => "%{[@metadata ][beat]}-%{+YYYY.MM.dd}"       }stdout {    kodek => rubydebug       }}

Ve výše uvedeném konfiguračním souboru, pokud vidíte výstupní sekci; hostitel elasticsearch je definován jako elasticsearch:9200 . Možná si myslíte, že jak Logstash vyřeší tento hostitel, aby posílal protokoly, nebojte se; Propojení dockeru (–link ) se o to postará.

cd /logstash/

Vytvořte kontejner Logstash zadáním následujícího příkazu.

Kde,

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

Kontejner Kibana nevyžaduje žádnou konfiguraci, vše, co musíte udělat, je pouze propojit kontejner Kibana Docker s kontejnerem Elasticsearch.

docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana

Ověřit:

Uživatel docker ps příkaz ke kontrole, zda všechny kontejnery běží nebo ne.

Příkaz Docker Pscontainer ID Obrázek vytvořený stavové porty názvy 824dc7ee3c9f kibana "/docker-entrypoint.s" Asi před hodinou asi hodinu 0,0,0:5601 ->5601/tcp kibana4fa8a72c96a2 logstash "/docker-entrypoint.S o tom Před hodinou asi hodinu 0,0,0,0:5044->5044/tcp logstash4ea93b1d838b elasticsearch "/docker-entrypoint.s" asi před hodinou 0,0,0:9200->9200/tcp, 0,0.0.0,0,0,0:9300->9300/tcp   elasticsearch

Instalace a konfigurace Beats:

Beats jsou tím, kdo sbírá a posílá logy do Logstashe. Instalace a konfigurace beatů jsou mimo rozsah.

  1. Jak nainstalovat a nakonfigurovat Filebeat na Ubuntu / Debian
  2. Jak nainstalovat a nakonfigurovat Filebeat na CentOS 7 / RHEL 7
K odesílání protokolů nemusíte používat certifikát logstash, nevkládejte záznam cesty k certifikátu logstash do konfiguračního souboru filebeat.

Přístup k rozhraní Kibana:

Pokud jsou všechny kontejnery připraveny a běží podle očekávání, přejděte do webového rozhraní na následující adresu URL.

http://vaše-ip-adresa:5601/

Nastavte index rytmu pro zahájení vyhledávání dat pomocí Kibana.

Kliknutím na Discover zahájíte vyhledávání nejnovějších protokolů z filebeatu.

To je prozatím vše.


Cent OS
  1. Jak spustit příkaz na spuštěném kontejneru Docker

  2. Jak opustit kontejner Docker

  3. Jak nainstalovat ELK Stack na CentOS 7

  1. Jak poslat signál ke spuštění programu v kontejneru dockeru?

  2. Jak přidat uživatele do kontejneru Docker?

  3. Jak spustit úlohu cron uvnitř kontejneru dockeru

  1. Jak používat příkaz Docker Run s příklady

  2. Jak spustit program uvnitř kontejneru Docker?

  3. Jak spustit MySQL v kontejneru Docker