Interní projekt vznikl jako reakce na potřebu efektivně sledovat provozní stav lokálních i zákaznických serverů, na kterých běží klíčové služby. Ve firmě bylo běžné, že se o výpadku serveru nebo služby dozvěděl tým až se zpožděním – často díky telefonátu od zákazníka. Výzvou tedy bylo vytvořit spolehlivý dohledový systém, který by umožnil včasné odhalení výpadků nebo anomálií – například vyčerpané RAM nebo výpadku služby – a předešel tak zbytečným prostojům.

Vyvinuli jsme interní monitorovací systém postavený na PHP aplikaci běžící na webovém serveru Apache. Celý systém je rozdělen do několika klíčových komponent. Srdcem řešení je webová aplikace napsaná ve frameworku Nette, která přijímá konfigurační JSON soubor z FileMaker databáze. Tento soubor definuje, jaké servery a jejich služby se mají sledovat, jaké jsou limity a pravidla pro vyhodnocování chyb a komu a jak má být odeslána notifikace.
Data o aktuálním stavu posílají aktivně a pravidelně jednotlivé monitorované servery přes HTTP POST na webový server. Ten z těchto dat vyhodnocuje, zda jsou služby dostupné, zda data přicházejí včas, a pokud ne, po splnění určitých podmínek (například opakovaného nedoručení dat), odešle push notifikaci. Systém rozlišuje příjemce notifikací podle odpovědnosti za konkrétní servery, takže zprávy chodí pouze těm správným osobám.
Notifikace probíhají přes náš interní nástroj Notifity, který přeposílá zprávy dál přes Pushover nebo e-mail. Webový server je přístupný z veřejné sítě, aby mohl přijímat data z externích serverů. Konfigurační FileMaker databáze zároveň umožňuje správu definic sledovaných instancí a pravidel notifikací. Pokud by došlo k výpadku této služby nebo celé webové aplikace, tak přijde upozornění z jiného monitoringu.
Rozšířené funkcionality systému zahrnují zobrazení systémových informací jako využití paměti, využití disku nebo sledování stavu Data API či OData. Ve výsledku vznikl robustní, flexibilní systém, který pomáhá včas detekovat problémy a výrazně zkracuje dobu reakce.