Преминете към основното съдържание

Наблюдение

Prometheus и Grafana​

docker compose -f docker-compose.prod.yml -f docker-compose.monitoring.yml --env-file .env up -d
  • Prometheus (127.0.0.1:9090) събира метрики от всяка реплика на бекенда на :9091.
  • Grafana (127.0.0.1:3000, администраторска парола GRAFANA_ADMIN_PASSWORD) зарежда таблото Entrosity Axis overview.
  • И двете слушат само на localhost; достъпвайте ги през SSH тунел.
  • Свържете Prometheus с вашия Alertmanager (вижте коментара в deploy/monitoring/prometheus.yml).

Правила за аларми​

deploy/monitoring/alerts.yml:

АлармаЗадейства се, когато
RMMQueueBacklogДълбочината на опашката със задачи е над 1 000 в продължение на 10 минути
RMMAgentConnectionsDroppingWebSocket връзките намаляват с повече от 20 % за 5 минути
RMMHighErrorRateHTTP 5xx над 2 %
RMMDatabasePoolSaturatedПулът на базата данни е запълнен над 80 %
RMMBackendDownБекенд спира да отговаря на заявките за събиране на метрики
RMMSlowAPIЗакъснението p95 на API е твърде високо
RMMJobDispatchSlowИзпращането на задачи е твърде бавно
RMMPlatformSyncStaleКопието на потребителите, тенантите и ролите от Entrosity Hub е по-старо от 5 минути в продължение на 5 минути

Метрики​

МетрикаЗначение
rmm_ws_connections{kind}Свързани агенти и конектори за всяка реплика
rmm_ws_disconnects_totalПрекъсвания на WebSocket връзки
rmm_agents_onlineАгенти онлайн
rmm_jobs_total{type,status}Приключили задачи по тип и резултат
rmm_job_dispatch_secondsВреме от създаването на задачата до доставката ѝ
rmm_http_request_duration_seconds{method,route,status}Закъснение по маршрут
rmm_river_queue_depth{state}Опашка с фонови задачи
rmm_db_pool_connections{state}Използване на пула
rmm_deployments_activeТекущи внедрявания
rmm_sse_subscribersОтворени потоци от събития на портала
rmm_adsync_runs_total{status}Изпълнения на синхронизацията с AD
rmm_retention_rows_deleted_total{category}Напредък на почистването по срок на съхранение
rmm_platform_sync_age_secondsВъзраст на копието на данните от Entrosity Hub в репликата
rmm_platform_syncs_total{result}Изтегляния на моментни снимки: applied, unchanged, error

Профилите са на :9091/debug/pprof/ (само вътрешно). Няма публичен маршрут /metrics.

Проверки на състоянието​

Крайна точка (endpoint)Значение
/healthz (също /api/v1/healthz)Процесът работи.
/readyzБазата данни е достъпна (използва се от Caddy и от проверката на състоянието на контейнера). checks.platform_sync също отчита ok, stale (<age>) или never; остаряло копие не проваля проверката, така че прекъсване на Hub не изважда Axis от ротацията.

Проверката на състоянието на контейнера изпълнява rmm-server healthcheck.

Журнали​

docker compose -f docker-compose.prod.yml logs -f backend

В продукционна среда журналите са в JSON формат и се ротират от Docker (20 MB × 5 за контейнер). Тайните се маскират. PostgreSQL записва в журнала заявките, по-бавни от 1 s, заедно с техния план (auto_explain), а pg_stat_statements е активиран.