Monitorování a analýza protokolů pro různé infrastruktury v reálném čase může být velmi zdlouhavá práce. Při práci se službami, jako jsou webové servery, které neustále zaznamenávají data, může být proces velmi složitý a téměř nemožný.
Znalost používání nástrojů ke sledování, vizualizaci a analýze protokolů v reálném čase vám může pomoci při sledování a odstraňování problémů a při sledování podezřelých systémových aktivit.
Tento výukový program bude diskutovat o tom, jak můžete použít jednu z nejlepších sbírek protokolů a analytických nástrojů v reálném čase - ELK. Pomocí ELK, běžně známých jako Elasticsearch, Logstash a Kibana, můžete shromažďovat, protokolovat a analyzovat data z webového serveru Apache v reálném čase.
Co je ELK Stack?
ELK je zkratka používaná k označení tří hlavních nástrojů open-source: Elasticsearch, Logstash a Kibana.
Elasticsearch je open-source nástroj vyvinutý k hledání shod ve velké kolekci datových sad pomocí výběru dotazovacích jazyků a typů. Jedná se o lehký a rychlý nástroj schopný snadno manipulovat s terabajty dat.
Logstash engine je spojení mezi serverem a Elasticsearch, což vám umožňuje shromažďovat data z výběru zdrojů do Elasticsearch. Nabízí výkonná rozhraní API, která lze snadno integrovat do aplikací vyvinutých v různých programovacích jazycích.
Kibana je poslední kousek ELK stacku. Jedná se o nástroj pro vizualizaci dat, který umožňuje vizuálně analyzovat data a generovat podrobné zprávy. Nabízí také grafy a animace, které vám mohou pomoci při interakci s vašimi daty.
Zásobník ELK je velmi výkonný a dokáže dělat neuvěřitelné věci v oblasti analýzy dat.
Ačkoli různé koncepty, o kterých pojednáme v tomto kurzu, vám poskytnou dobré znalosti o zásobníku ELK, zvažte další informace v dokumentaci.
Elasticsearch: https: // linkfy.do / Elasticsearch-Reference
Logstash: https: // linkfy.do / LogstashReference
Kibana: https: // linkfy.do / KibanaGuide
Jak nainstalovat Apache?
Než začneme instalovat Apache a všechny závislosti, je dobré si všimnout několika věcí.
Tento výukový program jsme otestovali na Debianu 10.6, ale bude fungovat také s jinými distribucemi Linuxu.
V závislosti na konfiguraci vašeho systému potřebujete oprávnění sudo nebo root.
Kompatibilita a použitelnost zásobníku ELK se může lišit v závislosti na verzi.
Prvním krokem je zajistit, aby byl váš systém plně aktualizován:
sudo apt-get aktualizacesudo apt-get upgrade
Dalším příkazem je instalace webového serveru apache2. Pokud chcete nainstalovat minimální apache, odeberte dokumentaci a nástroje z níže uvedeného příkazu.
sudo apt-get install apache2 apache2-utils apache2-doc -ysudo služba apache2 start
Nyní byste již měli mít ve svém systému spuštěný server Apache.
Jak nainstalovat Elasticsearch, Logstash a Kibana?
Nyní musíme nainstalovat ELK stack. Budeme instalovat každý nástroj samostatně.
Elasticsearch
Začněme instalací Elasticsearch. K jeho instalaci použijeme apt, ale stabilní verzi můžete získat z oficiální stránky ke stažení zde:
https: // www.elastický.co / soubory ke stažení / elasticsearch
Elasticsearch vyžaduje ke spuštění Javu. Naštěstí je nejnovější verze dodávána s balíčkem OpenJDK, což odstraňuje potíže s ruční instalací. Pokud potřebujete provést ruční instalaci, podívejte se na následující zdroj:
https: // www.elastický.co / guide / en / elasticsearch / reference / current / setup.html # verze jvm
V dalším kroku si pomocí příkazu musíme stáhnout a nainstalovat oficiální podpisový klíč Elastic APT:
wget -qO - https: // artefakty.elastický.co / GPG-KEY-elasticsearch | sudo apt-key přidat -
Než budete pokračovat, můžete před instalací vyžadovat balíček apt-transport-https (vyžadovaný pro balíčky poskytované přes https).
sudo apt-get install apt-transport-httpsNyní přidejte informace apt repo ke zdrojům.seznam.soubor d.
echo “deb https: // artefakty.elastický.co / balíčky / 7.x / apt stabilní hlavní “| sudo tee / etc / apt / sources.seznam.d / elastický-7.X.seznam
Poté aktualizujte seznam balíčků ve vašem systému.
sudo apt-get aktualizaceNainstalujte Elasticsearch pomocí níže uvedeného příkazu:
sudo apt-get install elasticsearchPo instalaci Elasticsearch spusťte a povolte spuštění při spuštění pomocí příkazů systemctl:
sudo systemctl daemon-reloadsudo systemctl povolit elasticsearch.servis
sudo systemctl spustit elasticsearch
Spuštění služby může chvíli trvat. Počkejte několik minut a pomocí příkazu potvrďte, že je služba v provozu:
sudo systemctl status elasticsearch.servisPomocí cURL otestujte, zda je k dispozici rozhraní Elasticsearch API, jak je uvedeno ve výstupu JSON níže:
curl -X ZÍSKAT "localhost: 9200 /?dosti""name": "debian",
"cluster_name": "elasticsearch",
"cluster_uuid": "VZHcuTUqSsKO1ryHqMDWsg",
"verze":
"number": "7.10.1 ",
"build_flavor": "výchozí",
"build_type": "deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": false,
"lucene_version": "8.7.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-beta1 "
,
„Tagline“: „Víte, pro vyhledávání“
Jak nainstalovat Logstash?
Nainstalujte balíček logstash pomocí příkazu:
sudo apt-get install logstashJak nainstalovat Kibanu?
Chcete-li nainstalovat kibanu, zadejte následující příkaz:
sudo apt-get install kibanaJak konfigurovat Elasticsearch, Logstash a Kibana?
Zde je postup, jak nakonfigurovat zásobník ELK:
Jak konfigurovat Elasticsearch?
V Elasticsearch jsou data uspořádána do indexů. Každý z těchto indexů má jeden nebo více horizontálních oddílů. Shard je samostatný vyhledávací stroj používaný ke zpracování a správě indexů a dotazů pro podmnožinu v klastru v rámci Elasticsearch. Střípek funguje jako instance indexu Lucene.
Výchozí instalace Elasticsearch vytvoří pět střepů a jednu repliku pro každý index. Toto je dobrý mechanismus při výrobě. V tomto kurzu však budeme pracovat s jedním horizontálním oddílem a bez replik.
Začněte vytvořením šablony indexu ve formátu JSON. V souboru nastavíme počet shardů na jednu a nula replik pro shodu názvů indexů (vývojové účely).
V Elasticsearch odkazuje šablona indexu na to, jak dáváte Elasticsearch pokyn k nastavení indexu během procesu vytváření.
Uvnitř souboru šablony JSON (index_template.json), zadejte následující pokyny:
"šablona":"*",
"settings":
"index":
"number_of_shards": 1,
"number_of_replicas": 0
Pomocí cURL použijte konfiguraci json na šablonu, která se použije na všechny vytvořené indexy.
curl -X PUT http: // localhost: 9200 / _template / defaults -H 'Content-Type: application / json' -d @index_template.JSON"potvrzeno": true
Po aplikaci Elasticsearch odpoví potvrzeným: pravdivým prohlášením.
Jak konfigurovat Logstash?
Aby Logstash shromažďoval protokoly z Apache, musíme jej nakonfigurovat tak, aby sledoval všechny změny v protokolech shromažďováním, zpracováním a ukládáním protokolů do Elasticsearch. K tomu je třeba nastavit cestu protokolu shromažďování v Logstash.
Začněte vytvořením konfigurace Logstash v souboru / etc / logstash / conf.d / apache.konf
vstupsoubor
path => '/ var / www / * / logs / access.log '
type => "apache"
filtr
grok
match => "message" => "% COMBINEDAPACHELOG"
výstup
elasticsearch
Nyní zajistěte povolení a spuštění služby logstash.
sudo systemctl povolit logstash.servissudo systemctl spustit logstash.servis
Jak povolit a nakonfigurovat Kibanu?
Chcete-li povolit Kibanu, upravte hlavní .yml konfigurační soubor umístěný v / etc / kibana / kibana.yml. Vyhledejte následující položky a odkomentujte je. Po dokončení použijte systemctl ke spuštění služby Kibana.
serveru.port: 5601serveru.hostitel: „localhost“
sudo systemctl povolit kibanu.service && sudo systemctl start kibana.servis
Kibana vytváří indexové vzory na základě zpracovaných dat. Proto musíte sbírat protokoly pomocí Logstash a ukládat je do Elasticsearch, který může Kibana používat. Použijte curl ke generování protokolů z Apache.
Jakmile budete mít protokoly z Apache, spusťte Kibanu ve svém prohlížeči pomocí adresy http: // localhost: 5601, která spustí indexovou stránku Kibana.
V hlavní části musíte nakonfigurovat vzor indexu používaný Kibanou k hledání protokolů a generování zpráv. Ve výchozím nastavení používá Kibana vzor indexu logstash *, který odpovídá všem výchozím indexům generovaným programem Logstash.
Pokud nemáte žádnou konfiguraci, kliknutím na vytvořit spusťte prohlížení protokolů.
Jak zobrazit protokoly Kibana?
Jak budete pokračovat v provádění požadavků Apache, Logstash shromáždí protokoly a přidá je do Elasticsearch. Tyto protokoly můžete zobrazit v Kibaně kliknutím na možnost Objevit v levé nabídce.
Karta Objevit vám umožňuje zobrazit protokoly tak, jak je generuje server. Chcete-li zobrazit podrobnosti protokolu, jednoduše klikněte na rozevírací nabídku.
Přečtěte si a pochopte data z protokolů Apache.
Jak vyhledávat protokoly?
V rozhraní Kibana najdete vyhledávací lištu, která vám umožní vyhledávat data pomocí řetězců dotazu.
Příklad: stav: aktivní
Další informace o řetězcích dotazů ELK najdete zde:
https: // www.elastický.co / guide / en / elasticsearch / reference / 5.5 / query-dsl-query-string-query.html # syntaxe řetězce dotazu
Jelikož máme co do činění s protokoly Apache, jednou možnou shodou je stavový kód. Proto hledejte:
odpověď: 200Tento kód vyhledá protokoly se stavovým kódem 200 (OK) a zobrazí je Kibaně.
Jak vizualizovat protokoly?
Vizuální řídicí panely můžete v Kibaně vytvořit výběrem karty Vizualizovat. Vyberte typ řídicího panelu, který chcete vytvořit, a vyberte svůj index vyhledávání. Výchozí nastavení můžete použít pro účely testování.
Závěr
V této příručce jsme probrali přehled toho, jak používat zásobník ELK ke správě protokolů. V těchto technologiích se však tento článek může zabývat ještě více. Doporučujeme prozkoumat na vlastní pěst.