Praktické dashboardy a uložená hledání v Graylogu
Praktické dashboardy a uložená hledání v Graylogu
Jakmile už do Graylogu posíláme logy z Windows serverů, stanic a síťových prvků, další logický krok je udělat si z něj nástroj pro každodenní provoz. K tomu nejlépe slouží uložená hledání a dashboardy.
Tento článek je zaměřený prakticky. Představuje menší organizaci, kde máme například:
- Active Directory
- Hyper-V hosty
- MikroTik router
- UniFi gateway, switche a access pointy
Cílem není vytvořit „krásný“ dashboard, ale dashboard, který technikovi ráno během pár minut ukáže, jestli se v infrastruktuře děje něco podezřelého nebo rozbitého.
Navazuje na článek První kroky v Graylogu a na nastavení Winlogbeatu pro odesílání logů do Graylogu.
1. Uložené hledání vs. dashboard
Graylog rozlišuje dvě věci:
- Saved search - uloží si dotaz, časové okno, streamy a případné filtry
- Dashboard - zobrazí vybraná data pomocí widgetů
Prakticky:
- saved search používáme pro opakované šetření
- dashboard používáme pro rychlý přehled
Dobrá praxe je začít vždy nejprve saved searchem. Až když se dotaz osvědčí, uděláme z něj widget nebo celý dashboard.
📌 Graylog dokumentuje, že saved search může uchovávat nejen samotný query string, ale i časové okno, filtry a parametry. To je důvod, proč je lepší stavět dashboardy právě nad promyšlenými hledáními a ne všechno klikat od nuly.
2. Doporučený pracovní postup
Praktický a dobře udržitelný postup bývá tento:
- Nejprve si v Search ověříme, že dotaz opravdu vrací užitečná data.
- Hledání si uložíme jako saved search.
- Ze saved search nebo přímo ze Search stránky vytvoříme widget.
- Widget přidáme do nového nebo existujícího dashboardu.
- Dashboard doplníme o krátký textový widget s vysvětlením, co má technik sledovat.
Tento postup je lepší než budovat dashboard rovnou, protože:
- dotazy se lépe ladí v Search stránce
- stejné hledání můžeme použít na více dashboardech
- změna dotazu je pak jednodušší a přehlednější
3. Jak vytvářet saved searches
Ze Search stránky:
- nastavíme query
- zvolíme správné časové okno
- případně omezíme stream
- klikneme na Save
- uložíme hledání pod srozumitelným názvem
Dobré názvy saved searches jsou například:
Neúspěšná přihlášení za 24hPowerShell 4104 za 24hLDAP 2889 za 24hMikroTik chyby a přihlášeníUniFi události za 24hHyper-V hosty - chyby a varování
📌 Graylog si pamatuje i historii dotazů, ale to nestačí jako náhrada za saved searches. Pro provozní použití se vyplatí ukládat jen ta hledání, která se budou skutečně opakovat.
4. Praktická uložená hledání
Níže jsou příklady saved searches, které dávají smysl pro menší infrastrukturu.
4.1 Neúspěšná přihlášení do Windows
Doporučený název saved search:
Neúspěšná přihlášení za 24h
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4625
Doporučené časové okno:
Last 24 hours
K čemu se hodí:
- ranní kontrola přihlašovacích problémů
- odhalení bruteforce nebo špatně uložených hesel ve službách
4.2 PowerShell script block logging
Doporučený název saved search:
PowerShell 4104 za 24h
winlogbeat_winlog_channel:"Microsoft-Windows-PowerShell/Operational" AND winlogbeat_event_code:4104
K čemu se hodí:
- dohledání spuštěných PowerShell skriptů
- rychlá kontrola podezřelé aktivity na serverech
4.3 Nešifrované LDAP dotazy
Doporučený název saved search:
LDAP 2889 za 24h
winlogbeat_winlog_channel:"Directory Service" AND winlogbeat_event_code:2889
K čemu se hodí:
- dohledání zařízení nebo aplikací, které stále používají nešifrovaný LDAP
Navazuje na článek o detekci nešifrovaného LDAPu.
4.4 Hyper-V hosty - chyby a varování
Doporučený název saved search:
Hyper-V hosty - chyby a varování
Pokud do Graylogu posíláme z Hyper-V hostů alespoň standardní Application a System logy, může být praktické například toto hledání:
winlogbeat_winlog_computer_name:(HV01 OR HV02) AND (winlogbeat_winlog_channel:"System" OR winlogbeat_winlog_channel:"Application") AND (error OR fail* OR critical)
K čemu se hodí:
- rychlá kontrola problémů na hostech virtualizace
- dohledání výpadků služeb, storage nebo síťových problémů
📌 Názvy HV01 a HV02 upravíme podle skutečných hostname.
📌 Pokud sbíráme i další Hyper-V specifické logy, můžeme saved search rozšířit o další channel názvy.
4.5 MikroTik - chyby, přihlášení a změny konfigurace
Doporučený název saved search:
MikroTik chyby a přihlášení
U síťových prvků bývá nejpraktičtější začít přes pole source a message, protože přesný formát syslogu se může lišit podle verze a konfigurace.
Například:
source:mikrotik01 AND (error OR critical OR login OR failure OR configuration)
K čemu se hodí:
- kontrola přihlášení administrátorů
- podezřelé změny konfigurace
- chybové stavy routeru
4.6 UniFi - důležité infrastrukturní události
Doporučený název saved search:
UniFi události za 24h
Například:
source:(unifi-gateway01 OR unifi-switch01 OR unifi-ap01) AND (error OR disconnect* OR uplink OR wan OR dhcp)
K čemu se hodí:
- odpojování zařízení
- výpadky uplinku
- problémy s WAN nebo DHCP
📌 U MikroTiku a UniFi je vhodné nejdřív v Search stránce ručně projít několik reálných zpráv a podle nich si doladit konkrétní textové výrazy v query.
4.7 Microsoft DHCP - administrace a provoz
Doporučený název saved search:
Microsoft DHCP události za 24h
Pokud máme DHCP server například DHCP01, může být praktické toto hledání:
winlogbeat_winlog_computer_name:DHCP01 AND (winlogbeat_winlog_channel:"Microsoft-Windows-DHCP Server Events/Admin" OR winlogbeat_winlog_channel:"Microsoft-Windows-DHCP Server Events/Operational")
K čemu se hodí:
- změny scope, option a dalších DHCP nastavení
- kontrola startu a chyb DHCP služby
- dohledání stavových změn u DHCP failoveru
📌 Na DHCP serverech bývají pro běžný provoz nejzajímavější kanály Microsoft-Windows-DHCP Server Events/Admin a Microsoft-Windows-DHCP Server Events/Operational.
📌 Pokud tyto události v Graylogu nevidíme, je potřeba je přidat do sběru ve Winlogbeatu na DHCP serveru.
5. Jak z hledání udělat widget
Po provedení hledání klikneme v Search stránce na Create + a vybereme vhodný typ widgetu.
V praxi se nejčastěji hodí:
- Aggregation widget - graf, single number nebo tabulka nad agregovanými daty
- Message table widget - tabulka konkrétních zpráv
- Text (Markdown) widget - vysvětlení, co dashboard sleduje
Doporučení:
- pro „kolik toho bylo“ použijeme Single Number
- pro vývoj v čase použijeme Line Chart nebo Bar Chart
- pro přehled top hodnot použijeme Data Table
- pro konkrétní poslední události použijeme Message Table
📌 V aktuálním Graylogu není Time Series samostatný typ widgetu. Pro trend v čase vytvoříme Aggregation widget a jako vizualizaci zvolíme typicky Line Chart.
📌 Akce Show Top Values není samostatný typ widgetu. Je to jen rychlá cesta k vytvoření Data Table s nejčastějšími hodnotami pole.
📌 Graylog uvádí, že dashboard má vlastní search bar, ale ten pouze dočasně přepisuje dotazy widgetů. Nemění trvale jejich uloženou logiku. Proto je důležité mít widgety správně nastavené už při jejich vytvoření.
6. Praktický dashboard č. 1 - Ranní kontrola infrastruktury
Časové okno:
Last 24 hours
Na tento dashboard dává smysl dát jen několik widgetů, které technik zkontroluje během pár minut.
6.1 Počítače, které poslaly logy
Dotaz:
_exists_:winlogbeat_winlog_computer_name
Postup:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeAggregation. - V
VisualizationzvolímeData Table. - V
Group by Rowvyberemewinlogbeat_winlog_computer_name. - V
MetricspřidámeLatest Value. - Jako
Fieldvyberemewinlogbeat_@timestamp. - Do
Namemůžeme zadat napříkladPoslední událost. - Volitelně přidáme i
Count, pokud chceme vedle času vidět i počet zpráv. - Widget uložíme do dashboardu.
Výsledek:
- seznam počítačů a čas poslední přijaté události od každého z nich
- rychlá kontrola, jestli některý server nebo stanice nepřestaly posílat logy
Pokud chceme místo seznamu jen číslo, vytvoříme druhý widget Single Number a jako metriku zvolíme funkci pro unikátní počet hodnot nad winlogbeat_winlog_computer_name.
6.2 Uživatelé s úspěšným přihlášením
Dotaz:
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4624 AND NOT winlogbeat_winlog_event_data_TargetUserName:/.*\$/ AND NOT winlogbeat_winlog_event_data_TargetUserName:SYSTEM
Postup:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeAggregation. - V
VisualizationzvolímeData Table. - V
Group by Rowvyberemewinlogbeat_winlog_event_data_TargetUserName. - V
MetricspřidámeLatest Value. - Jako
Fieldvyberemewinlogbeat_@timestamp. - Do
Namemůžeme zadat napříkladPoslední přihlášení. - Volitelně přidáme i
Count, pokud chceme vedle času vidět i počet logon událostí. - Widget uložíme do dashboardu.
Výsledek:
- seznam uživatelů a čas jejich posledního zachyceného přihlášení
- rychlý přehled přihlašovací aktivity za posledních 24 hodin
Tento dotaz už odfiltruje počítačové účty končící znakem $ i účet SYSTEM. Pokud chceme ještě čistší přehled, můžeme navíc vyloučit například ANONYMOUS LOGON nebo konkrétní servisní účty. Pokud chceme místo seznamu jen číslo, vytvoříme druhý widget Single Number a zvolíme metriku pro unikátní počet hodnot nad winlogbeat_winlog_event_data_TargetUserName.
6.3 Počet neúspěšných přihlášení
Dotaz:
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4625
Postup:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeAggregation. - V
VisualizationzvolímeSingle Number. - V
Metricnastavímecount(). - Widget uložíme do dashboardu.
Výsledek:
- jedno číslo, které rychle ukáže, jestli v posledních 24 hodinách nevyskočil počet chybných přihlášení
6.4 Trend neúspěšných přihlášení
Dotaz:
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4625
Postup:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeAggregation. - V
VisualizationzvolímeLine Chart. - V
Group by Rowvyberemetimestamp. - V
Metricnastavímecount(). - Widget uložíme do dashboardu.
Výsledek:
- graf, který ukáže, jestli jde o ojedinělý problém, nebo o soustavný nárůst
6.5 Poslední PowerShell 4104 události
Dotaz:
winlogbeat_winlog_channel:"Microsoft-Windows-PowerShell/Operational" AND winlogbeat_event_code:4104
Postup:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeMessage Table. - V tabulce ponecháme nebo doplníme sloupce
timestamp,winlogbeat_winlog_computer_name,winlogbeat_event_codeamessage. - Widget uložíme do dashboardu.
Výsledek:
- poslední PowerShell script block události na jednom místě
6.6 LDAP 2889 za posledních 24 hodin
Dotaz:
winlogbeat_winlog_channel:"Directory Service" AND winlogbeat_event_code:2889
Postup pro rychlý přehled:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeAggregation. - V
VisualizationzvolímeSingle Number. - V
Metricnastavímecount(). - Widget uložíme do dashboardu.
Postup pro detail:
- Nad stejným dotazem klikneme na
Create +a vyberemeMessage Table. - V tabulce ponecháme hlavně
timestamp,winlogbeat_winlog_computer_nameamessage. - Widget uložíme do dashboardu.
Výsledek:
- jedno číslo pro rychlou kontrolu
- jedna tabulka pro dohledání konkrétních LDAP klientů
6.7 Poslední důležité síťové události
Dotaz:
(source:mikrotik01 OR source:unifi-gateway01 OR source:unifi-switch01 OR source:unifi-ap01) AND (error OR critical OR disconnect* OR wan OR uplink)
Postup:
- V
Searchvložíme dotaz výše. - Klikneme na
Create +a vyberemeMessage Table. - V tabulce ponecháme hlavně
timestamp,sourceamessage. - Widget uložíme do dashboardu.
Výsledek:
- rychlý přehled síťových problémů bez nutnosti ručně procházet každý zdroj zvlášť
7. Praktický dashboard č. 2 - Active Directory a bezpečnost
Tento dashboard se hodí, pokud chceme mít bokem samostatný pohled na doménové řadiče a bezpečnostní události.
Časové okno:
Last 24 hours
Doporučené widgety:
- Data Table seskupená podle
winlogbeat_winlog_computer_namepro event4625 - Message Table pro
2889 - Line Chart pro
4104 - Message Table pro logy z doménových řadičů s filtrem na konkrétní servery
Příklad dotazu:
winlogbeat_winlog_computer_name:(DC01 OR DC02) AND (winlogbeat_event_code:4625 OR winlogbeat_event_code:2889 OR winlogbeat_event_code:4104)
Tento dashboard je vhodný, když:
- technik řeší problém s přihlášením
- kontroluje LDAP klienty
- potřebuje rychle dohledat podezřelou PowerShell aktivitu
8. Praktický dashboard č. 3 - Síť a virtualizace
Třetí dashboard se hodí pro infrastrukturu mimo Active Directory.
Doporučené widgety:
- Message Table pro MikroTik chyby a přihlášení
- Message Table pro UniFi události
- Single Number nebo Line Chart pro Hyper-V chyby
- Message Table pro poslední Microsoft DHCP události
- Data Table seskupená podle
winlogbeat_event_codepro Microsoft DHCP - Data Table seskupená podle
source, pokud chceme vidět, které zařízení generuje nejvíc událostí
Příklad pro Hyper-V:
winlogbeat_winlog_computer_name:(HV01 OR HV02) AND (winlogbeat_winlog_channel:"System" OR winlogbeat_winlog_channel:"Application") AND (error OR fail* OR critical)
Příklad pro síť:
source:(mikrotik01 OR unifi-gateway01 OR unifi-switch01 OR unifi-ap01) AND (error OR critical OR warning OR disconnect* OR uplink OR wan)
Příklad pro Microsoft DHCP:
winlogbeat_winlog_computer_name:DHCP01 AND (winlogbeat_winlog_channel:"Microsoft-Windows-DHCP Server Events/Admin" OR winlogbeat_winlog_channel:"Microsoft-Windows-DHCP Server Events/Operational")
📌 U menší organizace je často praktičtější mít tento dashboard jednodušší. Není nutné se snažit zobrazit všechno najednou.
9. Co se na dashboard hodí a co ne
Na dashboard se dobře hodí:
- počet událostí
- trend v čase
- top zdroje
- posledních několik důležitých zpráv
Na dashboard se naopak moc nehodí:
- příliš široké message table bez filtru
- složité jednorázové investigativní dotazy
- widgety, které vrací stovky nerelevantních zpráv
Praktické pravidlo:
- pokud je cílem rychlý přehled, patří to na dashboard
- pokud je cílem hlubší šetření, patří to spíš do saved search
10. Doporučení pro udržitelnost
Aby dashboardy zůstaly použitelné i za několik měsíců, je dobré držet několik pravidel:
- dávat saved searchům i dashboardům srozumitelné názvy
- mít jeden dashboard pro ranní kontrolu a další jen pro specializované oblasti
- nepřidávat na jeden dashboard příliš mnoho widgetů
- používat textový widget s krátkým popisem účelu dashboardu
- jednou za čas projít, které widgety už nejsou užitečné
Pokud více techniků sdílí stejný Graylog, dává smysl dashboardy a saved searches i sdílet nebo organizovat do kolekcí.
Shrnutí
✅ Saved searches jsou nejlepší základ pro opakovanou práci v Graylogu
✅ Dashboard má sloužit hlavně pro rychlou orientaci, ne pro detailní šetření
✅ Pro menší organizaci obvykle stačí jeden ranní dashboard a několik specializovaných pohledů
✅ U Windows logů se opíráme hlavně o winlogbeat_winlog_computer_name, winlogbeat_winlog_channel a winlogbeat_event_code
✅ U MikroTiku a UniFi je praktické začít přes source a message a query doladit podle reálných logů