Agente 2.24.0 — task #270: rotación de logs, timeout de insights, y por qué no hay bandwidth (A19)
User value
El Local Agent (el programa que cada organización instala en un PC de su red para vigilarla) pasa a la versión 2.24.0, junto con el SaaS a v1.86.0. Cuatro mejoras:
- El registro del Agente ya no crece sin límite:
agent.logrota en ficheros de 5 MB (hasta 20 MB en total entre el actual y 3 copias) y ya no se borra al reiniciar — el arranque anterior, y una posible caída, siguen legibles después de reiniciar el servicio. - Los avisos de IA (insights) tardan más en darse por vencidos: el tope de espera para que un aviso llegue del servidor sube de 30 a 90 segundos. En producción, generar un aviso tarda de media 40 segundos — con el límite viejo, la mitad de los envíos se daban por fallidos en el Agente aunque el aviso sí se había creado en el servidor.
- Por qué un equipo no reporta tráfico, explicado (A19): cuando un equipo deja de mandar datos de ancho de banda, la sección Bandwidth del Observatory ya no calla — muestra “No bandwidth data: …” con el motivo real (sin respuesta, contador de octetos roto, interfaz SNMP equivocada, valor descartado por absurdo, etc.), en vez de dejar el hueco sin explicación.
- El barrido detallado (deep discovery) ya no se corta en silencio: el límite de filas por consulta SNMP sube de 200 a 1000, y si aun así se llega al tope, el Agente lo avisa en su registro en vez de devolver una tabla que parece completa sin serlo. Además, el descubrimiento profundo, el descubrimiento SNMP y la prueba de OIDs ya respetan el puerto SNMP configurado del equipo — antes siempre usaban el puerto 161 por defecto, aunque el equipo tuviera otro configurado.
Cómo usarla
Transparente: no requiere ninguna acción, solo el auto-update del Agente a 2.24.0. La nota “No bandwidth data: …” aparece sola en la ficha de cualquier equipo con SNMP habilitado que deje de producir datos de tráfico.
Implementación
terminal/agent/platform_mod/logging_config.py—RotatingFileHandler(5 MB × 3 copias,encoding="utf-8"explícito) sustituye alFileHandler(mode="w")que truncaba el log en cada arranque.terminal/agent/sentinel/scheduler.py(A19) —SentinelScheduler.note_producer(target_id, loop_name, ok, reason)alimenta_producer_state;producer_issues()devuelve solo los targets con algún bucle SNMP (bandwidth/extras/fast) sin producir, compacto para el heartbeat. Se expone en/sentinel/statusbajo la claveproducers.terminal/agent/sentinel/insight_reporter.py— timeout de envío de insights 30 → 90 s.terminal/agent/network/deep_discovery.py/config.py—SNMP_WALK_MAX_ROWS200 → 1000, conWARNINGen el log al tocar el tope;snmp_get/snmp_walk/snmp_discover_deviceaceptanporty el deep discovery,snmp-discoveryprobe-oidslo honran.monitoring/models.py—MonitoringTarget.producer_state(JSONField, null, migración0033): último estado por bucle SNMP que reporta el heartbeat;MonitoringTargetOut.producer_statelo expone en la API.terminal/consumers.py(AgentConsumer) —sanitize_producers()valida el payload del heartbeat (bucles y motivos de lista cerrada, IDs enteros, tope 500 targets) y_apply_producers()persisteproducer_stateen los targets que fallan y lo limpia (NULL) en los que vuelven a producir o dejan de reportarse.static/js/pages/observatory/ObservatoryTabs.js—getProducerNote()pinta la nota bajo la cabecera de la sección Bandwidth cuandoproducer_state.bandwidthexiste.terminal/api/agent_credentials.py(profile-credentials) — devuelvesnmp_portdel target enlazado, para que el discovery lo use.monitoring/services/ai_providers/google_genai.py— error explícito si el modelo devuelve JSON que no es un objeto (fallo visto en PROD el 28-08-2026).
Detalle completo del mecanismo A19 (motivos posibles, formato del heartbeat, saneado): [[crearack-tech—architecture—sentinel-mode]] §4.2.
Tests: tests/agent/test_agent_2240.py, tests/api/test_agent_2240_saas.py; dos tests antiguos actualizados para aceptar el nuevo campo.
Commits relacionados
003d4f95(28-08-2026) — feat(agent): Agente 2.24.0, task #270 + #13/#14 de la deuda #274, PR #450.bb3fb7e8(27-08-2026) — release anterior del Agente, ver [[feature—monitoring—agente-2-23-0-auditoria-261]].
Véase también
- [[crearack-tech—architecture—sentinel-mode]]
- [[feature—monitoring—agente-2-23-0-auditoria-261]]
- [[feature—monitoring—deuda-274-tanda-a]]
- [[entity—monitoring—model—monitoringtarget]]
- [[crearack—terminal—local-agent]]
- [[local-agent-auto-update-tech]]
- [[crearack-tech—guides—sentinel-24-7-test]]