ELK stack je také známý jako Elastic stack, skládá se ze čtyř open source projektů:Elasticsearch, Logstash, Kibana a Beats. Pomáhá vám mít všechny vaše protokoly uložené na jednom místě a poskytuje možnost analyzovat a vizualizovat data nebo problémy korelací událostí v konkrétním čase.
Tato příručka vám pomůže nainstalovat ELK stack na RHEL 8.
Komponenty
Elasticsearch – open source, fulltextový vyhledávač. Ukládá příchozí protokoly z Logstashe a nabízí možnost prohledávat protokoly/data v reálném čase
Logstash – Zpracovává (shromažďuje, obohacuje a transformuje) data příchozích protokolů odesílaných beats (forwarder) a odesílá je do Elasticsearch
Kibana – Poskytuje vizualizaci dat nebo protokolů z Elasticsearch.
Beats – Instaluje se na klientské počítače a shromažďuje a odesílá protokoly do Logstashe prostřednictvím protokolu beats.
Životní prostředí
Abychom měli plnohodnotný zásobník ELK, potřebovali bychom dva stroje na testování sběru protokolů.
Název hostitele | OS | IP adresa | Účel |
---|---|---|---|
elk.itzgeek.local | RHEL 8 | 192.168.1.10 | Zásobník ELK |
client.itzgeek.local | CentOS 7 | 192.168.1.20 | Klientský stroj (Filebeat) |
Předpoklady
Nainstalujte Javu
Vzhledem k tomu, že Elasticsearch je založen na Javě, potřebujeme mít na vašem počítači nainstalované OpenJDK nebo Oracle JDK.
ČTĚTE: Jak nainstalovat Javu na RHEL 8
Zde používám OpenJDK 1.8.
yum -y install java
Ověřte verzi Java.
verze Java
Výstup:
openjdk verze "1.8.0_212" OpenJDK Runtime Environment (sestavení 1.8.0_212-b04)OpenJDK 64-Bit Server VM (sestavení 25.212-b04, smíšený režim)
Konfigurace úložiště ELK
Importujte pružný podpisový klíč.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Nastavte úložiště Elasticsearch na serveru ELK i na klientovi.
cat </etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=Elasticsearch úložiště pro 7.x packagesbaseurl=https://artifacts.elastic.co/packages/oss -7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-mdEOF
Instalovat a konfigurovat Elasticsearch
Elasticsearch je open source, fulltextový vyhledávač nabízí distribuované vyhledávání a analýzy v reálném čase s webovým rozhraním RESTful. Elasticsearch ukládá všechna data odeslaná Logstash a zobrazuje je prostřednictvím webového rozhraní (Kibana) na žádost uživatelů.
Nainstalujte Elasticsearch.
yum install -y elasticsearch-oss
Upravte konfigurační soubor Elasticsearch na
vi /etc/elasticsearch/elasticsearch.yml
Nastavte název clusteru, název uzlu, naslouchající IP adresu podle vašeho prostředí.
cluster.name:elkstack node.name:elk.itzgeek.local network.host:192.168.1.10
Pokud nastavíte naslouchající IP adresu, musíte definovat počáteční hostitele a počáteční hlavní uzly.
discovery.seed_hosts:["elk.itzgeek.local "]cluster.initial_master_nodes:["elk.itzgeek.local "]
Nakonfigurujte Elasticsearch tak, aby se spouštěl během spouštění systému.
systemctl daemon-reloadsystemctl povolit elasticsearchsystemctl spustit elasticsearch
Pomocí CURL zkontrolujte, zda Elasticsearch odpovídá na dotazy.
curl -X GET http://192.168.1.10:9200
Výstup:
{ "name" :"elk.itzgeek.local", "cluster_name" :"elkstack", "cluster_uuid" :"yws_6oYKS965bZ7GTh0e6g", "version" :{ "number" :"7.2.0", "build_flavor" :"oss", "build_type" :"rpm", "build_hash" :"508c38a", "build_date" :"2019-06-20T15:54:18.811730Z", "build_snapshot" :false, "lucene_version" ":8. .0", "minimum_wire_compatibility_version" :"6.8.0", "minimum_index_compatibility_version" :"6.0.0-beta1" }, "tagline" :"Víte, pro vyhledávání"}
Zkontrolujte stav clusteru spuštěním níže uvedeného příkazu.
curl -XGET '192.168.1.10:9200/_cluster/health?pretty'
Výstup:Stav clusteru by měl být zelený.
{ "cluster_name" :"elkstack", "status" :"zelená ", "timed_out" :false, "number_of_nodes" :1, "number_of_data_nodes" :1, "active_primary_shards" :0, "active_shards" :0, "relocating_shards" :0, "initializing_shards" :0, "initializing_shards" :0, "delayed_unassigned_shards" :0, "number_of_pending_tasks" :0, "number_of_flight_fetch" :0, "task_max_waiting_in_queue_millis" :0, "active_shards_percent_as_number" :100Instalace a konfigurace Logstash
Logstash je open source nástroj pro správu protokolů. Sbírá protokoly, analyzuje je a ukládá je na Elasticsearch. Pro Logstash je k dispozici více než 160 pluginů, které nabízejí možnost zpracování různých typů událostí bez práce navíc.
Nainstalujte balíček Logstash.
yum -y install logstash-ossKonfigurace Logstash lze nalézt v
/etc/logstash/conf.d/
.Konfigurační soubor Logstash se skládá ze tří částí, jmenovitě vstup, filtr a výstup. Všechny tři části lze nalézt v jediném souboru nebo samostatné soubory končící příponou .conf.
Doporučuji vám použít jeden soubor pro umístění vstupní, filtrační a výstupní sekce.
vi /etc/logstash/conf.d/beats.confVe vstupní sekci nakonfigurujeme Logstash tak, aby na portu 5044 naslouchal příchozím protokolům z beatů (forwarder), který je nainstalován na klientských počítačích.
vstup { beats { port => 5044 }}V sekci filtrů použijeme Grok k analýze protokolů před jejich odesláním do Elasticsearch.
Následující filtr grok bude hledat syslog označené protokoly a pokusí se je analyzovat, aby vytvořil strukturovaný index. Tento filtr je docela užitečný právě pro sledování zpráv syslog (/var/log/messages).
filtr { if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } datum { match => [ "timestamp", "MMM d HH:mm :ss", "MMM dd HH:mm:ss" ] } }}Další vzory filtrů najdete na stránce grokdebugger.
Ve výstupní sekci definujeme umístění, kam se mají protokoly ukládat, samozřejmě uzel Elasticsearch.
output { elasticsearch { hosts => ["192.168.1.10:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }}Nyní spusťte a povolte službu Logstash.
systemctl spustit logstashsystemctl povolit logstashPočkejte minutu, aby se Logstash spustil, a poté spusťte níže uvedený příkaz a zkontrolujte, zda naslouchá na portu 5044.
netstat -antup | grep -i 5044Výstup:
tcp6 0 0 :::5044 :::* LISTEN 31014/javaProblémy s Logstash můžete řešit pomocí protokolů.
cat /var/log/logstash/logstash-plain.logInstalovat a konfigurovat Kibana
Kibana poskytuje vizualizaci protokolů uložených na Elasticsearch. Nainstalujte Kibana pomocí následujícího příkazu.
yum -y install kibana-ossUpravte soubor kibana.yml.
vi /etc/kibana/kibana.ymlVe výchozím nastavení Kibana naslouchá na localhost, což znamená, že ke Kibaně nemáte přístup z externích počítačů. Chcete-li to povolit, upravte níže uvedený řádek a uveďte IP svého serveru ELK.
server.host:"0.0.0.0 "."Odkomentujte následující řádek a aktualizujte jej adresou URL instance Elasticsearch.
elasticsearch.hosts:["http://192.168.1.10:9200 "]Spusťte a povolte kibana při spuštění systému.
systemctl spustit kibanasystemctl povolit kibanaZkontrolujte, zda Kibana naslouchá na portu 5601.
netstat -antup | grep -i 5601Výstup:
tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 3631/nodeFirewall
Nakonfigurujte bránu firewall na serveru ELK pro příjem protokolů z klientských počítačů.
5044 – Aby Logstash dostával protokoly
5061 – Přístup ke Kibaně z externích počítačů.
firewall-cmd --permanent --add-port=5044/tcpfirewall-cmd --permanent --add-port=5601/tcpfirewall-cmd --reloadDále nakonfigurujeme beaty pro odesílání protokolů na server Logstash.
Nainstalujte a nakonfigurujte Filebeat
K dispozici jsou klienti se čtyřmi beaty
- Packetbeat – Analyzujte data síťových paketů.
- Filebeat – Přehled dat protokolu v reálném čase.
- Topbeat – Získejte přehled z dat infrastruktury.
- Metricbeat – Odešlete metriky do Elasticsearch.
Chcete-li získat balíček Filebeat, nastavte na klientském počítači úložiště Elastic.
Nainstalujte Filebeat pomocí následujícího příkazu.
yum -y install filebeatKonfigurační soubor Filebeat je ve formátu YAML, což znamená, že odsazení je velmi důležité. Ujistěte se, že používáte stejný počet mezer jako v příručce.
Upravte konfigurační soubor filebeat.
vi /etc/filebeat/filebeat.ymlZakomentujte sekci output.elasticsearch: protože nebudeme ukládat protokoly přímo do Elasticsearch.
#-------------------------- Výstup elastického vyhledávání ------------------- ------------# output.elasticsearch:# Pole hostitelů pro připojení. # hostitelé:["localhost:9200"] # Volitelný protokol a základní autentizační údaje. #protocol:"https" #username:"elastic" #password:"changeme"Nyní najděte řádek output.logstash a upravte položky jako níže. Tato sekce definuje filebeat pro odesílání protokolů na server Logstash 192.168.1.10 na portu 5044 .
. . .#----------------------------- Výstup Logstash ------------------ ---------------output.logstash:# Hostitelé Logstash:["192.168.1.10:5044 "]...Nad
/etc/filebeat/filebeat.yml
, uvidíte sekci prospektoři. Zde musíte určit, které protokoly se mají odesílat do Logstash.Každý prospektor začíná na – postava.
Zde nakonfigurujeme filebeat pro odesílání systémových protokolů
/var/log/messages
na server Logstash. Chcete-li to provést, upravte stávajícího prospektora v části cesty sekce, jak je uvedeno níže.. . .filebeat.inputs:# Každý - je vstup. Většinu voleb lze nastavit na úrovni vstupu, takže# můžete použít různé vstupy pro různé konfigurace.# Níže jsou konfigurace specifické pro vstup.- typ:log # Změňte na true pro povolení této konfigurace vstupu. povoleno:true # Cesty, které by měly být procházeny a načteny. Cesty založené na globu. cesty:- /var/log/messages #- c:\programdata\elasticsearch\logs\*. . .Restartujte službu.
systemctl restart filebeatsystemctl povolit filebeatPřístup ke Kibaně
Ke Kibaně se dostanete pomocí následující adresy URL.
http://your-ip-addr-ess:5601/Získáte domovskou stránku Kibany. Klikněte na Prozkoumat sám .
Při prvním přístupu musíte namapovat index filebeat. Přejděte na Správa>> Vzory indexu>> Vytvořit vzor indexu .
Do vzoru indexu zadejte následující box.
filebeat-*Měli byste vidět alespoň jeden index filebeat, něco jako níže. Klikněte na Další krok .Vyberte @časové razítko a poté klikněte na Vytvořit vzor indexu .
@timestampOvěřte své vzory indexů a jejich mapování.
Nyní klikněte na Objevit pro zobrazení protokolů a provádění vyhledávacích dotazů.
Závěr
To je vše. Úspěšně jste se naučili, jak nainstalovat ELK Stack na RHEL 8. Podělte se prosím o svůj názor v sekci komentářů.
Jak nainstalovat pgAdmin 4 na CentOS 7 / RHEL 7 &Fedora 29 / Fedora 28 Jak nainstalovat phpMyAdmin s Nginx na CentOS 8 / RHEL 8Cent OS