Co je zásobník ELK?
ELK je zkratka, která znamená Elasticsearch Logstash Kibana. Každý termín ve zkratce ELK znamená individuální software s otevřeným zdrojovým kódem a všechny tyto programy se společně používají pro analýzu protokolů. Log analýza je věda o tom, jak dát smysl z počítačově generovaných záznamů. Protokoly vysílají síťová zařízení, operační systémy, aplikace a všechny druhy inteligentních nebo programovatelných zařízení. Proud zpráv v časové posloupnosti často obsahuje protokol. Protokoly mohou být směrovány do souborů a ukládány na disk nebo směrovány jako síťový proud do sběrače protokolů.
Pojďme se stručně seznámit s úkoly, které plní každý software v zásobníku ELK.
Elasticsearch: Ukládá protokoly a funguje také jako vyhledávač.
Logstash: Identifikuje protokoly v síti a odešle je do elastického vyhledávání.
Kibana: Jedná se o software pro vizualizaci dat, který interaktivním způsobem zobrazuje data z databáze elasticsearch.
Postup instalace
Nyní, když máte základní představu o ELK stacku, můžete nainstalovat každý modul nebo software za sebou. Ale předtím musíme nainstalovat JAVA na server.
Instalace JAVA
Stáhněte si nejnovější balíček JAVA nebo použijte následující příkaz k přidání balíčku JAVA 8 do úložiště
sudo add-apt-repository -y ppa:webupd8team/java
Poté aktualizujte úložiště pomocí příkazu
sudo apt-get update
K úspěšné instalaci JAVA použijte postupně následující příkazy
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections sudo apt-get -y install oracle-java8-installer
Chcete-li ověřit, zda byl balíček nainstalován správně, zadejte do terminálu následující
java -version
Pokud byl balíček úspěšně nainstalován, obdržíte zprávu podobnou této
java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
Instalace Elasticsearch
Pomocí následujících příkazů jeden po druhém stáhněte a nainstalujte Elasticsearch na váš server
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list sudo apt-get update && sudo apt-get install elasticsearch
Nyní spusťte následující příkaz pro spuštění elasticsearch při spuštění
sudo update-rc.d elasticsearch defaults 95 10
Příkaz poskytne následující výsledek
Adding system startup for /etc/init.d/elasticsearch ... /etc/rc0.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc1.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc6.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc2.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc3.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc4.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc5.d/S95elasticsearch -> ../init.d/elasticsearch
Nyní je čas jej spustit a zjistit, zda funguje dobře.
sudo /etc/init.d/elasticsearch start curl 'http://localhost:9200'
Pokud byla úspěšně nainstalována a spuštěna, měli byste obdržet textový výsledek podobný následujícímu
root@ELKTest:~# curl 'http://localhost:9200' { "name" : "Termagaira", "cluster_name" : "elasticsearch", "cluster_uuid" : "72XGxcHjSjaaXDdtmIio0g", "version" : { "number" : "2.4.3", "build_hash" : "d38a34e7b75af4e17ead16f156feffa432b22be3", "build_timestamp" : "2016-12-07T16:28:56Z", "build_snapshot" : false, "lucene_version" : "5.5.2" }, "tagline" : "You Know, for Search" }
Nyní musíte upravit konfigurační soubor, abyste omezili vnější přístup k vašim logům elasticsearch.
sudo vi /etc/elasticsearch/elasticsearch.yml
Nyní najděte řádek network.host, odkomentujte jej odstraněním znaku # před řádkem a nahraďte obsah tohoto řádku výrazem localhost nebo 127.0.0.1 . V tomto příkladu budeme používat localhost
network.host: localhost
Restartujte elasticsearch
sudo service elasticsearch restart
Instalace Logstash
Instalace logstashe je velmi podobná instalaci Elasticsearch a stejně tak Kibana. K importu a instalaci balíčku logstash použijte následující příkazy.
echo "deb https://packages.elastic.co/logstash/2.3/debian stable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update && sudo apt-get install logstash
Nyní spusťte níže uvedený příkaz pro spuštění logstash při spuštění.
sudo update-rc.d logstash defaults 95 10
Result: Adding system startup for /etc/init.d/logstash ... /etc/rc0.d/K10logstash -> ../init.d/logstash /etc/rc1.d/K10logstash -> ../init.d/logstash /etc/rc6.d/K10logstash -> ../init.d/logstash /etc/rc2.d/S95logstash -> ../init.d/logstash /etc/rc3.d/S95logstash -> ../init.d/logstash /etc/rc4.d/S95logstash -> ../init.d/logstash /etc/rc5.d/S95logstash -> ../init.d/logstash
Konečně spuštění logstash
sudo /etc/init.d/logstash start
Instalace Kibana
K importu a instalaci kibana
použijte postupně následující příkazyecho "deb http://packages.elastic.co/kibana/4.5/debian stable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update && sudo apt-get install kibana
Nyní nakonfigurujte kibana tak, aby se spouštěla při spouštění pomocí
sudo update-rc.d kibana defaults 95 10
Result: Adding system startup for /etc/init.d/kibana ... /etc/rc0.d/K10kibana -> ../init.d/kibana /etc/rc1.d/K10kibana -> ../init.d/kibana /etc/rc6.d/K10kibana -> ../init.d/kibana /etc/rc2.d/S95kibana -> ../init.d/kibana /etc/rc3.d/S95kibana -> ../init.d/kibana /etc/rc4.d/S95kibana -> ../init.d/kibana /etc/rc5.d/S95kibana -> ../init.d/kibana
Nakonfigurujte soubor kibana tak, abyste k rozhraní měli přístup pouze vy.
sudo vi /opt/kibana/config/kibana.yml
V konfiguračním souboru Kibana najděte řádek server.host a nahraďte „0.0.0.0“ za „localhost“:Poté uložte a ukončete konfigurační soubor.
server.host: "localhost"
Nyní restartujte službu
sudo service kibana restart
Instalace NGINX
Než budeme moci používat webové rozhraní Kibana, musíte nainstalovat reverzní proxy. Nainstalujte tedy NGINX pomocí následujícího příkazu.
sudo apt-get install nginx apache2-utils
Spuštěním následujícího příkazu musíte nastavit uživatelské jméno a heslo pro webové rozhraní kibana
sudo htpasswd -c /etc/nginx/htpasswd.users kibadmin
Místo kibadminu můžete použít libovolné jméno. Zobrazí se výzva k zadání nového hesla. Zadejte heslo ke svému účtu kibana a dokončete proces.
Nyní proveďte změny ve výchozím bloku serveru Nginx pomocí následujícího
sudo vim /etc/nginx/sites-available/default
Odstraňte obsah souboru a vložte do souboru následující kód, poté jej uložte a ukončete.
server { listen 80; server_name yourdomain; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; location / { proxy_pass http://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; } }
Ujistěte se, že jste svou doménu nahradili odpovídajícím názvem domény. Poté restartujte webový server spuštěním příkazu níže.
sudo service nginx restart
Zásobník ELK je nyní úspěšně nainstalován na server
Vygenerování certifikátu SSL
Vygenerujte certifikát SSL podle kroků uvedených v odkazu kliknutím sem.
Až budete mít klíč a certifikát, vložte je do /etc/nginx/cert.key a /etc/nginx/cert.pem a poté vytvořte soubor /etc/nginx/sites-available/nsm s následujícím obsahem:
server { listen 80 default_server; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name hostname; <-- edit this to match your hostname root html; index index.html index.htm; ssl on; ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:5601; include proxy_params; } }
Smažte výchozí konfigurační soubor Nginx a povolte nový pomocí následujícího příkazu, poté restartujte webový server.
$ sudo rm /etc/nginx/sites-enabled/default && sudo ln -s /etc/nginx/sites-available/nsm /etc/nginx/sites-enabled/nsm $ sudo /etc/init.d/nginx restart
Pokud je vše provedeno správně, pak je základní vyhledávací infrastruktura na místě a měla by být přístupná na https://