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.

Monitoring

Schéma řešení

monitoring

Administrátorské rozhraní

V administrátorském rozhraní CzechIdM je nová záložka v hlavním menu s názvem „Status“.

statusPage1

Když na ni kliknete, CzechIdM spustí sadu testů a zobrazí tabulku s jejich výsledky.

statusPage2

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.