Munin Node (OFT)

Munin je síťový nástroj pro sledování zdrojů, určený k analýze jejich průběhu a následnému vyvození výkonnostních problémů (nejčastěji pro případ linuxového serveru).

Jeho instalace a nastavení je pro každého linuxového amatéra nadšence velice jednoduchá – v případě distribuce Debian stačí nainstalovat balíček a odpovídajícím způsobem upravit soubory nastavení s typickou příponou „conf“ a to pro samotný Munin a aliasů v nastavení Apache2.

Munin-node je pak označení pro serverového klienta zprostředkovávajícího samotná data k zaznamenání a jejich následné prezentaci v podobě grafů, které jsou generovány na straně samotného klienta.

Jak už to bývá, je možné, že budete chtít zaznamenat i informace z jiných operačních systémů, než jakým je Linux. Pro Windows je k dispozici serverový klient Munin-node-win32, který je k nalezení na GitHub.

K monitorování prostředků v reálném čase však Munin příliš vhodný není. Zaznamenává totiž informace od klientů pouze jednou za pět minut a i když je možné poslat serveru data snímkovaná rychlostí až jeden záznam za vteřinu, tento zobrazí v grafu pouze jednu hodnotu (požadovaným způsobem vykalkulovanou z celého balíčku obdržených hodnot) právě pro časový úsek pěti minut. A v tomto případě jsem narazil na problém s „Munin-node-win32“, který sice umožňuje čítat hodnoty ze sledování prostředků Windows, avšak snímá pouze jedinou hodnotu pro celý pětiminutový úsek a to tu aktuální v čase požadavku serveru na tohoto klienta, čímž se stává nepoužitelný pro čítače aktualizující svou absolutní hodnotu na vyšší frekvenci – kterými jsou např. čítače přijatých a odeslaných byte přes síťová rozhraní. Sice bych mohl upravit zdrojový kód napsaný v jazyku C++, avšak to by zabralo zbytečně mnoho času. Rozhodl jsem se proto jít jinou cestou. Na domovské stránce Muninu je odkaz na serverového klienta napsaného v jazyce Python, tento kód je však sedm let starý a po jeho prozkoumání s verzí Python 3.8 zjistíte, že jako takový nefunguje. Nastal tak čas úprav a přepisování…

Výsledkem je jeden Pythonový skript, který jsem „skromně“ pojmenoval Munin-Node-OFT (MNOFT). Při jeho otevření v textovém editoru je jeho funkce (po seznámením síťového komunikačního protokolu Muninu) sama o sobě vypovídající.

Výše zmíněný skript lze snadno upravit podle vašich požadavků a spustit jako o samotě stojící aplikaci nebo nainstalovat jako systémovou službu Windows, k čemuž potřebujete pouze instalaci Pythonu 3.8 (na dřívějších verzích netestováno) a pro ni instalovaný balíček PyWin32.

Skript funguje i s vynikajícím PyInstallerem (a vytvoření o samotě stojícího spustitelného souboru je výtečnou volbou). Jako “–hidden-import” přidejte “win32timezone” a exportujte jako konzolovou aplikaci.

MNOFT.py.zipzazipovaný skript (hezkou zábavu 🙂 )

Co si dělá PC v mé nepřítomnosti?

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *