Nástroj pro monitoring aplikací rubrika: Administrace: Software

2 Jakub J.
položil/-a 10.11.2017

Ahoj,
v současnosti pro monitoring serverů používám Zabbix, teď ale chci monitorovat přímo provozované aplikace. Zabbix totiž sleduje, zda je server A dostupný a zda odpovídá na HTTP, ale to ještě nemusí znamenat, že samotná aplikace X funguje (může se v ní vyskytnout chyba nebo se něco rozbít, aplikace pak sice odpovídá na HTTP, ale jenom chybovou stránkou). Některé aplikace navíc mohou běžet na více serverech s load balancerem. V podstatě bych chtěl, aby se monitorovací nástroj zeptal přímo aplikace X, jestli funguje (ta by například mohla provést kontrolu databáze, … a na základě toho odpovědět).

Jak to řešíte vy? Existuje nějaký nástroj, který tohle umí? (A úplně nejlepší by bylo, kdyby uměl monitorovat jak servery, tak aplikace, abych to měl všechno na jednom místě.)

Děkuji.

odkaz Vyřešeno
6 arron
odpověděl/-a 14.11.2017

V podstatě máš všechno, co potřebuješ ;-)

Udělej si v aplikaci "jednoduchý" (rozumněj tak jednoduchý, aby splnil požadavky) a rychlý (tak rychlý, aby neovlivnil zátěž serveru a dal se volat třeba každou půlminutu) skript, který zkontroluje všechny klíčové součásti aplikace, které potřebuješ monitorovat (můžeš to klidně rozdělit do více skriptů, pokud k tomu budeš mít nějaký důvod). Do výstupu si pošli nějaký třeba JSON, ce kterém bude nějaký status a případně message. Pokud všechno funguje, tak skript vrátí http 200 a může tam být stav "OK". Když některé komponenta selže, tak vrátíš http 5xx a nějakou hlášku, co a ideálně i proč se to stalo (ten skript si pak totiž můžeš pustit i sám a uvidíš rovnou, kde je chyba). Tenhle skript pak volej Zabbixem úplně stejně, jako když monitoruješ třeba HP.

Pokud běží aplikace na více serverech, tak pak je potřeba si na load balanceru udělat prostup na jednotlivé servery třeba přes nějakou proměnnou v requestu a pak můžeš směřovat monitorovací requesty přímo na jednotlivé nody. Případně to monitorovat i přímo na load balanceru přes heart beat a vadné nody rovnou dynamicky odpojovat a připojovat (resp. on to ten load balancer nejspíš udělá sám, že jo :-)).

K tomu bych ještě doporučil do Zabbixu přidat nějaké typové stránky u kterých fakt je vhodné ověřit funkčnost. Čili typicky HP plus další významné stránky projektu. To už záleží na konkrétním situaci.

Čili podle mě máš správný nástroj, jenom to trochu poladit ;-)

Komentáře

  • a.m : Přesně tak. Máme napsaný endpoint /health, který se spojí se všemi komponentami systému (databáze, cache atd.) a ověří jejich funkčnost a vrátí buď OK nebo NE-OK. V případě NE-OK vypíše, která komponenta reaguje pomalu nebo vůbec a rovnou se s tím dá pracovat dál. 20.11.2017
  • Jakub J. : Díky všem za odpovědi, nakonec jsem Zabbix nahradil Icingou, která mi více vyhovuje, ale k samotnému monitoringu využívám princip od @arron. 11.1.2018

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.