Praktické dashboardy a uložená hledání v Graylogu
Praktické dashboardy a uložená hledání v Graylogu
Příklady jsou určené pro menší organizaci s Active Directory, Hyper-V, Microsoft DHCP, MikroTikem a UniFi. Předpokládají výchozí prefixování polí z Beats inputu, které vytváří například winlogbeat_winlog_computer_name a winlogbeat_event_code.
📌 Než dotaz uložíme, otevřeme v Search jednu skutečnou zprávu a ověříme názvy i obsah polí.
⚠️ Pokud Graylog hlásí Unknown field, pole není dostupné ve vybraných streamech nebo časovém rozsahu, případně se v dané instalaci jmenuje jinak.
1. Uložené hledání a dashboard
Saved search uchovává dotaz, časový rozsah, vybrané streamy, filtry a rozložení Search stránky. Používáme jej pro opakované šetření.
Dashboard obsahuje widgety, z nichž každý má vlastní dotaz, streamy a časový rozsah. Používáme jej pro rychlou kontrolu stavu. Hledání lze exportovat do dashboardu, ale pozdější změnu uloženého hledání nepovažujeme za automatickou změnu již vytvořeného widgetu; po úpravě vždy zkontrolujeme obě entity.
📌 Search bar nad dashboardem pouze dočasně přidává nebo přepisuje filtr zobrazených widgetů. Nemění jejich uloženou konfiguraci.
Pracovní postup:
- V
Searchnastavíme čas, stream a dotaz. - Ověříme výsledky na několika zprávách.
- Přes Save vytvoříme uložené hledání.
- Přes Create + vytvoříme widget.
- Widget uložíme do dashboardu a zkontrolujeme jeho vlastní časový rozsah.
2. Praktická uložená hledání
Neúspěšná přihlášení za 24h
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4625
Interaktivní přihlášení uživatelů za 24h
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4624 AND winlogbeat_winlog_event_data_LogonType:(2 OR 7 OR 10 OR 11) AND NOT winlogbeat_winlog_event_data_TargetUserName:/.*\$/ AND NOT winlogbeat_winlog_event_data_TargetUserName:(SYSTEM OR "ANONYMOUS LOGON" OR "LOCAL SERVICE" OR "NETWORK SERVICE") AND NOT winlogbeat_winlog_event_data_TargetUserName:/DWM-.*/ AND NOT winlogbeat_winlog_event_data_TargetUserName:/UMFD-.*/
Typy přihlášení jsou 2 interaktivní, 7 odemknutí, 10 RemoteInteractive/RDP a 11 CachedInteractive. Dotaz záměrně nepočítá síťová přihlášení typu 3, která jsou velmi častá a obvykle nereprezentují uživatele pracujícího na počítači.
PowerShell 4104 za 24h
winlogbeat_winlog_channel:"Microsoft-Windows-PowerShell/Operational" AND winlogbeat_event_code:4104
LDAP 2889 za 24h
winlogbeat_winlog_channel:"Directory Service" AND winlogbeat_event_code:2889
Událost 2889 ukazuje klienty a identity používající nezabezpečené LDAP vazby. Její zapnutí popisuje článek Detekce nezabezpečených LDAP vazeb v prostředí Active Directory.
Microsoft DHCP události za 24h
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")
DHCP01 nahradíme skutečnou hodnotou pole winlogbeat_winlog_computer_name. Oba kanály musí být přidané v konfiguraci Winlogbeatu na DHCP serveru.
Hyper-V administrační události
Pokud Winlogbeat sbírá příslušné kanály:
winlogbeat_winlog_computer_name:(HV01 OR HV02) AND (winlogbeat_winlog_channel:"Microsoft-Windows-Hyper-V-VMMS/Admin" OR winlogbeat_winlog_channel:"Microsoft-Windows-Hyper-V-Worker/Admin")
Chceme-li vybrat jen chyby a varování, nejprve na skutečné zprávě ověříme pole s úrovní a jeho hodnoty. Podle verze ingestu může být dostupné například winlogbeat_winlog_level; neověřený název pole do provozního dotazu nepřidáváme.
MikroTik chyby a přihlášení
source:mikrotik01 AND (error OR critical OR login OR failure OR configuration)
UniFi důležité události
source:(unifi-gateway01 OR unifi-switch01 OR unifi-ap01) AND (error OR disconnect* OR uplink OR wan OR dhcp)
💡 U syslogu upravíme hodnoty source a hledané výrazy podle skutečných zpráv. Text může být závislý na verzi zařízení i jazyku.
3. Vytvoření dashboardu
Otevřeme:
Dashboards / Create new dashboard
Dashboard pojmenujeme například Ranní kontrola infrastruktury. Pro každý widget nastavíme vlastní rozsah 1 day ago - Now; dashboardový filtr pak můžeme použít jen pro dočasné zúžení.
Graylog 7.1 nabízí mimo jiné:
- Aggregation s vizualizací
Data Table,Single Number,Line ChartneboBar Chart - Message Table pro konkrétní zprávy
- Text (Markdown) pro stručný návod k dashboardu
📌 Time Series není samostatný typ widgetu. Časový trend vytvoříme jako Aggregation s Group By = timestamp a vizualizací Line Chart.
4. Počítače, které poslaly Windows logy
Dotaz:
_exists_:winlogbeat_winlog_computer_name
Nastavení widgetu:
- V
Searchověříme dotaz a nastavíme1 day ago - Now. - Klikneme na Create + / Aggregation.
- V Group By ponecháme směr
Rowa vyberemewinlogbeat_winlog_computer_name. - Limit nastavíme alespoň na očekávaný počet zařízení, například
150. - V Metrics zvolíme Latest Value.
- Jako Field vybereme
winlogbeat_@timestampa jako názevPoslední událost. - V Sort zvolíme
Poslední událosta směrDescending. - V Visualization vybereme
Data Table. - Widget pojmenujeme
Počítače, které poslaly logya uložíme.
✅ Výsledkem je jeden řádek na počítač a čas jeho poslední zprávy v daném časovém okně. Count ani Percentage pro tento účel nepotřebujeme, protože by ukazovaly počet nebo podíl zpráv, nikoli stav počítače.
Chceme-li samostatné číslo:
- Vytvoříme další Aggregation nad stejným dotazem.
- Bez
Group Bynastavíme metriku Cardinality. - Jako pole vybereme
winlogbeat_winlog_computer_name. - Vizualizaci nastavíme na
Single Number.
⚠️ Toto číslo je počet unikátních počítačů, které v časovém okně poslaly alespoň jednu zprávu. Nejde o inventář ani důkaz, že jsou právě online. Pro kontrolu úplnosti porovnáme výsledek se seznamem očekávaných zařízení.
5. Uživatelé s úspěšným interaktivním přihlášením
Dotaz:
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4624 AND winlogbeat_winlog_event_data_LogonType:(2 OR 7 OR 10 OR 11) AND NOT winlogbeat_winlog_event_data_TargetUserName:/.*\$/ AND NOT winlogbeat_winlog_event_data_TargetUserName:(SYSTEM OR "ANONYMOUS LOGON" OR "LOCAL SERVICE" OR "NETWORK SERVICE") AND NOT winlogbeat_winlog_event_data_TargetUserName:/DWM-.*/ AND NOT winlogbeat_winlog_event_data_TargetUserName:/UMFD-.*/
Nastavení widgetu:
- V
Searchověříme dotaz a nastavíme1 day ago - Now. - Klikneme na Create + / Aggregation.
- V Group By / Row vybereme
winlogbeat_winlog_event_data_TargetUserName. - Limit nastavíme podle počtu uživatelů.
- V Metrics vybereme Latest Value.
- Jako pole vybereme
winlogbeat_@timestampa názevPoslední přihlášení. - V Sort zvolíme
Poslední přihlášení / Descending. - V Visualization vybereme
Data Table. - Widget pojmenujeme
Uživatelé s úspěšným přihlášeníma uložíme.
Pro počet unikátních uživatelů vytvoříme druhý widget bez Group By, s metrikou Cardinality nad polem winlogbeat_winlog_event_data_TargetUserName a vizualizací Single Number.
⚠️ Widget zobrazuje uživatele zachycené v událostech 4624 vybraných typů. Neukazuje aktuálně přihlášené relace a z absence uživatele nelze odvodit, že není přihlášený na zařízení, které neposílá Security log.
6. Neúspěšná přihlášení
Dotaz:
winlogbeat_winlog_channel:"Security" AND winlogbeat_event_code:4625
Celkový počet
- Vytvoříme Aggregation.
Group Bynepřidáváme.- V Metrics zvolíme Count a pole necháme prázdné.
- V Visualization zvolíme
Single Number. - Widget uložíme jako
Neúspěšná přihlášení za 24h.
Trend v čase
- Nad stejným dotazem vytvoříme další Aggregation.
- V Group By / Row vybereme
timestamp. - V nastavení časového seskupení ponecháme interval
Auto, případně zvolíme1 hour. - V Metrics zvolíme Count a pole necháme prázdné.
- V Visualization vybereme
Line Chart. - Widget uložíme jako
Trend neúspěšných přihlášení.
Pro rychlé určení zdroje lze přidat třetí Data Table, seskupit ji podle winlogbeat_winlog_computer_name nebo pole se zdrojovou IP z konkrétní události a použít metriku Count.
7. PowerShell a LDAP
Poslední PowerShell 4104 události
winlogbeat_winlog_channel:"Microsoft-Windows-PowerShell/Operational" AND winlogbeat_event_code:4104
- Klikneme na Create + / Message Table.
- Ponecháme sloupce
timestamp,winlogbeat_winlog_computer_name,winlogbeat_event_codeamessage. - Widget pojmenujeme
PowerShell 4104 - poslední události.
⚠️ Script Block Logging může obsahovat citlivé příkazy nebo data. Přístup k dashboardu omezíme jen na oprávněné techniky.
Nezabezpečené LDAP vazby
winlogbeat_winlog_channel:"Directory Service" AND winlogbeat_event_code:2889
Vytvoříme dva widgety:
Single Number: metrika Count, pole prázdnéMessage Table: sloupcetimestamp,winlogbeat_winlog_computer_nameamessage
Číselný widget ukáže, zda se problém stále objevuje, a tabulka umožní dohledat klienta a identitu.
8. Microsoft DHCP
Dotaz:
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")
Přehled typů událostí
- Vytvoříme Aggregation.
- V Group By / Row vybereme
winlogbeat_event_code. - V Metrics přidáme Count s prázdným polem.
- Přidáme druhou metriku Latest Value nad
winlogbeat_@timestampa pojmenujeme jiPoslední událost. - V Sort zvolíme
Poslední událost / Descending. - V Visualization zvolíme
Data Table. - Widget uložíme jako
Microsoft DHCP - typy událostí.
Poslední události
Nad stejným dotazem vytvoříme Message Table se sloupci timestamp, winlogbeat_winlog_computer_name, winlogbeat_event_code a message.
📌 Bez znalosti konkrétních event ID netvrdíme, že každá událost je chyba; význam kódu ověříme v textu zprávy a v dokumentaci Microsoftu.
9. Síť a Hyper-V
Pro MikroTik a UniFi vytvoříme Message Table nad ověřenými dotazy ze sekce 2 a ponecháme timestamp, source a message. Další Data Table lze seskupit podle source, přidat metriku Latest Value nad timestamp a získat tak poslední událost od každého síťového zařízení.
Pro Hyper-V je praktičtější sbírat administrační kanály Microsoft-Windows-Hyper-V-VMMS/Admin a Microsoft-Windows-Hyper-V-Worker/Admin než hledat slova error a fail pouze v obecných logách System a Application. Nad těmito kanály vytvoříme:
Message Tables posledními konkrétními událostmiData Tableseskupenou podlewinlogbeat_event_code, s metrikouCount
Pokud potřebujeme pouze chyby, filtrujeme podle skutečné hodnoty pole s úrovní události nebo podle ověřeného seznamu event ID.
10. Co kontrolovat každé ráno
Na jednom dashboardu obvykle stačí:
- poslední zpráva od každého Windows počítače
- počet unikátních počítačů proti očekávanému počtu
- poslední interaktivní přihlášení uživatelů
- počet a trend událostí
4625 - počet událostí
2889 - poslední důležité DHCP, Hyper-V a síťové zprávy
⚠️ Dashboard není náhradou inventáře, aktivního monitoringu ani systému pro správu relací. Ukazuje pouze to, co lze odvodit ze zpráv přijatých ve zvoleném časovém okně.
Shrnutí
✅ Uložená hledání používáme pro opakované šetření, dashboard pro rychlou provozní kontrolu.
✅ Každý widget vytváříme nad dotazem ověřeným na skutečných zprávách.
✅ Počítače a uživatele počítáme pomocí Cardinality, poslední aktivitu pomocí Latest Value.
✅ Trend vytváříme jako Aggregation s timestamp a vizualizací Line Chart.
⚠️ Widgety ukazují pouze události přijaté ve zvoleném časovém okně, nikoli úplný inventář nebo online stav.