ELK je kombinací tří open source produktů ElasticSearch, Logstash a Kibana. Je to jedna z nejpopulárnějších platforem pro správu protokolů po celém světě. Elasticsearch je vyhledávací a analytický nástroj. Logstash je kanál pro zpracování protokolů, který přenáší protokoly z více zdrojů současně, transformuje je a poté je posílá do „skrýše“, jako je Elasticsearch. Kibana se používá k vizualizaci vašich dat, která Logstash zaindexoval do indexu Elasticsearch
V tomto tutoriálu vysvětlíme, jak nainstalovat Logstash na Ubuntu 20.04.
Předpoklady
- Server se systémem Ubuntu 20.04.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalovat požadované závislosti
Chcete-li nainstalovat Elasticsearch, budete muset do svého systému nainstalovat Javu. Java JDK můžete nainstalovat pomocí následujícího příkazu:
apt-get install openjdk-11-jdk -y
Po instalaci ověřte nainstalovanou verzi Java pomocí následujícího příkazu:
java -version
Měli byste vidět následující výstup:
openjdk 11.0.7 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Dále nainstalujte další požadované závislosti spuštěním následujícího příkazu:
apt-get install nginx curl gnupg2 wget -y
Jakmile jsou všechny závislosti nainstalovány, můžete přejít k dalšímu kroku.
Instalace a konfigurace Elasticsearch
Před spuštěním budete muset nainstalovat Elasticsearch do vašeho systému. Ukládá protokoly a události z Logstashe a nabízí možnost prohledávat protokoly v reálném čase.
Nejprve přidejte do systému úložiště Elastic pomocí následujícího příkazu:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
Dále aktualizujte úložiště a nainstalujte Elasticsearch pomocí následujícího příkazu:
apt-get update -y
apt-get install elasticsearch -y
Po instalaci upravte výchozí konfigurační soubor Elasticsearch:
nano /etc/elasticsearch/elasticsearch.yml
Odkomentujte a změňte jeho hodnotu, jak je uvedeno níže:
network.host: localhost
Uložte a zavřete soubor, poté spusťte službu Elasticsearch a povolte její spuštění při spouštění pomocí následujícího příkazu:
systemctl start elasticsearch
systemctl enable elasticsearch
V tomto okamžiku je Elasticsearch nainstalován a naslouchá na portu 9200. Nyní můžete otestovat, zda Elasticsearch funguje nebo ne, spuštěním následujícího příkazu:
curl -X GET "localhost:9200"
Pokud je vše v pořádku, měli byste vidět následující výstup:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA", "version" : { "number" : "7.8.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat a konfigurovat Kibana
Dále budete muset nainstalovat Kibana do vašeho systému. Kibana vám umožňuje analyzovat data uložená na Elasticsearch. Můžete jej nainstalovat pouhým spuštěním následujícího příkazu:
apt-get install kibana -y
Jakmile je Kibana nainstalována, spusťte službu Kibana a povolte její spuštění při spouštění pomocí následujícího příkazu:
systemctl start kibana
systemctl enable kibana
Dále budete muset vytvořit administrativního uživatele pro Kibana pro přístup k webovému rozhraní Kibana. Spuštěním následujícího příkazu vytvořte administrativního uživatele a heslo Kibana a uložte je do souboru htpasswd.users.
echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users
Budete požádáni o zadání hesla, jak je uvedeno v následujícím výstupu:
Password: Verifying - Password: admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/
Dále vytvořte konfigurační soubor virtuálního hostitele Nginx, který bude sloužit Kibaně:
nano /etc/nginx/sites-available/kibana
Přidejte následující řádky:
server { listen 80; server_name kibana.example.com; 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; } }
Uložte a zavřete soubor a poté povolte soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
Poté restartujte službu Nginx, aby se změny aplikovaly:
systemctl restart nginx
Dále otevřete webový prohlížeč a zkontrolujte stav Kibana pomocí adresy URL http://kibana.example.com/status. Budete požádáni o zadání uživatelského jména a hesla, jak je uvedeno níže:
Zadejte své uživatelské jméno a heslo Kibana a klikněte na tlačítko Přihlásit se. Měli byste vidět následující obrazovku:
V tomto okamžiku je ve vašem systému nainstalován řídicí panel Kibana. Nyní můžete přejít k dalšímu kroku.
Instalace a konfigurace Logstash
Logstash se používá pro zpracování logů zaslaných beaty. Můžete jej nainstalovat spuštěním následujícího příkazu:
apt-get install logstash -y
Po instalaci Logstash vytvořte nový konfigurační soubor beatu pomocí následujícího příkazu:
nano /etc/logstash/conf.d/02-beats-input.conf
Přidejte následující řádky:
input { beats { port => 5044 } }
Uložte a zavřete soubor a poté vytvořte konfigurační soubor Elasticsearch pomocí následujícího příkazu:
nano /etc/logstash/conf.d/30-elasticsearch-output.conf
Přidejte následující řádky:
output { if [@metadata][pipeline] { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline => "%{[@metadata][pipeline]}" } } else { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } }
Uložte a zavřete soubor a poté ověřte konfiguraci Logstash pomocí tohoto příkazu:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Pokud je vše v pořádku, měli byste vidět následující výstup:
Config Validation Result: OK. Exiting Logstash
Dále spusťte službu Logstash a povolte její spuštění při spuštění pomocí následujícího příkazu:
systemctl start logstash
systemctl enable logstash
V tomto okamžiku je ve vašem systému nainstalován Logstash. Nyní můžete přejít k dalšímu kroku.
Instalace a konfigurace Filebeat
ELK stack používá Filebeat ke shromažďování dat z různých zdrojů a jejich přenosu do Logstashe.
Filebeat můžete nainstalovat pomocí následujícího příkazu:
apt-get install filebeat -y
Po instalaci budete muset nakonfigurovat Filebeat pro připojení k Logstash. Můžete jej nakonfigurovat pomocí následujícího příkazu:
nano /etc/filebeat/filebeat.yml
Zakomentujte následující řádky:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
Poté odkomentujte následující řádky:
output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
Uložte a zavřete soubor a poté povolte systémový modul následujícím příkazem:
filebeat modules enable system
Ve výchozím nastavení je Filebeat nakonfigurován tak, aby používal výchozí cesty pro syslog a autorizační protokoly.
Potrubí příjmu pro systémový modul můžete načíst pomocí následujícího příkazu:
filebeat setup --pipelines --modules system
Dále načtěte šablonu pomocí následujícího příkazu:
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Měli byste vidět následující výstup:
Index setup finished.
Ve výchozím nastavení je Filebeat dodáván s ukázkovými řídicími panely Kibana, které vám umožňují vizualizovat data Filebeat v Kibana. Musíte tedy zakázat výstup Logstash a povolit výstup Elasticsearch. Můžete to udělat pomocí následujícího příkazu:
filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
Měli byste vidět následující výstup:
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling. Index setup finished. Loading dashboards (Kibana must be running and reachable) Loaded dashboards Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead. See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html Loaded machine learning job configurations Loaded Ingest pipelines
Nyní spusťte službu Filebeat a povolte její spuštění při spuštění pomocí následujícího příkazu:
systemctl start filebeat
systemctl enable filebeat
Přístup k řídicímu panelu Kibana
V tomto okamžiku jsou všechny součásti ELK nainstalovány a nakonfigurovány. Nyní otevřete webový prohlížeč a zadejte adresu URL http://kibana.example.com. Na následující obrazovce byste měli vidět řídicí panel Kibana:
V levém podokně klikněte na Objevit a vyberte předdefinovaný vzor indexu filebeat-*, abyste viděli data Filebeat na následující obrazovce:
Nyní Kibana nabízí spoustu funkcí. Neváhejte je prozkoumat, jak chcete.
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Logstash na serveru Ubuntu 20.04. Nyní můžete shromažďovat a analyzovat systémové protokoly z centrálního umístění. Pokud máte nějaké dotazy, neváhejte se mě zeptat.