4.8. Monitorování
Elza poskytuje kontroly stavu (health) a metriky ve formátu Prometheus (Spring Boot Actuator). Lze je napojit na běžné dohledové nástroje jako Prometheus, Grafana nebo Zabbix.
4.8.1. Správcovský port
Endpointy monitorování jsou ve výchozím stavu zapnuté. Jsou publikovány
na samostatném správcovském portu 8081 navázaném na 127.0.0.1,
jsou tedy dostupné pouze ze samotného serveru. Aplikační port tím není
dotčen. Vestavěné výchozí hodnoty jsou:
management:
server:
port: 8081
address: 127.0.0.1
endpoints:
web:
exposure:
include: health,prometheus
endpoint:
health:
probes:
enabled: true
show-details: always
Publikovány jsou pouze endpointy health a prometheus. Libovolnou
hodnotu lze přepsat v elza.yaml nebo proměnnou prostředí
(například MANAGEMENT_SERVER_PORT).
Varování
Endpointy monitorování nevyžadují autentizaci; jsou chráněny tím, že
jsou dostupné jen lokálně. Pokud má metriky sbírat vzdálený server
Prometheus, změňte management.server.address a přístup k portu
omezte jinak (firewall, reverzní proxy s autentizací). Port nikdy
nepublikujte do veřejné sítě.
4.8.2. Endpointy
http://127.0.0.1:8081/actuator/healthCelkový stav (
UP/DOWN) se stavem jednotlivých komponent (databáze, místo na disku, LDAP, je-li nastaven).http://127.0.0.1:8081/actuator/health/livenessa.../readinessSondy životnosti a připravenosti pro load balancery nebo orchestrátory kontejnerů.
http://127.0.0.1:8081/actuator/prometheusMetriky ve formátu Prometheus.
Příklad:
$ curl http://127.0.0.1:8081/actuator/health
{"status":"UP","components":{"db":{"status":"UP"},"diskSpace":{"status":"UP"},
"livenessState":{"status":"UP"},"ping":{"status":"UP"},"readinessState":{"status":"UP"}}}
Kontrola LDAP je součástí stavu jen při nastavené autentizaci přes LDAP
(elza.security.ldap.ad-domain); pak kontroluje nastavený server LDAP.
Vypnout ji lze volbou management.health.ldap.enabled: false.
4.8.3. Metriky Elzy
Kromě standardních metrik JVM, HTTP serveru (http_server_requests_*),
poolu databázových spojení (HikariCP) a systému publikuje Elza metriky
své fronty synchronizace s externími systémy (typicky CAM) a svého
plánovače úloh. Metriky nemají štítky (labels); hodnoty fronty jsou
agregovány přes všechny nastavené externí systémy. Metriky stáří vracejí
-1, pokud není co měřit.
Metrika |
Význam |
Doporučené upozornění |
|---|---|---|
|
Počet sekund od posledního úspěšného dotazu na externí systém CAM (nejstarší hodnota přes všechny systémy). I dotaz, který nenajde žádnou změnu, je úspěšný. Hlavní ukazatel dostupnosti CAM. |
nad 7200 |
|
Počet položek synchronizace ve stavu chyba (například neúspěšné odeslání do CAM). |
nad 0 |
|
Počet sekund od poslední změny stavu nejstarší chybové položky. Dává počtu chyb závažnost a zabraňuje upozorněním u přechodných chyb. |
nad 3600 |
|
Počet sekund od poslední změny stavu nejstarší odložené položky (například nahrazení entitou, která ještě není k dispozici). Odložené položky se obvykle vyřeší samy. |
nad 86400 |
|
Počet sekund od chvíle, kdy nejstarší položka čekající na stažení nebo odeslání vstoupila do svého stavu. Roste, když se fronta nezpracovává, což metrika posledního úspěchu nezachytí. |
nad 3600 |
|
Počet sekund od posledního tiku plánovače úloh. Roste bez omezení, pokud plánovač zamrzne; tím se zastaví synchronizace s CAM i všechny další plánované úlohy až do restartu. |
nad 300 |
|
Počet sekund, po které běží nejdéle běžící plánovaná úloha; |
žádné |
|
Počet připojených uživatelů (session WebSocket). Informativní. |
žádné |
Strojově čitelný seznam těchto metrik s doporučenými prahy je součástí
distribuce: server/config/csc-metrics.json.
Plánovač lze ladit volbami elza.monitoring.scheduler.poolSize
(výchozí 4 vlákna), elza.monitoring.scheduler.heartbeatMs (výchozí
30000) a elza.monitoring.scheduler.stuckThresholdSeconds (výchozí
1800).
4.8.4. Hlášení stavu dohledovému systému
Příkaz elza-health instalačních skriptů umí hlásit stav instance
vzdálenému dohledovému systému. LightComp v.o.s. nabízí takovou službu
v rámci podpory (Customer Service Center, CSC); lze použít i jiný systém,
který implementuje stejné rozhraní.
Hlášení je aktivní jen při nastavených přístupových údajích (
CUSTOMER_IDaCUSTOMER_SERVICE_SECRETvelza-env). Bez nich skripty stav kontrolují jen lokálně a nic neodesílají.Komunikace probíhá pouze směrem od instance k dohledovému systému (push) protokolem HTTPS; každé hlášení je podepsáno klíčem zákazníka (HMAC). Dohledový systém se nikdy nepřipojuje do infrastruktury zákazníka.
Každé hlášení (ve výchozím nastavení každých 10 minut,
HEARTBEAT_INTERVAL) obsahuje:
celkový stav instance (
up/degraded/down),výsledky dílčích kontrol (stav služby systemd, HTTP kontrola),
verzi aplikace a čas jejího spuštění,
název počítače,
hodnoty metrik uvedených v
csc-metrics.json.
Odesílají se jen číselné hodnoty uvedených metrik (allow-list); žádný
archivní obsah, osobní údaje ani úplný výpis metrik. Pro vypnutí
odesílání metrik při zachování hlášení stavu nastavte CSC_METRICS_URL
na prázdnou hodnotu; pro úplné vypnutí hlášení odstraňte přístupové
údaje.
Další nastavení skriptů popisuje https://get.lightcomp.com/elza/.