Para ayudar a los ingenieros de MongoDB a analizar el comportamiento del servidor, mongod y mongos los procesos incluyen un mecanismo de captura de datos diagnósticos a tiempo completo (FTDC, por sus siglas en inglés). FTDC está habilitado por defecto. Debido a su importancia en la depuración de implementaciones, las fallas del subproceso FTDC son fatales y detienen el proceso principal mongod o mongos.
Comportamiento
Nota
Permisos de usuario de FTDC en Windows
En Windows, para recopilar datos del sistema como disco, CPU y memoria, FTDC requiere permisos de acceso de Microsoft de los siguientes grupos:
Usuarios del monitor de rendimiento
Performance Log Users
Si el usuario que ejecuta mongod y mongos no es administrador, agrégalo a estos grupos para registrar los datos de FTDC. Para más información, consulta la documentación de Microsoft aquí.
FTDC recopila periódicamente estadísticas producidas por los siguientes comandos:
replSetGetStatus(mongodsolo)collStatspara la colecciónlocal.oplog.rs(mongodsolo)
Dependiendo del sistema operativo del host, los datos de diagnóstico pueden incluir una o más de las siguientes estadísticas de utilización:
Utilización de la CPU
Utilización de memoria
Utilización del disco en relación con el rendimiento. FTDC no incluye datos relacionados con la capacidad de almacenamiento.
Estadísticas de rendimiento de la red. FTDC solo captura metadatos y no captura ni inspecciona paquetes de red.
Nota
Si el proceso mongod se ejecuta en un contenedor, FTDC reporta estadísticas de utilización desde la perspectiva del contenedor en lugar del sistema operativo host. Por ejemplo, si el mongod se ejecuta en un contenedor configurado con restricciones de memoria RAM, FTDC calcula la utilización de memoria con relación al límite de RAM del contenedor, en contraposición al límite de RAM del sistema operativo host.
FTDC recopila estadísticas producidas por los siguientes comandos al rotar archivos o iniciar el sistema:
Archivos de Datos FTDC
mongod procesos almacenan archivos de datos FTDC en un directorio diagnostic.data bajo las instancias storage.dbPath. Todos los archivos de datos de diagnóstico se almacenan en este directorio. Por ejemplo, teniendo en cuenta un dbPath de /data/db, el directorio de datos de diagnóstico sería /data/db/diagnostic.data.
mongos los procesos almacenan archivos de datos FTDC en un directorio de diagnóstico relativo a la configuración de ruta de systemLog.path del registro. MongoDB trunca la extensión del archivo de la ruta de registro y concatena diagnostic.data al nombre restante. Por ejemplo, dado un ajuste de path de /var/log/mongodb/mongos.log, el directorio de datos de diagnóstico sería /var/log/mongodb/mongos.diagnostic.data.
FTDC privacidad
Los archivos de datos FTDC están comprimidos y no son legibles para los humanos. Tienen los mismos permisos de acceso a archivos que los archivos de datos de MongoDB. Solo los usuarios con acceso a los archivos de datos FTDC pueden transmitir los datos FTDC.
Los ingenieros de MongoDB no pueden acceder a los datos FTDC sin el permiso expreso y la asistencia de los propietarios u operadores del sistema.
Los datos de FTDC nunca contienen ninguna de las siguientes informaciones:
Muestras de querys, predicados de query o resultados de query
Datos muestreados de cualquier colección o índice de usuarios finales
Credenciales de usuario del sistema o de MongoDB o certificados de seguridad
Los datos de FTDC contienen cierta información de la máquina host, como nombres de host, información del sistema operativo y las opciones o configuraciones utilizadas para iniciar el mongod o el mongos. Esta información puede ser considerada protegida o confidencial por algunas organizaciones o entidades reguladoras. Para clústeres en los que estos campos estén configurados con datos protegidos o confidenciales, por favor informe a los ingenieros de MongoDB antes de enviar datos FTDC para coordinar las medidas de seguridad adecuadas.
Detalles
Puedes ver el código fuente de FTDC en el Repositorio Github de MongoDB. Los archivos ftdc_system_stats_*.ccp definen específicamente cualquier dato de diagnóstico específico del sistema capturado.
FTDC por defecto
FTDC se ejecuta con los siguientes valores por defecto:
Captura de datos cada 1 segundo
500 MB máximo
diagnostic.datade tamaño de carpeta.Cambiado en la versión 8.3: El valor por defecto aumentó de 250 MB (500 MB para clústeres fragmentados).
Estos valores predeterminados proporcionan datos útiles a los ingenieros de MongoDB con un impacto mínimo en el rendimiento o el tamaño del almacenamiento. Modifique estos valores solo si los ingenieros de MongoDB lo solicitan para fines de diagnóstico específicos.
Importante
MongoDB sobrescribe los datos anteriores a medida que la carpeta se acerca a su límite de tamaño. Para garantizar que se conserve información crítica de diagnóstico, captura el directorio diagnostic.data al momento del incidente. Una vez que MongoDB purga los datos FTDC, estos ya no están disponibles para el análisis diagnóstico.
Retención de datos en entornos on-premises
MongoDB almacena datos FTDC solo en el host local. No puedes utilizar los datos FTDC reenviados por OTel u otros pipelines de envío de registros para fines de diagnóstico.
En entornos on-premises que utilizan almacenamiento efímero o herramientas de automatización como Terraform, los datos de FTDC se pierden cuando un host se termina o se reconstruye. Para mejorar la disponibilidad de datos FTDC para investigaciones diagnósticas, considera una o ambas de las siguientes acciones:
Almacenar el directorio
diagnostic.dataen el almacenamiento persistente.Copie periódicamente el directorio
diagnostic.dataen una ubicación externa persistente.
Los ingenieros de MongoDB dependen de los datos FTDC para un diagnóstico preciso.
Desactivar FTDC
Advertencia
No se recomienda para entornos de producción.
Para desactivar FTDC, inicie el mongod o mongos con la opción diagnosticDataCollectionEnabled: false en la configuración setParameter de su archivo de configuración:
setParameter: diagnosticDataCollectionEnabled: false
Deshabilitar FTDC puede aumentar el tiempo o los recursos necesarios al analizar o depurar problemas con el soporte de los ingenieros de MongoDB. Para obtener información sobre el Soporte de MongoDB, visita Comienza con el Soporte de MongoDB.