GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat Elasticsearch Logstash Kibana (Elastic Stack) na Ubuntu 18.04

V této příručce se naučíte nainstalovat Elastic stack na Ubuntu 18.04. Elastický stoh , dříve známý jako ELK stack je sbírka nebo zásobník bezplatného a opensource softwaru od společnosti Elastic Company navržený pro centralizované protokolování.

Umožňuje vyhledávání, analýzu a vizualizaci protokolů z různých zdrojů v nesčetných formátech. Centralizované protokolování pomáhá při identifikaci problémů se serverem nebo aplikací ze společného bodu.

Elastic Stack Components

Elastic Stack se skládá ze 4 hlavních komponent.

  1. Elasticsearch :Toto je RESTful vyhledávač, který ukládá nebo uchovává všechna shromážděná data
  2. Logstash :Toto je komponenta, která zpracovává data a analyzuje je na elastické vyhledávání
  3. Kibana :Toto je webové rozhraní, které vizualizuje protokoly
  4. Beaty :Jedná se o lehké odesílatele dat, kteří doručují protokoly ze stovek/tisíců serverů na centrální server, na kterém je nakonfigurován ELK.

Pojďme se nyní podívat, jak můžete nainstalovat elastický stack na Ubuntu 18.04.

Předpoklady

Před zahájením instalace se ujistěte, že byste měli mít následující infrastrukturu.

  1. Server Ubuntu 18.04 LTS s přístupem root a uživatelem bez oprávnění root plus ufw firewall. Následující by měly být minimální požadavky na server.
    • Ubuntu 18.04 LTS
    • 4 GB RAM
    • 2 procesory
  2. Na vašem systému je nainstalována Java 8, kterou budou vyžadovat Elasticsearch a Logstash.
  3. NGINX nainstalovaný na vašem serveru, který bude později nakonfigurován pro zpracování Kibana. Doporučená četba:Nainstalujte Nginx na Ubuntu 18.04

S tím se pojďme ponořit a začít s instalací Elastic stacku na Ubuntu.

1. Nainstalujte Elasticsearch na Ubuntu

Nejprve se chystáme importovat veřejný GPG klíč Elasticsearch do APT. Balíčky elastického zásobníku jsou obvykle podepisovány podpisovým klíčem Elasticsearch, aby byl váš systém chráněn před falšováním balíků. Navíc jsou ověřené balíčky považovány správcem balíčků za důvěryhodné.

Chcete-li importovat klíč GPG, spusťte:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Dále přidejte Elastic repository do sources.list.d adresář pomocí příkazu níže.

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Výstup těchto dvou příkazů je následující:

Výstup

Nyní aktualizujte úložiště systému pomocí příkazu níže.

sudo apt update

Ukázkový výstup

Nyní nainstalujte Elasticsearch pomocí příkazu níže.

sudo apt install elasticsearch

Výstup

2. Nakonfigurujte Elasticsearch na Ubuntu

Elasticsearch naslouchá na portu 9200. Omezíme však přístup zvenčí, aby vnější strany nemohly přistupovat k datům a vypnout elastický cluster. To znamená, že provedeme několik úprav konfiguračního souboru Elasticsearch, jak je uvedeno níže

sudo nano /etc/elasticsearch/elasticsearch.yml

Najděte network.host atribut a odkomentujte jej a přidejte localhost jako jeho hodnotu. Odkomentujte také http.port atribut.

Výstup


network.host: localhost
http.port: 9200

Dále spusťte a povolte službu Elasticsearch, jak je znázorněno.


sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Výstup

V tuto chvíli by měl být Elasticsearch spuštěn. Můžete to ověřit spuštěním příkazu níže.

systemctl status elasticsearch

Výstup

Můžete také použít netstat příkaz, jak je znázorněno.

netstat -pnltu

Můžete také spustit curl příkaz, jak je znázorněno.

curl -X GET "localhost:9200"

Výstup

Skvělý! Dokončili jsme instalaci a konfiguraci Elasticsearch. Dále nainstalujeme a nakonfigurujeme Logstash.

3. Instalace a konfigurace Logstash

Druhou součástí Elastic stacku, kterou se chystáme nainstalovat, je Logstash. Logstash bude zodpovědný za shromažďování a centralizaci protokolů z různých serverů pomocí filebeat data shipper. Poté bude filtrovat a předávat data syslog do Elasticsearch.

Nejprve si ověřte, že OpenSSL běží. Chcete-li to provést, spusťte.

openssl version -a

Výstup

Chcete-li nainstalovat Logstash, spusťte níže uvedený příkaz.

sudo apt install logstash -y

Výstup

Dále upravte /etc/hosts soubor a připojte následující.

18.224.44.11  elk-master

Kde 18.224.44.11 je IP adresa serveru masterELk.

Poté vygenerujeme klíč certifikátu SSL pro zabezpečení přenosu dat protokolu z klientského filebeatu na server logstash.

Chcete-li to provést, nejprve vytvořte nový adresář SSL v konfiguračním adresáři logstash ‚/etc/logstash‘ a přejděte do tohoto adresáře.


mkdir -p /etc/logstash/ssl
cd /etc/logstash/

Nyní můžete vygenerovat certifikát SSL, jak je uvedeno níže.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Dále vytvoříme nové konfigurační soubory pro logstash. Vytvoříme konfigurační soubor 'filebeat-input.conf' jako vstupní soubor z filebeat, 'syslog-filter.conf' pro zpracování syslogu a nakonec soubor 'output-elasticsearch.conf' pro definování výstupu Elasticsearch.

Přejděte do adresáře Logstash a vytvořte soubor „filebeat-input.conf“ v adresáři „conf.d“.

cd /etc/logstash/
vim conf.d/filebeat-input.conf

Vložte následující konfiguraci.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Uložte a ukončete textový editor.

Pro zpracování dat protokolu syslog používáme modul filtru s názvem „grok“ pro analýzu souborů syslog.

Vytvořte novou konfiguraci „syslog-filter.conf“.

vim conf.d/syslog-filter.conf

Vložte konfiguraci níže.


filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Uložte a ukončete textový editor.

Nakonec vytvořte konfigurační soubor s názvem ‚output-elasticsearch.conf‘ pro výstup elasticsearch.

vim conf.d/output-elasticsearch.conf

Vložte následující obsah.


output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Uložte a ukončete textový editor.

Když je to řečeno a hotovo, povolte a spusťte službu Logstash.

sudo systemctl enable logstash
sudo systemctl start logstash

Chcete-li ověřit, že je spuštěn Logstash, spusťte příkaz.

sudo systemctl status logstash

Ukázkový výstup

Můžete také použít netstat příkaz, jak je znázorněno.

netstat -pnltu

4. Nainstalujte a nakonfigurujte Kibana na Ubuntu

Dále nainstalujeme Kibanu pomocí příkazu níže.

sudo apt install kibana -y

Výstup

Dále provedeme několik úprav konfiguračního souboru kibana.

vim /etc/kibana/kibana.yml

Vyhledejte a odkomentujte následující atributy.


server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"

Uložte a ukončete textový editor.

Poté povolte a spusťte službu Kibana:


sudo systemctl enable kibana
sudo systemctl start kibana

Výstup

Můžete potvrdit, že kibana běží na výchozím portu 5601 pomocí netstat příkaz, jak je znázorněno.

netstat -pnltu

Výstup

5. Instalace a konfigurace NGINX jako reverzní proxy pro Kibana

NGINX používáme jako reverzní proxy k dashboardům kibana. Musíte nainstalovat Nginx a „Apache2-utils“, jak je uvedeno níže.

sudo apt install nginx apache2-utils -y

Výstup

Dále vytvořte nový soubor virtuálního hostitele s názvem kibana.

vim /etc/nginx/vim sites-available/kibana

Vložte následující obsah do souboru virtuálního hostitele


server {
    listen 80;
 
    server_name localhost;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass https://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Uložte a ukončete textový editor. Doporučené čtení:Direktiva pro umístění NGINX.

Dále vytvořte základní ověření pro řídicí panel kibana pomocí htpasswd příkaz, jak je znázorněno.

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password

Výstup

Ve výše uvedeném příkladu je uživatelské jméno elastické a heslo bude takové, jaké poskytnete.

Dále aktivujte konfiguraci virtuálního hostitele Kibana a otestujte konfiguraci Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t

Výstup

Bez chyb povolte a restartujte server Nginx.


systemctl enable nginx
systemctl restart nginx

6. Instalace a konfigurace Filebeat

V tomto kroku se chystáme nakonfigurovat odesílatele dat filebeat na našem serveru elk-master. To přenese všechny zprávy syslog do logstash, který bude zpracován a vizualizován kibanou.

Chcete-li nainstalovat filebeat, spusťte:

sudo apt install filebeat

Dále otevřete konfigurační soubor filebeat.

sudo vim /etc/filebeat/filebeat.yml

Logstash použijeme k dalšímu zpracování dat shromážděných aplikací Filebeat. Filebeat nebude potřeba k odeslání žádných dat přímo do Elasticsearch. Proto vyhledejte a okomentujte sekci elasticsearch, jak je znázorněno.


#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

Dále přejděte do sekce Logstash a zrušte komentář, jak je znázorněno.


output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

Povolte prospektory filebeat změnou hodnoty řádku ‚enabled‘ na ‚true‘.

enabled: true

Zadejte systémové soubory protokolu, které se mají odeslat na server logstash. V tomto příkladu přidáme soubor protokolu ssh ‚auth.log‘ a soubor syslog.


  paths:
    - /var/log/auth.log
    - /var/log/syslog

Uložit a ukončit.

Nakonec zkopírujte soubor certifikátu logstash – logstash-forwarder.crt – do /etc/filebeat adresář.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Nyní spusťte a povolte filebeat.


systemctl start filebeat
systemctl enable filebeat

Chcete-li zkontrolovat stav spuštění souboru:

systemctl status filebeat

Výstup

7. Testování zásobníku Elasticsearch

Chcete-li otestovat náš elastický stack, otevřete svůj prohlížeč a procházejte IP adresu svého serveru následovanou portem 5601, což je port, kterému kibana naslouchá.

ip-address:5601

Zadejte uživatelské jméno a heslo a později se zobrazí následující obrazovka.

Klikněte na kartu „objevit“ a klikněte na „Filebeat“. Zobrazí se následující rozhraní, které vám umožní živé vysílání vizualizovaných dat.

Gratulujeme! Úspěšně jste nainstalovali a nakonfigurovali The Elastic Stack a Elastic Beat ‘Filebeat’ na vašem systému Ubuntu 18.04.


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

  2. Nainstalujte Elasticsearch, Logstash a Kibana na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Elasticsearch na Ubuntu 18.04

  1. Jak nainstalovat Elasticsearch a Kibana na Linux

  2. Jak nainstalovat Elasticsearch na Ubuntu 18.04

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

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

  2. Jak nainstalovat Elasticsearch na Ubuntu 20.04

  3. Jak nainstalovat Elastic Stack na Ubuntu 18.04 LTS