Co je Kibana?
Kibana je bezplatná a otevřená frontendová aplikace, která je umístěna na vrcholu Elastic Stacku a poskytuje možnosti vyhledávání a vizualizace dat pro indexovaná data v Elasticsearch. Běžně známý jako nástroj pro tvorbu grafů pro Elastic Stack (označovaný jako ELK Stack po Elasticsearch, Logstash a Kibana). Logstash je bezplatný a otevřený kanál pro zpracování dat na straně serveru, který získává data z mnoha zdrojů, transformuje je a poté je odesílá do vašeho oblíbeného úložiště.
Kibana také funguje jako uživatelské rozhraní pro monitorování, správu a zabezpečení.
Kibana + Elasticsearch
Pro snazší práci s Elasticem je vhodná právě Kibana. Ta má grafické rozhraní, které se umí propojit a dokáže nám ukázat data v přívětivější podobě. Dokáže lépe vyhledávat v uložených datech, vytvářet vizualizace grafů a tabulek a vytvoření komplexních dashboardů.
VPS Centrum
Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.
Díky Kibaně získáte
- Přehlednou analýzu logů
- Monitoring infrastruktury
- APM – Application Performance Monitoring
- Přehled bezpečnostních akcí
- Business analytics
To na jednu monitorovací aplikaci ujde. V dalším článku, se dozvíte, jak ji správně nainstalovat na naše servery s VPS Centrem.
Jak nainstalovat Kibanu?
Pokud jste už nainstalovali Elasticsearch z předchozího návodu, tak tento krok můžete přeskočit. Jedná se pouze o přidání repozitáře.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Jakmile máme repozitář přidaný můžeme Kibanu nainstalovat.
aptitude install kibana
Poté musíme v souboru /etc/kibana/kibana.yml upravíme tyto řádky na:
server.basePath: "/kibana" server.rewriteBasePath: true
Poté upravíme nastavení web serveru v souboru /etc/apache2/sites-available/vpsID.vas-server.cz.conf a vydefinujeme toto makro:
# ################ Macro vpsID.vas-server.cz-kibana #################### vpsID.vas-server.cz-kibana> ProxyRequests On ProxyPreserveHost On ProxyPass http://127.0.0.1:5601/kibana ProxyPassReverse http://127.0.0.1:5601/kibana ## Auth AuthType Basic AuthName "Kibana" AuthUserFile /etc/apache2/scripts/kibana-passwd Require valid-user
Poté v makru-ssl přidáme na konec řádek s Kibanou. Pozor! Instalaci budete mít dostupnou pouze na HTTPS://, takže si to při vložení do adresáře zkontrolujte.
# ################ Only vpsID.vas-server.cz-ssl #################### DocumentRoot /www/hosting/vas-server.cz/www/ Servername vpsID.vas-server.cz Use vpsID.vas-server.cz Use vpsID.vas-server.cz-admin Use vpsID.vas-server.cz-adminer Use vpsID.vas-server.cz-phpmyadmin Use vpsID.vas-server.cz-munin Use vpsID.vas-server.cz-roundcube Use vpsID.vas-server.cz-phppgadmin Use vpsID.vas-server.cz-ssl Use vpsID.vas-server.cz-kibana
Pak si vyvoříme heslo pro přístup ke Kibaně. LOGIN = vaše uživatelské jméno a můžete jej změnit podle potřeby. Poté 2x zadáte heslo, které chcete mít. Doporučujeme si nějaký vygenerovat. Alespoň 15 znaku [.,:-=()[]{}a-zA-Z0-9]
Freelo - Nástroj na řízení úkolů a projektů
Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.
htpasswd -c /etc/apache2/scripts/kibana-passwd LOGIN
Pak už nám stačí aktivovat poslední věc. Modul v Apache2 proxy_http příkazem:
a2enmod proxy_http
Restartovat webserver
webserver_restart.sh NEBO systemctl restart apache2
Pak už nám stačí pouze aktivovat Kibanu pomocí příkazu.
systemctl enable kibana --now
Zkontrolovat, jestli běží.
systemctl status kibana
A následně můžeme jít na adresu a přihlásit se.
https://vpsID.vas-server.cz/kibana
Po přihlášení uvidíte tuto stránku:
Teď je třeba Kibaně říci, jaká data a logy má sbírat. Tak klikneme na “Add data”.
Nejdříve vybereme, které logy má sbírat.
To je na každém z vás, ale určitě se nám budou hodit logy od:
- Elasticsearch + Kibana
- Apache / příp. Nginx
- MySQL / příp. PostgreSQL
- Logy mailserveru
- Systémové logy
Abychom mohli různé moduly aktivovat. Potřebujeme nainstalovat Filebeat. Proces vypadá následovně
- Nainstalovat Filebeat na každý systém/server, který chceme monitorovat
- Specifikovat lokaci logů
- Analyzovat data a roztřídit je do polí a odeslat je do Elasticsearch
- Vizualizovat data z logu v Kibaně
Instalace Filebeat (Debian package)
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.11.1-amd64.deb dpkg -i filebeat-7.11.1-amd64.deb
Propojení s Elastic stackem
Musíme upravit soubor v /etc/filebeat/filebeat.yml
output.elasticsearch: hosts: ["localhost:9200"] ### Hostname a port, kde filebeat najde ES
### Pokud to je potřeba, můžete specifikovat uživatele, kteří mají potřebná oprávnění. Elastic doporučuje nastavit asi 4 uživatele. Tak záleží, jak moc si na bezpečnost potrpíte. Pak stačí pod “hosts” přidat 2 řádky
username: "filebeat_internal" password: "YOUR_PASSWORD"
Ještě aktivujeme kibanu ve stejném souboru takto:
Sbírání dat z logů
Existuje několik způsobů, jak sbírat data pomocí Filebeat:
- Moduly pro sběr dat
- Pomocí ECS
- Ruční konfigurace Filebeat
My si ukážeme, jak zprovoznit moduly pro sběr dat.
filebeat modules list ### Nám ukáže veškeré dostupné moduly k aktivování
My jsme chtěli aktivovat, Elastic search, Kibanu, apache, mysql a systém.
filebeat modules enable elasticsearch kibana system apache mysql
Pak ve složce /etc/filebear/modules.d/ ### najděte konkrétní configy modulů a upravte cesty k vašim logům. Pokud je necháte prázdné filebeat ponechá defaultní lokace podle vašeho OS.
Poslední nastavení před spuštěním
Filebeat přichází s předdefinovanými prostředky pro analýzu, indexování a vizualizaci vašich dat. Ve složce, kde jste prováděli instalaci spusťte příkaz:
filebeat setup -e
Nemělo by vám to skončit na žádné chybě a měli byste vidět něco jako.
Teď už nám zbývá poslední věc. Nastartovat filebeat pomocí příkazu:
service filebeat start service filebeat status
A teď půjdeme na URL adresu, kde máme kibanu a podíváme se na první data.
Vizualizace dat v Kibaně
Jakmile se přihlásíte, tak klikněte na levé menu a běžte do sekce Analytics > Overview.
Dostanete se sekce, kde můžete vybírat data a udělat z nich dashboardy, nebo pouze objevovat a hledat v logách či vytvářet heatmapy.
Jenom na demonstraci jsme si vybrali Mapy a chtěli jsme si zobrazit, odkud na můj server přicházejí požadavky. Index pattern vybereme filebeat a chceme zobrazit source.geo.location. Výsledek po chvilce vypadá takto. Nejvíce požadavků jde samozřejmě z Evropy a pak boti z Moskvy nebo Číny. 🙂 Klasika.
Následné grafy si můžete uložit a dělat z nich zajímavé dashboardy, které se vám budou zobrazovat. To už záleží na každém z vás, jaká data a logy chce kontrolovat a hlidat.
V sekci Add data / Sample data můžete vybrat nějaké ukázky, díky kterým nasbíráte inspiraci pro svoje tabulky. Např. takhle vypadají webové logy.
Jak hlídat důležité metriky systému?
Ještě si ukážeme, jak hlídat důležité metriky systému. Teď místo Filebeat musíme instalovat Metricbeat. Je to dost podobné, takže to už pro nás bude hračka. 🙂
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.11.1-amd64.deb dpkg -i metricbeat-7.11.1-amd64.deb
Půjdeme do složky a v souboru metricbeat.yml uděláme úpravy, jako u Filebeat.
Teď můžeme aktivovat potřebné moduly. Pro dostupné modely pustíme příkaz.
metricbeat modules list
A více modelů najednou aktivujeme takto:
metricbeat modules enable apache system elasticsearch kibana php_fpm mysql munin linux sql
Pak ve složce /etc/metricbeat/modules.d/ ### najděte konkrétní configy modulů a upravte nastavení podle vašeho systému. Pokud je necháte prázdné metricbeat ponechá defaultní lokace podle vašeho OS.
Pak zase spustíme nastavení a aktivujeme metricbeat.
metricbeat setup -e service metricbeat start service metricbeat status
A teď můžeme zpátky ke Kibaně. Klikneme na menu vlevo a půjdeme do Observability > Metrics.
Kde máte 3 sekce. Inventory, Metrics Explorer a Settings. Chvíli trvá, než se nasbírají data. Můžete se ale podívat, co všechno je dostupné a jak budete chtít poskládat vlastní dashboard.
Monitoring služeb – Heartbeat
Jdeme na poslední důležitou věc, a to jak hlídat pomocí Kibany vaše systémové služby. Princip je jednoduchý, zadáte URL a jak často se má Heartbeat zeptat, are you alive?
curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-7.11.1-amd64.deb dpkg -i heartbeat-7.11.1-amd64.deb
Zase v souboru /etc/heartbeat/heartbeat.yml nastavíme propojení s ES a Kibanou.
A ve stejném konfiguračním souboru nastavíme služby, které chceme monitorovat.
Máme 3 možnosti:
- ICMP – Monitor icmp použijte, když chcete jednoduše zkontrolovat, zda je služba k dispozici. Tento monitor vyžaduje přístup root.
- TCP – Pro připojení přes TCP použijte monitor tcp. Tento monitor můžete volitelně nakonfigurovat tak, aby ověřoval koncový bod odesíláním a / nebo přijímáním vlastního paylodu
- HTTP – Pro připojení přes HTTP použijte monitor http. Tento monitor můžete volitelně nakonfigurovat, abyste ověřili, že služba vrací očekávanou odpověď, například konkrétní stavový kód, záhlaví odpovědi nebo obsah.
Protokoly tcp a http podporují SSL / TLS a některá nastavení proxy serveru.
Já jsem si pro testování zprovoznil monitoring SSH, ping na server a samozřejmě monitoring VPS Centra. Doporučujeme ale mrknout na dokumentaci přímo od Heartbeat, kde máte více příkladů a vysvětlivek.
Jestli budeme mít problém s nastavením .yml souboru, tak doporučujeme tento online checker pro správnou syntaxi.
A už pojedeme zase starou klasiku.
heartbeat setup -e service heartbeat-elastic start service heartbeat-elastic status
Vrátíme se do levého menu v Kibaně a půjdeme do sekce “Uptime”.
A už uvidíte přehledný dashboard, kde máte své monitoringy na jednom místě. Můžete vyhledávat konkrétní věci nebo jí využívat jako celkový přehled o dostupnosti služeb.
Doufáme, že návod přinese spousty užitečných informací, rad a hlavně inspiraci. Oba nástroje toho mají ve svém arzenálu spousty, a stačí pouze objevit ty funkce, které přinesou vám tu největší přidanou hodnotu.