Tento článek jsem napsal pro časopis Connect a vyšel v čísle Connect 09/09, zde jej publikuji s laskavým svolením redakce.
Co monitoring dává a jaké technologie jsou k dispozici
Monitoring má mnoho podob a můžeme využít řadu technologií a protokolů. Celý monitorovací systém můžeme postavit na vlastních skriptech či na bezplatných řešeních, kdy investujeme pouze svůj čas a znalosti. Nebo využít některý z rozsáhlé nabídky komerčních produktů.
Pokud nebudeme spoléhat na cizí aplikace, ale vytvoříme vlastní skripty či programy, tak budeme mít detailní přehled o tom, jak monitoring probíhá, a naše řešení bude přesně odpovídat našim potřebám. Musíme však mít hlubší znalosti skriptování či programování, spolu se znalostí síťových protokolů a technologií. Navíc je tvorba takového řešení časově náročná.
Produkty zdarma jsou často značně univerzální se širokými možnostmi konfigurace. Vyžadují však také hlubší znalosti pro nastavení, protože některé konfigurace znamenají psaní vlastních skriptů. Výhoda je, že máme komplexní prostředí (které zahrnuje třeba konfiguraci, dashboard, zpracování grafů) a na míru nastavujeme pouze určité šablony pro získávání dat.
Oproti tomu komerční produkty většinou nainstalujeme na pár kliknutí a monitorování rozchodíme během pár minut. Stačí znát adresy zařízení, a jaké údaje na nich chceme monitorovat. Většinou jsou zde připraveny šablony pro jednotlivé oblasti. To nám ovšem zároveň omezuje možnosti použití.
Samozřejmě nic není pouze bílé nebo černé, takže i do komerčních aplikací můžeme dopisovat vlastní skripty. A nalezneme i volně šiřitelné systémy, které jsou připravené na nejběžnější nasazení.
Některé monitorovací systémy
Zdarma - Nagios, Cacti, Zabbix
Placené - Zenoss, PacketTrap pt360, WhatsUp Gold
Od velkých firem - Microsoft System Center Operations Manager, HP OpenView, IBM Tivoli Netcool, CiscoWorks LAN Management Solution
Co chceme sledovat?
Než začneme vlastní monitoring plánovat, je třeba si uvědomit, co přesně chceme sledovat. A jaké výstupy z monitoringu jsou pro nás prioritní. Podle toho je třeba zvolit použité technologie. I když existují rozsáhlé systémy s řadou komponent, tak asi nenalezneme monitorovací nástroj, který by obsáhl všechny oblasti, které potřebujeme sledovat ve větší firmě. Musíme tedy kombinovat více produktů.
Na monitoring se můžeme dívat ze dvou pohledů. Chceme se dozvědět, že někde došlo k problému. Tedy, že něco přestalo fungovat či byl překročen nějaký kritický limit. Nebo chceme získávat aktuální (ale i historické) informace o určitém systému. To může být pohled na vytížení serveru, abychom plánovali jeho další využití. Přehled, kde v síti (do jakého portu jakého switche) je připojen klient s jakou IP a MAC adresou. Či sledování vytížení datových linek.
Oblasti pro monitoring
Pokusíme se nyní zamyslet, co vše je možné v počítačové síti monitorovat. Nejprve z obecnějšího hlediska můžeme uvést monitoring:
- serverů a jejich služeb
- aktivních síťových prvků
- síťové komunikace/provozu
- bezpečnosti
K tomu se přidávají určité specifické oblasti, kdy si v základu vystačíme se stejným monitoringem, jako pro výše uvedené skupiny, ale můžeme získat více použitím specializovaného nástroje. To jsou oblasti jako IP telefonie, bezdrátové sítě a virtuální prostředí.
Když půjdeme hlouběji, tak nás může zajímat:
- dostupnost serverů
- dostupnost služeb/aplikací (spolu s latencí – reakční dobou)
- události na serverech
- vytížení zdrojů (procesor, paměť, disk)
- vytížení linek – měření přenosu dat
- statistiky síťového provozu
- analýzy nestandardního chování v síti
- informace o portech switchů
- monitoring speciálních oblastí jako je WiFi či IP telefonie
- bezpečnostní incidenty

Technologie pro monitoring
Pokud použijeme nějaký komplexní monitorovací systém pro dohled serverů, tak máme většinou dvě základní možnosti pro přístup k informacím.
Monitorování s agentem, kdy na server instalujeme speciálního klienta. Musíme tedy mít k dispozici agenta pro daný operační systém, musíme mít možnost na sever instalovat a přibývá další aplikace, která může způsobovat problémy. Na druhou stranu dostaneme širokou škálu údajů, které můžeme ze serveru získávat.
Druhou možností je monitorování bez agenta, kdy se testují vlastní služby serveru nebo se data získávají pomocí určitých standardních protokolů (jako SNMP, WMI, IPMI).
Výše jsme si popsali oblasti, které bychom pomocí monitoringu chtěli sledovat. Nyní uvedeme stručný seznam technologií, které můžeme pro tento monitoring použít, ať již samostatně nebo uvnitř monitorovacího systému.
- dostupnost serveru pomocí ping testu
- dostupnost služby pomocí navázání TCP spojení nebo na aplikační úrovni
- události ze serverů - Syslog
- získávání údajů pomocí klienta
- získávání údajů pomocí monitorovacích protokolů WMI, SNMP, IPMI
- sledování síťových toků - NetFlow
- analýza síťových protokolů - network protocol analyzer
- bezpečnost v síti - IDS/IPS
Výstupy monitoringu – reporty a alerty
Můžeme si nastavit perfektní monitoring, který bude hlídat a zaznamenávat vše v naší síti, ale pokud nebudeme mít přehledné, dostupné a často i inteligentní výstupy, tak ničeho nedosáhneme. Proto je důležité již od začátku plánovat, jaký výstup pro jakou oblast je pro nás nejvhodnější.
Z pohledu typů dat máme dvě základní oblasti. Jedna jsou události, které získáme pomocí Syslogu, WMI či SNMP trapů ze serverů, switchů a dalších zařízení. Druhá jsou hodnoty, často číselné, ukazující okamžitý stav nějaké vlastnosti. K tomu se ještě přidává otázka, zda nás zajímá okamžitý stav nebo potřebujeme ukládat historii, jak se hodnoty mění v čase.
Pro různé sledované údaje se samozřejmě hodí různá reprezentace. Vytížení procesoru nás zajímá v určité časové periodě a vhodné zobrazení je grafem. Stavy portů switche naopak chceme vidět aktuální a přehledná je tabulka. Dostupnost serveru za období se může zobrazit jednou procentuální hodnotou.
Pro globální pohled na síť je výhodná grafická reprezentace, kdy vidíme pohled na schéma sítě nebo její časti. Pokud dojde někde k problému, tak se daný prvek zvýrazní a po rozkliknutí dostaneme detailní informace. Vedle toho můžeme mít zobrazeny kategorie událostí podle závažnosti zobrazující počet nevyřešených incidentů.
Výše popsané reprezentace jsou zajímavé a v určitých situacích užitečné. Pokud se však jedná o bezpečnostní nebo havarijní události, a my nemáme dohledový tým, který neustále sleduje dashboard monitorovacího systému, tak je mnohem užitečnější vygenerování a odeslání emailové nebo SMS zprávy (třeba pomocí IP GSM brány). Můžeme takto zasílat důležité zprávy pro informaci a kritické zprávy, abychom provedli rychlou reakci.

Nad událostmi ze serverů a aktivních prvků, či také nad datovými toky z NetFlow, může běžet inteligentní systém, který vyhodnocuje množství dat z různých systémů, hledá mezi nimi souvislosti, a generuje bezpečností varování. Případně rovnou provádí určitou reakci, jako je zablokování portu switche, ze kterého se šíří útoky do sítě.
Dostupnost zařízení/služby
Podíváme se nyní trochu blíže na základní technologie pro monitoring.
Asi první věcí, kterou začneme monitorovat, je dostupnost serveru či aktivního síťového prvku. V malé firmě, kde máme jeden dva servery, se nedostupnost projeví patrně velice záhy. Ve větším prostředí se však mohou začít kupit problémy navazujících služeb, a může trvat delší dobu, než někdo zaregistruje nedostupnost nějakého serveru či síťové cesty (které bývají často redundantní).
Běžně se dostupnost zařízení zjišťuje pomocí jednoduché metody ICMP echo request/response (tedy ping). Případně se používá tzv. „SNMP ping“, což je SNMP dotaz na běžné OID. Takto můžeme zjistit, zda je dané zařízení „živé“ a měřit dobu odezvy (latency). Nedozvíme se však, že třeba webový server Apache neběží. Proto je dalším krokem monitoring dostupnosti aplikační služby.
Většina běžných síťových služeb využívá protokol TCP a poslouchá na nějakém portu. Takže můžeme testovat, zda se nám na server podaří navázat TCP spojení na daný port. To znamená, že daná služba běží a poslouchá. Lepším ověřením je aplikační test, kdy ověříme, že se služba chová jak má. Takže například pro webserver se připojíme ke stránce a ověříme, zda vrací v hlavičce kód 200. Pro mail server zavoláme základní SMTP příkazy pro navázání spojení se serverem apod.
Syslog – události ze serverů
Syslog je standard pro přeposílání zpráv z logů po síti. Slouží k tomu, abychom koncentrovali logy z různých zařízení a jejich aplikací na jedno místo a mohli na ně reagovat. Na klientovi potřebujeme aplikaci, která odesílá zprávy z logu, tak jak přibývají, pomocí protokolu Syslog. A potom potřebujeme Syslog server, který tyto zprávy přijímá a zpracovává.
V oblasti Linuxu se jedná o běžnou záležitost. Trochu složitější je situace v Microsoftím světě. Windows si sami vytváří řadu logů označovaných jako Event Log a různé servery přidávají další logy. Tyto logy jsou v MS formátu a nativně nemáme žádnou podporu pro Syslog. Na internetu však nalezneme zdarma aplikace, které fungují jako Syslog server, například Kiwi Syslog Server. A také klienty, kteří přeposílají vybrané události z Event Logu, příkladem je Snare Agent for Windows nebo SaberNet NTsyslog.
Syslog je velice užitečný, protože do logů přibývají běžně stovky zpráv za minutu a pro desítky zařízení nemáme šanci tyto informace procházet. Na Syslogu můžeme vytvořit skripty, které analyzují příchozí zprávy a upozorní nás na problémy. Například ze Security logu Windows můžeme číst špatné pokusy o přihlášení a když se jeden účet snaží v určitém časovém intervalu přihlásit mnohokrát, tak odeslat email správci, že se může jednat o útok.
Druhou výhodou je, že můžeme uchovávat velké množství zpráv, tedy dlouhou historii. Řada zařízení dokáže lokálně uložit pouze omezené množství logů. Navíc máme tyto logy dostupné, i když není dostupný server. Pokud došlo na serveru k poruše nebo byl napaden útočníkem a my se nemůžeme přihlásit, abychom si přečetli lokální log. Tak na Syslogu nalezneme zprávy, které se uložily těsně před tím, než přestal server odpovídat.
Monitoring je oblast kreativní a nikde není dáno, jak jej musíme provádět. Vše záleží na našich potřebách, schopnostech a přáních. Zde jsme si pouze uvedli možnosti, které můžeme použít. Příště se podíváme podrobněji na základní protokol pro síťovou správu, což je SNMP. A také na protokol pro sledování toků v síti, tedy NetFlow.
Použité zkratky
ICMP - Internet Control Message Protocol
SNMP - Simple Network Management Protocol
OID – Object Identifier
WMI - Windows Management Instrumentation
IPMI - Intelligent Platform Management Interface
IPS - Intrusion Prevention System
IDS - Intrusion Detection System
IP – Internet Protocol
TCP - Transmission Control Protocol
MAC – Media Access Control
Zdravím všechny, já osobně ve firmě používám zabbix. Za tu cenu 0,- :-) je to nejlepší. Takže pokud by měl někdo zájem mohu poslat základní templates na cisco 2950, 2960 a windows servery.
odpověď na [1]Benda:
Dobrý den,
měl bych zájem o ty templates pro Cisco 2950, 2960 a hlavně pro Win. Pošlete mě to prosim na JamesGNR@seznam.cz. Děkuji.
tiez by ma zaujimali tie templaty. Mohol by si to uploadnut na nejaky server a poslat link?
Dobrý den,
V rámci své práce jsem implementoval již celou řádku monitorovacích/dohledových systémů a ještě bych doporučil velmi kvalitní projekt OPENNMS (opennms.org) psaný v JAVĚ a tím pádem (spolu s DB PostgreSQL) jede nejen na *NIXech, ale také na platformě MS, s tím, že jeho přístup k dohledu je více směrován na I/O.
A abych nezapomněl, projekt Zenoss je samozřejmě také zdarma (jak Zenoss Core, tak většina ZenPacků (tj. modulů) je OpenSource), placená je pouze podpora jako enterprise verze (to samá platí vlastně i pro ostatní systémy).
odpověď na [2]Jakub: Templates obecně nejsou problém, jde spíš o dohledový systém, který chcete používat (resp. a to je důležitější, JAK ho chcete používat) a podle toho se rozhodnout - například grafická nadstavba Nagiosu Centreon má naprostou většinu templatů již v sobě (je to dáno hlavně výrazně vyšší složitostí a možností systému), Zabbix má pár základních template, které pro jeho potřeby většinou naprosto vyhovují a Zenoss distribuuje templaty sebou (relativně dostačující základ) a snad vše na co si vzpomenete je možné implementovat pomocí ZenPacks, které downloudujete tak jako tak (zenpacks nejsou jen templates, ale také podpora např. WMI monitoringu, jabberu, apod.).
Dobrý den,
zajímalo by mě, jak by se dalo vyřešit nějakými free nástroji toto:
Potřebuji sledovat Windows/Linux servery, hlídat různé údaje z HW, log soubory, dělat reporty a mít to v nějakém jednoduchém administračním rozhraní (webovém nejlépe) s apachem,php,sql databází pro shromažďování dat. Něco na bázi syslogu, nagiosu, muninu ale v jednom?
Díky za odpovědi...
odpověď na [6]hofikhof: Dobry den, potreby mam temer stejne a velmi se nam osvedcil projekt opsview /naddstavba nagiosu, byvali centron/. Muzu poskytnou radu ci pomoct v pripade zajmu. :o)
odpověď na [1]Benda: Dobrý den,
rád bych Vás požádal o template na Cisco 2950 24ports. Můžete mi ji zaslat na mail skrabaj@post.cz? Byl bych Vám moc vděčný. Pořád se mi nedaří upravit verzi pro 48ports.
odpověď na [7]Honza Prokůpek: Muzete prosim uvest kam na vas smerovat dotazy ohledne OPSVIEW?
My v práci používáme na sledování sítě (CISCO zařízení) prográmek The Dude. Sledujeme dostupnost zařízení pomocí pingu a pomocí SNMP sledujeme vytížení linek + se ukládá historie vytížení do grafů. Velice dobrý nástroj zdarma. Funguje pod Windows.
Také není špatný prográmek NeDi pro monitoring sítě.
Zajímavá volba je www.check-zone.cz. Jedná se online monitorovací portál. Není potřeba nic instalovat ;) Stačí v pohodlí webového prohlížeče zadat servery a jejich služby které chceme sledovat.