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

Jak nainstalovat Elasticsearch, Logstash a Kibana (ELK Stack) na CentOS 7 / RHEL 7

ELK stack je také známý jako Elastic stack, skládá se z Elasticsearch, Logstash a Kibana. Pomůže vám to mít všechny své protokoly uložené na jednom místě a analyzovat problémy pomocí korelace událostí v konkrétním čase.

Tato příručka vám pomůže nainstalovat ELK stack na CentOS 7 / RHEL 7 .

Komponenty

Logstash – Zpracovává (shromažďuje, obohacuje a posílá je do Elasticsearch) příchozích protokolů odeslaných beats (forwarder).

Elasticsearch – Ukládá příchozí protokoly z Logstash a poskytuje možnost prohledávat protokoly/data v reálném čase

Kibana – Poskytuje vizualizaci protokolů.

Beaty – Instalováno na klientských počítačích, odesílání protokolů do Logstash 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ů.

Zásobník ELK

Operating system : CentOS 7 Minimal
IP Address       : 192.168.1.10
HostName         : server.itzgeek.local

Filebeat

Operating System : CentOS 7 Minimal
IP Address       : 192.168.1.20
HostName         : client.itzgeek.local

Předpoklady

Nainstalujte Javu

Vzhledem k tomu, že Elasticsearch je založen na Javě, ujistěte se, že máte na svém počítači nainstalováno OpenJDK nebo Oracle JDK.

ČTĚTE :Jak nainstalovat Oracle Java 8 na CentOS 7 / RHEL 7

Zde používám OpenJDK 1.8.

yum -y install java-1.8.0 wget

Ověřte verzi Java.

java -version

Výstup:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Konfigurace úložiště ELK

Importujte pružný podpisový klíč.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Nastavte úložiště Elasticsearch a nainstalujte jej.

vi /etc/yum.repos.d/elk.repo

Přidejte níže uvedený obsah do elk.repo soubor.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Nainstalujte Elasticsearch

Elasticsearch je open source vyhledávač, který 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

Nakonfigurujte Elasticsearch tak, aby se spouštěl během spouštění systému.

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

Pomocí CURL zkontrolujte, zda Elasticsearch odpovídá na dotazy nebo ne.

curl -X GET http://localhost:9200

Výstup:

 {
  "name" : "1DwGO86",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "xboS_6K5Q2OO1XA-QJ9GIQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Nainstalujte Logstash

Logstash je open source nástroj pro správu událostí a protokolů, shromažďuje protokoly, analyzuje je a ukládá je na Elasticsearch pro vyhledávání. Pro Logstash je k dispozici více než 160 pluginů, které umožňují zpracovávat různé typy událostí bez práce navíc.

Nainstalujte balíček Logstash.

yum -y install logstash

Vytvořte certifikát SSL (volitelné)

Filebeat (Logstash Forwarder) jsou běžně instalovány na klientských serverech a používají SSL certifikát k ověření identity serveru Logstash pro zabezpečenou komunikaci.

Vytvořte certifikát SSL buď s názvem hostitele nebo IP SAN.

Možnost 1:(Název hostitele FQDN)

Pokud používáte název hostitele serveru Logstash v konfiguraci beats (předávání), ujistěte se, že máte záznam A pro server Logstash a také se ujistěte, že klientský počítač dokáže přeložit název hostitele serveru Logstash.

Přejděte do adresáře OpenSSL.

cd /etc/pki/tls/

Nyní vytvořte certifikát SSL. Nahradit zelenou jeden s názvem hostitele vašeho skutečného serveru Logstash.

openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=server.itzgeek.local

Možnost 2:(IP adresa)

Pokud plánujete místo názvu hostitele použít IP adresu, postupujte podle kroků k vytvoření certifikátu SSL pro IP SAN.

Chcete-li vytvořit certifikát IP SAN, budete muset přidat IP adresu serveru Logstash do SubjectAltName v konfiguračním souboru OpenSSL.

vi /etc/pki/tls/openssl.cnf

Vyhledejte sekci „[ v3_ca ]“ a nahraďte ji zelenou jeden s IP vašeho serveru Logstash.

subjectAltName = IP:192.168.1.10

Přejděte do adresáře OpenSSL.

cd /etc/pki/tls/

Nyní vytvořte certifikát SSL spuštěním následujícího příkazu.

openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
Totologstash-forwarder.crt by měl být zkopírován do všech klientských počítačů, které odesílají protokoly na server Logstash.

Nakonfigurujte Logstash

Konfigurace Logstash lze nalézt v /etc/logstash/conf.d/ . Konfigurační soubor Logstash se skládá ze tří částí vstup, filtr a výstup. Všechny tři části lze nalézt buď v jednom souboru, nebo v samostatných souborech končících 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/logstash.conf

V první sekci vložíme položku pro konfiguraci vstupu. Následující konfigurace nastaví Logstash tak, aby na portu 5044 naslouchal příchozím protokolům z beatů (forwarder), které jsou umístěny na klientských počítačích.

Do vstupní části pro zabezpečenou komunikaci přidejte také podrobnosti certifikátu SSL – Volitelné.

input {
 beats {
   port => 5044
   
   # Set to False if you do not use SSL 
   ssl => true

   # Delete below linesif you do not use SSL
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
   }
}

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.

filter {
if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }

    date {
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ě by to mělo být Elasticsearch.

output {
 elasticsearch {
  hosts => localhost
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
       }
stdout {
    codec => rubydebug
       }
}

Nyní spusťte a povolte službu Logstash.

systemctl start logstash
systemctl enable logstash

Jakékoli problémy můžete vyřešit nahlédnutím do protokolů Logstash.

cat /var/log/logstash/logstash-plain.log

Instalovat 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

Upravte soubor kibana.yml.

vi /etc/kibana/kibana.yml

Ve výchozím nastavení Kibana naslouchá na localhost, což znamená, že nemáte přístup k rozhraní Kibana z externích počítačů. Chcete-li to povolit, upravte na následujícím řádku adresu IP vašeho počítače.

server.host: "192.168.1.10"
."

Odkomentujte následující řádek a aktualizujte jej pomocí adresy URL instance Elasticsearch. V mém případě je to localhost.

elasticsearch.url: "http://localhost:9200"
."

Spusťte a povolte kibana při spuštění systému.

systemctl start kibana
systemctl enable kibana

Firewall

Nakonfigurujte bránu firewall na uzlu zásobníku ELK pro příjem protokolů z klientských počítačů.

5044 – Aby Logstash dostával protokoly

5061 – Přístup k rozhraní Kibana z externího počítače.

firewall-cmd --permanent --add-port=5044/tcp
firewall-cmd --permanent --add-port=5601/tcp
firewall-cmd --reload

Dále nakonfigurujeme beaty pro odesílání protokolů na server Logstash.

Nainstalujte a nakonfigurujte Filebeat

K dispozici jsou klienti se čtyřmi beaty

  1. Packetbeat – Analyzujte data síťových paketů.
  2. Filebeat – Přehled dat protokolu v reálném čase.
  3. Topbeat – Získejte přehled z dat infrastruktury.
  4. Metricbeat – Odešlete metriky do Elasticsearch.

Pro analýzu systémových protokolů klientského počítače (např. client.itzgeek.local) musíme nainstalovat filebeat . Vytvořte soubor beats.repo.

vi /etc/yum.repos.d/beats.repo

Přidejte níže uvedený obsah do výše uvedeného repo souboru.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Nyní nainstalujte Filebeat pomocí následujícího příkazu.

yum -y install filebeat

Nastavte položku hostitele na klientském počítači pro případ, že vaše prostředí nemá server DNS .

vi /etc/hosts

Na klientském počítači vytvořte záznam hostitele jako níže.

 192.168.1.10 server.itzgeek.local server

Filebeat (beats) používá k ověření identity serveru Logstash certifikát SSL, takže zkopírujte soubor logstash-forwarder.crt ze serveru Logstash na klienta.

Tento krok přeskočte, pokud v Logstash nepoužíváte SSL.

scp -pr [email protected]:/etc/pki/tls/certs/logstash-forwarder.crt /etc/ssl/certs/

Konfigurač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.

Otevřete konfigurační soubor filebeat.

vi /etc/filebeat/filebeat.yml

Nahoře uvidíte sekci prospektorů. Zde musíte určit, které protokoly se mají odesílat do Logstashe a jak se s nimi má zacházet. Každý prospektor začíná postava.

Pro účely testování nakonfigurujeme filebeat tak, aby odesílal /var/log/messages na server Logstash. Chcete-li to provést, upravte stávajícího prospektora v části cesty sekce.

Zakomentujte – /var/log/*.log abyste se vyhnuli odesílání všech .log soubory přítomné v tomto adresáři do Logstash.

filebeat.inputs:
- type: log
 
      # Change to true to enable this input configuration. 
      enabled: true

      # Paths that should be crawled and fetched.
      paths:

        - /var/log/messages
        # - /var/log/*.log

.  .  .

Zakomentujte sekci output.elasticsearch: protože nebudeme ukládat protokoly přímo do Elasticsearch.

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 server.itzgeek.local na portu 5044 a uveďte cestu, kam je umístěn zkopírovaný certifikát SSL

Nahraďte server.itzgeek.local adresou IP v případě, že používáte IP SAN .

.   .   .

output.logstash:
  # The Logstash Server
  hosts: ["server.itzgeek.local:5044"]


  # Comment out this line if Logstash is not using SSL
  ssl.certificate_authorities: ["/etc/ssl/certs/logstash-forwarder.crt"]

.   .   .

Restartujte službu.

systemctl restart filebeat

Protokoly Beats se obvykle nacházejí v souboru syslog.

cat /var/log/filebeat/filebeat

Přístup ke Kibaně

Ke Kibaně se dostanete pomocí následující adresy URL.

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

Získáte domovskou stránku Kibany.

Při prvním přihlášení musíte namapovat index filebeat. Přejděte na Správa>> Vzory indexu .

Do vzoru indexu zadejte následující box.

filebeat-*

Měli byste vidět alespoň jeden index filebeat, něco jako výše. Klikněte na Další krok.

Vyberte @časové razítko a poté klikněte na Create .

@timestamp

Ověřte své vzory indexů a jejich mapování.

Nyní klikněte na Objevit pro zobrazení příchozích protokolů a provádění vyhledávacích dotazů.

To je vše.


Cent OS
  1. Jak nainstalovat Elasticsearch, Logstash a Kibana 4 na CentOS 7 / RHEL 7

  2. Jak nainstalovat Graylog2 na CentOS 7 / RHEL 7

  3. Jak nainstalovat Elasticsearch na CentOS/RHEL 8

  1. Jak nainstalovat Elasticsearch na CentOS 8 / RHEL 8

  2. Jak nainstalovat Elasticsearch, Logstash a Kibana 4 na Ubuntu 14.04 / 15.04

  3. Jak nainstalovat ELK Stack na CentOS 7

  1. Jak nainstalovat ELK Stack (Elasticsearch, Logstash a Kibana) na Ubuntu 18.04 / 20.04

  2. Jak nainstalovat Elasticsearch, Logstash a Kibana (ELK Stack) na CentOS 8

  3. Jak nainstalovat ELK Stack na CentOS 7 / RHEL 7