You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ADN-DMR-Peer-Server/docs/es/monitor/configuration.md

6.7 KiB

Configuración (adn-monitor.yaml)

Este documento describe adn-monitor.yaml, usado por monitor.py. La ruta por defecto suele ser monitor/adn-monitor.yaml (sobrescribible con ADN_CONFIG_PATH).

Proxy hotspot se configura en adn-server.yaml (PROXY + SELF_SERVICE) — ver Proxy hotspot integrado. SELF_SERVICE (MySQL / PBKDF2) debe ser idéntica entre adn-server.yaml y adn-monitor.yaml.

El ejemplo del repositorio adn-monitor (monitor/adn-monitor.yaml.example) es la plantilla del monitor; las claves siguientes coinciden con ese fichero y monitor/src/adn_monitor/infrastructure/config_loader.py (los nombres internos pueden diferir).


GLOBAL

Clave Significado
BRIDGES_INC Mostrar estado de bridges en el panel si es true.
HOMEBREW_INC Incluir estado HBP peer/master.
LASTHEARD_INC Activar funciones / tablas Last Heard.
LASTHEARD_ROWS Filas para widgets Last Heard.
EMPTY_MASTERS Mostrar masters sin peers.
TGCOUNT_INC Activar página / estadísticas de conteo de TG.
TGCOUNT_ROWS Filas para el conteo de TG.
TIMEZONE Zona horaria IANA (p. ej. America/Santiago): fechas Last Heard en pantalla; TG Count usa el día calendario en esa zona (medianoche local = nuevo día de estadísticas). Vacío → día UTC.

ADN_CONNECTION

Debe coincidir con la configuración de informes del ADN DMR Peer Server.

Clave Significado
ADN_IP Host/IP donde está el listener TCP de informes del peer server (vista de red desde el monitor).
ADN_PORT Puerto TCP — debe ser igual a REPORTS.REPORT_PORT en el servidor y ser alcanzable.
HELLO_TIMEOUT_MS Tras conectar por TCP, tiempo de espera del opcode 0xFF HELLO (JSON) desde ADN DMR Server. Si no llega a tiempo, el monitor trata el peer como legado (solo CONFIG/BRIDGE pickle). Por defecto 1500 ms. Ver Monitor e informes.

SELF_SERVICE

Credenciales MySQL y parámetros PBKDF2 para login, self-service y acceso a la tabla Clients. PBKDF2_SALT y PBKDF2_ITERATIONS deben coincidir con hotspot_proxy_self_service.py (o tu herramienta de registro de contraseñas) para que los hashes verifiquen en la API del monitor y en el proxy integrado de adn-server.

Clave Significado
DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT Conexión MySQL para Clients (y tablas relacionadas).

Si MySQL no está disponible, las rutas de auth y self-service no se registran.


OPB_FILTER

Network IDs separados por comas (como cadenas). El tráfico desde esas fuentes OpenBridge puede ocultarse de ciertas rutas de persistencia del panel (ver manejo de OPB_FILTER en el controlador del monitor).


ALIASES

Misma idea que en el peer server: descargar JSON de peer / subscriber / TGID y checksums opcionales. Claves: PATH, *_FILE, *_URL, STALE_HOURS, REVIEW_INTERVAL_MINUTES, CHECKSUM_*, TG_LIST_URL, BRIDGE_LIST_URL (proxy del backend para páginas del frontend).


LOGGER

Clave Significado
LOG_PATH Directorio de ficheros de log.
LOG_FILE Nombre del log del monitor (p. ej. adn-monitor.log).
LOG_LEVEL p. ej. INFO, DEBUG.

MONITOR_APP

Proceso unificado monitor.py: REST y WebSocket en el mismo host/puerto.

Clave Significado
LISTEN_HOST Interfaz de escucha ("" = todas las IPv4).
LISTEN_PORT Puerto HTTP (p. ej. 8080): /api/* y /ws.
INGEST tcp (cliente a ADN_CONNECTION) o mqtt (tópicos del broker).
MQTT Obligatorio si INGEST: mqtt (URL, TOPIC_PREFIX, QOS).
FREQUENCY Resync periódico en segundo plano (segundos); las actualizaciones en vivo son por eventos.
CLIENT_TIMEOUT Cerrar clientes WS inactivos tras N segundos (0 = desactivado).
CORS_ORIGINS Orígenes permitidos para desarrollo (opcional).

Nginx en producción proxifica /api y /ws a LISTEN_PORT. No hace falta un puerto WebSocket aparte.

La sección obsoleta WEBSOCKET_SERVER en YAML (Twisted en puerto distinto) se ignora; usa MONITOR_APP.


DASHBOARD

Clave Significado
DASHTITLE Título de cabecera.
BACKGROUND Usar fondo bk.jpg si es true.
LANGUAGE Idioma por defecto de la UI (en, es, …).
SELF_SERVICE Si es true, la UI puede mostrar la entrada Self-service (API del monitor + MySQL).
SHOW_CONSOLE Mostrar página consola (mensajes inicio/fin de llamada).
MIN_DURATION Duración mínima de llamada (segundos) para la tabla Last Heard del panel (la página Last Heard puede seguir mostrando más cortas).
nav_links, footer, news Enlaces estructurados / marquee opcionales.

Esquema MySQL y migraciones

No hay Alembic: el monitor usa schema_migrations y comprobaciones en information_schema.

Comando Cuándo
python db_bootstrap.py --config adn-monitor.yaml --create BD nueva
python db_bootstrap.py --config adn-monitor.yaml --update BD existente (mismas operaciones, idempotente)

monitor.py ejecuta ensure_schema al arrancar si hay SELF_SERVICE: CREATE TABLE IF NOT EXISTS, migraciones pendientes y limpieza de tablas staging huérfanas (*_import, *_old). No borra datos de subscriber_ids ni de Clients.

Import masivo de alias (sin bloquear lecturas):

  • Tablas con PK en id únicamente (lookups puntuales).
  • Replace: carga en {tabla}_import con commit cada 10 000 filas (la tabla live sigue legible); swap atómico RENAME TABLE (bloqueo metadata breve).
  • Merge (ficheros locales): INSERT IGNORE con commit cada 2 000 filas.

Migraciones: 001_clients_callsign, 002_clients_options_width, 003_alias_pk_only.


Entorno

  • ADN_CONFIG_PATH: ruta absoluta a adn-monitor.yaml para monitor.py.
  • .env en la raíz del repo: VITE_API_BASE, VITE_DEFAULT_LANGUAGE (build del frontend); se carga automáticamente en monitor.py y db_bootstrap.py.

Ver también

Powered by TurnKey Linux.