Guía de Operaciones
Esta guía describe los trabajos programados de OmniRoam, la transferencia de archivos, el archivo, las ubicaciones de los registros y el mantenimiento rutinario.
Tabla de Contenidos
- Descripción General de Trabajos Programados
- Ingesta de CDR
- Exportación TAP Programada
- Transferencia de Archivos
- Archivado
- Mantenimiento del Contador de Secuencia
- Mantenimiento de Almacenamiento
- Ubicaciones de Registros
Descripción General de Trabajos Programados
OmniRoam funciona en un ciclo diario. La tabla muestra los trabajos principales y su orden.
| Trabajo | Se Ejecuta | Propósito |
|---|---|---|
| Ingesta de CDR | Programado por cron | Recoge, correlaciona y califica CDRs. |
| Exportación TAP | Diaria, a la hora configurada | Genera archivos TAP por socio. |
| Carga | Después de cada exportación | Envía los nuevos archivos TAP a la casa de compensación. |
| Extracción entrante | Diaria, y una ejecución completa semanal | Extrae archivos TAP y RAP entrantes. |
| Monitor de RAP | Cada 4 horas | Alerta a los operadores sobre un nuevo archivo RAP. |
| Archivo | Mensual | Vuelca y purga CDRs antiguos de la base de datos. |
Ingesta de CDR
El trabajo de ingesta recoge CDRs de las puertas de enlace de servicio, los correlaciona y los califica. El trabajo ejecuta las herramientas de Python en orden.
- Extraer los archivos CDR ASN.1 de 3GPP y eliminar los archivos locales de más de 60 días.
- Convertir los archivos ASN.1 de 3GPP a XML e importarlos.
- Extraer los archivos CSV de la puerta de enlace de servicio OmniCore.
- Correlacionar los registros de OmniCore y escribirlos en Redis.
- Drenar Redis, calificar cada CDR y almacenar el resultado.
Consulte Procesamiento de CDR para los detalles del pipeline y los filtros de edad.
Exportación TAP Programada
El programador inicia la exportación diaria. El programador lee config.export_schedule en cada tick, por lo que un cambio se aplica sin reiniciar. Consulte la
Referencia de Configuración.
- El programador se ejecuta cuando
enabledestrue, la hora UTC actual alcanzaat, y la exportación no se ha ejecutado hoy. - El programador encola un trabajo de exportación por socio objetivo.
- La cola de trabajos ejecuta una exportación a la vez. Este límite protege el pool de base de datos compartido.
- Cuando la cola se drena, OmniRoam ejecuta el comando en
on_export_complete. - OmniRoam publica un mensaje de Slack en el webhook configurado al completarse o fallar.
El programador no ejecuta una exportación adicional al arrancar. Si el servicio comienza después de la hora diaria, la primera exportación se ejecuta al día siguiente.
Para ejecutar una exportación ahora, use la API. Consulte la Referencia de API HTTP.
Transferencia de Archivos
OmniRoam mueve archivos entre el almacenamiento local y la casa de compensación.
Carga
OmniRoam ejecuta el comando de carga después de cada exportación, a través de on_export_complete. El comando de carga envía los nuevos archivos TAP a la casa de compensación y mueve cada archivo enviado al directorio OutputFiles_Sent.
El script de carga se ejecuta como el usuario de transferencia. La casa de compensación rechaza la clave del usuario root. Ejecute la carga como el usuario correcto, o la transferencia fallará.
Extracción entrante
El trabajo de extracción recupera archivos entrantes de la casa de compensación al directorio TAP entrante. El trabajo de extracción copia un archivo a la vez, porque la cuenta de la casa de compensación no permite una transferencia masiva.
| Prefijo | Tipo de archivo |
|---|---|
CD | Un archivo TAP en vivo entrante. |
TD | Un archivo TAP de prueba entrante. |
RC | Un archivo RAP que rechaza una presentación en vivo. |
RT | Un archivo RAP que rechaza una presentación de prueba. |
El trabajo de extracción realiza una extracción incremental diaria y una extracción completa semanal. El trabajo de extracción se ejecuta como el usuario de transferencia.
Archivado
El trabajo de archivo controla el crecimiento de la base de datos de CDR. El trabajo de archivo vuelca los CDRs procesados que son más antiguos que la ventana de retención a un archivo y luego elimina esas filas.
Programe el trabajo de archivo mensualmente. Confirme que el archivo de volcado esté completo antes de confiar en la eliminación. Mantenga la ventana de retención consistente con su política de purga de base de datos.
Mantenimiento del Contador de Secuencia
El número de secuencia del archivo TAP es un campo de 5 dígitos, con un rango de 00001 a 99999. OmniRoam no restablece el contador automáticamente.
- Monitoree los contadores
CDyTDpara cada socio encounters.yaml. - Antes de que un contador alcance
99999, acuerde un restablecimiento con el socio. - Restablezca el contador a
1en el momento acordado. - Haga una copia de seguridad de
counters.yamlconconfig.yaml.
Consulte la Referencia de Configuración.
Mantenimiento de Almacenamiento
Monitoree estos almacenes por crecimiento.
| Almacén | Acción |
|---|---|
OutputFiles | Confirme que la carga mueva cada archivo enviado a OutputFiles_Sent. Un recuento pendiente creciente significa que la carga falló. Observe tap3_files_pending y tap3_hours_since_last_file. |
| InfluxDB | Establezca una política de retención. La medición raw_cdr tiene alta cardinalidad. |
| Base de datos de CDR | Ejecute el trabajo de archivo según lo programado. |
| Archivos de registro | Las herramientas de Python escriben un nuevo archivo de registro con marca de tiempo por ejecución en /tmp. Elimine archivos de registro antiguos. |
Consulte la Referencia de Métricas para las métricas de monitoreo.
Ubicaciones de Registros
Las herramientas de Python escriben un archivo de registro con marca de tiempo por ejecución.
| Patrón de archivo | Fuente |
|---|---|
/tmp/import_CDR_Logger_Marben_*.log | Los importadores ASN.1 y Redis. |
/tmp/import_CDR_Logger_OmniCore_*.log | El importador de OmniCore. |
/tmp/tap3_export_*.log | La herramienta de exportación heredada. |
/tmp/convert_cdr_logger_*.log | El convertidor de 3GPP ASN.1 a XML. |
/tmp/rate_creator_Logger_*.log | El provisionador de tarifas. |
La aplicación OmniRoam registra a través del administrador de servicios del sistema. El script de carga escribe su estado en un archivo de registro que el colector de métricas lee.