Nový monitoring systému CzechIdM
Od chvíle, kdy jste si tu mohli přečíst článek o nástroji pro monitoring našeho Identity Managementu CzechIdM, už uplynula pěkná řádka měsíců a dnes jsme zase o něco dál. V nové verzi CzechIdM, která je právě testována a brzy bude představena veřejnosti, je aktivní monitoring prostředí propracovanější a nabízí administrátorům spoustu dalších možností a hlavně jednoduchou konfiguraci. Pojďme se společně podívat, co všechno můžeme v nové verzi CzechIdM monitorovat a jak si monitoring přizpůsobit podle svých představ.
Schéma řešení
Administrátorské rozhraní
V administrátorském rozhraní CzechIdM je nová záložka v hlavním menu s názvem „Status“.
Když na ni kliknete, CzechIdM spustí sadu testů a zobrazí tabulku s jejich výsledky.
Každý řádek odpovídá jednomu testu:
- Sloupec „Typ“ popisuje typ testu, tedy informaci, jestli bylo testováno spojení na některý z napojených systémů, pravidelné spouštění synchronizace, funkčnost konkrétního uživatele nebo třeba kód napsaný na míru.
- Ve sloupci „Cíl“ je název testovaného subjektu, v případě testu spojení s napojeným systémem název onoho systému.
- „Výsledek“ obsahuje klíčovou informaci o tom, jak to všechno dopadlo, jestli úspěšně, nebo ne.
- „Trvání požadavku“ značí dobu, kterou test vyžadoval. V milisekundách.
- „ Ypráva“ může obsahovat doplňující informace. Až zjistíte, že některý z testů dopadl špatně, tady začněte pátrat proč.
Administrátorovi tedy stačí jedno kliknutí a ví, na čem je. CzechIdM spustí požadovanou sadu kontrol a zobrazí jejich výsledky v jedné přehledné tabulce.
Konfigurace
Rozsah testů a jejich parametry můžete nastavit podle svých představ v konfiguračním souboru BCV_IdM-ear.ear/BCV_IdM-ejb.jar/META-INF/idm_configuration.properties. Testů se týká pět parametrů, jejich názvy všechny začínají předponou „status_“:
- status_resources – seznam napojených systémů, u kterých má být kontrolováno spojení s CzechIdM. Oddělovačem v seznamu je středník, spolu s každým systémem lze definovat časový limit pro test oddělený dvojtečkou. Pomocí speciálního řetězce „__ALL__“ místo názvu systému můžete stanovit, že má být testováno spojení se všemi napojenými systémy.
- status_users – seznam uživatelů, na kterých proběhne operace „checkout-checkin“, tedy aktualizace informací v CzechIdM ze zdrojových systémů a zapsání těchto informací do systémů napojených. Opět lze uvést uživatelů více a oddělit je středníkem, opět můžete u každého stanovit časový limit.
- status_synchronizations – seznam napojených systémů, u kterých má být kontrolováno pravidelné spouštění synchronizace. S každým názvem systémů se za dvojtečkou uvádí maximální prodleva mezi dvěma běhy synchronizace, jednotlivé systémy se oddělují středníkem.
- status_recons – podobné jako status_synchronizations, místo synchronizací se kontroluje pravidelné spouštění rekonciliací
- status_custom_rules – testy na míru pro pokročilé. Můžete uvést seznam pravidel, která mají být spuštěna, spolu s každým časový limit a očekávaný (bezchybný) výsledek.
Všechny časy se uvádí v milisekundách.
Příklad konfigurace:
status_resources=Active Directory:10000;Docházky:5000;MySQL:5000 status_users=novakj:5000;pokornyp:6000 status_synchronizations=MySQL:3600000;Active Directory:900000 status_recons=MySQL:36000000 status_custom_rules=myRule1:10000:OK;myRule2:10000:SUCCESS
Konfigurace výše zajistí, že s každým spuštěním testů bude prověřeno spojení na systémy „Active Directory“, „Docházky“ a „MySQL“, přičemž za úspěch bude považováno, pokud test na „Active Directory“ doběhne správně do 10 vteřin, na ostatních dvou systémech do 5 vteřin. Dále proběhne aktualizace uživatelů „novakj“ a „pokornyp“, hranice úspěchu je pro identitu „novakj“ 5 vteřin, pro identitu „pokornyp“ 6 vteřin. Bude také zkontrolováno, že od poslední synchronizace na systému „MySQL“ neuplynulo více než 60 minut, od poslední synchronizace na systému „Active Directory“ 15 minut a od poslední rekonciliace na systému „MySQL“ 10 hodin. Kromě toho testy spustí pravidla „myRule1“ a „myRule2“ a za úspěch bude považováno, pokud obě pravidla skončí do 10 vteřin, první vrátí řetězec „OK“ a druhé řetězec „SUCCESS“.
Defaultně je kontrolováno pouze spojení na všechny napojené systémy s timeoutem 10 vteřin:
status_resources=__ALL__:10000 status_users= status_synchronizations= status_recons= status_custom_rules=
Sonda pro Nagios
Na screenshotech v úvodu článku jste viděli tabulku v administrátorském rozhraní. Pro strojové zpracování se více hodí její textový CSV formát. Ten si můžete z běžícího CzechIdM stáhnout z /idm/admin/status/showcsv.seam.
Pro pravidelný strojový monitoring můžete použít skript checkIdMStatus.sh, který je dodáván spolu s novou verzí. Než ho spustíte, otevřete si ho pro editaci a nastavte proměnné v úvodu skriptu podle vlastního nasazení, zejména tedy přihlašovací údaje. Nastavíte-li pak jeho spouštění v cronu nebo ho použijete v rámci monitorovacího systému Nagios, dorazí vám hlášení o neúspěšných testech e-mailem (ověřte si prosím, že vám správně funguje příkaz „mail“ z shellu a nemáte pro odesílání mailů třeba moc přísný firewall). Nezapomeňte prosím omezit ke skriptu práva, přece jenom obsahuje přihlašovací jméno a heslo.
Závěr
CzechIdM svým administrátorům poskytuje nový způsob aktivního monitoringu. Konkrétní sada testů se může na jednotlivých nasazeních lišit, administrátor si ji může snadno přizpůsobit v konfiguračním souboru idm_configuration.properties, aniž by musel restartovat aplikační server běžícího CzechIdM. Spolu s CzechIdM je dodáván i kontrolní skript, který může sloužit jako sonda pro Nagios. Kdybyste potřebovali poradit nebo chtěli nějaké vylepšení do příští verze, napište mi na vojtech.matocha@bcvsolutions.eu.