Aller au contenu

Keycloak (beta)

Si Keycloak peut vraiment connecter les gens : disponibilité avec le contrôle de la base, version, realms (un realm désactivé, c’est une population verrouillée dehors) et, avec un compte de service, sessions actives et utilisateurs par realm.

Du serveur DumbMonit (ou de son agent relais) vers l’équipement :

PortProtocoleUsage
8080TCPAPI (HTTP, par défaut)
9000TCPContrôles de santé sur le port de gestion (Keycloak 25 et suivants)
443TCPSeulement avec le schéma https derrière un reverse proxy

La panne à surveiller : Keycloak debout, base de données tombée. La page de connexion s’affiche encore, personne ne peut se connecter, et toutes les applications derrière Keycloak semblent cassées d’un coup. /health/ready est l’endroit où Keycloak le dit ; un 503 y est une mesure, pas une erreur de transport.

Toutes les métriques sont préfixées dumbmonit_keycloak_.

MétriqueQuoiLabels
ready, live1 tant que le contrôle de disponibilité / de vie indique UP
health_check_upchaque contrôle de disponibilité (base de données…), 32 au pluscheck
admin_readable1 quand le compte de service a pu lire l’API d’administration (absent sans identifiants)
version_infovaleur 1version
uptime_seconds, memory_used_percenttemps depuis le démarrage ; mémoire JVM utilisée
realms_total, realms_disabledrealms, et ceux désactivés
realm_sessions, realm_offline_sessions, realm_userssessions actives, sessions hors ligne et utilisateurs de chaque realm lurealm
sessions_activesessions actives, tous les realms lus
scrape_errorsappels qui ont échoué à la dernière sonde

Les règles intégrées qui s’appliquent : Keycloak not ready, Keycloak realm disabled, plus Appareil inaccessible.

Laisser DumbMonit lire la santé et les realms de Keycloak

Section intitulée « Laisser DumbMonit lire la santé et les realms de Keycloak »
  1. Lancez Keycloak avec les contrôles de santé activés, avec l’option ci-dessous. Depuis Keycloak 25, ils répondent sur le port de gestion 9000.

    KC_HEALTH_ENABLED=true
  2. Facultatif, pour les realms, sessions et utilisateurs : dans le realm master, créez un client nommé comme suit, avec Client authentication et Service accounts roles activés, et Standard flow désactivé.

    dumbmonit
  3. Sur l’onglet Service accounts roles de ce client, attribuez les rôles de client listés ci-dessous, puis copiez le secret de l’onglet Credentials.

  4. Dans DumbMonit, saisissez l’adresse de Keycloak et l’identifiant et le secret du client, ou choisissez Aucun (contrôles de santé seulement).

  • view-realm : Master-realm client role: realms and their state
  • view-users : Master-realm client role: user counts
IdentifiantChamps
Aucun (contrôles de santé seulement)Rien n’est envoyé ; les contrôles de santé sont publics.
Identifiant / secret du clientLe client de compte de service. DumbMonit demande un jeton (client_credentials) sur /realms/<realm>/protocol/openid-connect/token à chaque sonde.

Adresse : le nom d’hôte sur lequel répond Keycloak (sso.lan), host:port, ou une URL complète (https://sso.example.com, avec /auth sur les anciennes installations). Les contrôles de santé sont lus sur le même hôte, sur le port de santé. Options : protocole, port, port de santé (health_port, 9000 ; same pour Keycloak 24 et antérieurs), protocole de santé (health_scheme), realm du client (auth_realm, master), realms à lire (realms), vérification du certificat et délai de requête (15 s).