Database Monitoring te proporciona una amplia visibilidad de tus bases de datos Microsoft SQL Server mediante la exposición de métricas de consultas, muestras de consultas, explain-plans, estados de bases de datos, conmutaciones por error y eventos.
Sigue los siguientes pasos para habilitar Database Monitoring con tu base de datos:
The default Agent configuration for Database Monitoring is conservative, but you can adjust settings such as the collection interval and query sampling rate to better suit your needs. For most workloads, the Agent represents less than one percent of query execution time on the database and less than one percent of CPU.
Database Monitoring runs as an integration on top of the base Agent (see benchmarks).
Proxies, load balancers, and connection poolers
The Datadog Agent must connect directly to the host being monitored. The Agent should not connect to the database through a proxy, load balancer, or connection pooler. If the Agent connects to different hosts while it is running (as in the case of failover, load balancing, and so on), the Agent calculates the difference in statistics between two hosts, producing inaccurate metrics.
Data security considerations
Read about how Database Management handles sensitive information for information about what data the Agent collects from your databases and how to ensure it is secure.
Crea un inicio de sesión de sólo lectura para conectarte a tu servidor y concede los permisos necesarios: Roles Azure SQL:
CREARINICIODESESIÓNdatadogCONCONTRASEÑA='<PASSWORD>';CREARUSUARIOdatadogPARAINICIODESESIÓNdatadog;ALTERARROLEDELSERVIDOR##MS_ServerStateReader##AÑADIRMIEMBROdatadog;ALTERARROLEDELSERVIDOR##MS_DefinitionReader##AÑADIRMIEMBROdatadog;-- Para utilizar la monitorización Log Shipping (disponible en el Agent v7.50 o superior), descomenta las siguientes tres líneas:
-- UTILIZAR msdb;
-- CREAR USUARIO datadog PARA INICIO DE SESIÓN datadog;
-- CONCEDER SELECCIÓN a datadog;
Concede al Agent acceso a cada Azure SQL Database adicional en este servidor:
CREATEUSERdatadogFORLOGINdatadog;
Nota: También se admite la autenticación de identidad gestionada por Microsoft Entra ID. Para saber cómo configurarla en tu instancia Azure SQL DB, consulta la guía.
Al configurar el Datadog Agent, especifica una instancia de check para cada base de datos de aplicaciones ubicada en un servidor Azure SQL DB determinado. No incluyas master ni otras bases de datos del sistema. El Datadog Agent debe conectarse directamente a cada base de datos de aplicaciones en Azure SQL DB, ya que cada base de datos se ejecuta en un entorno de computación aislado. Esto también significa que database_autodiscovery no funciona para Azure SQL DB, por lo que no debe habilitarse.
Nota: Azure SQL Database despliega una base de datos en un red aislada. Cada base de datos se trata como un único host. Esto significa que si ejecutas Azure SQL Database en un pool elástico, cada base de datos del pool se trata como una host independiente.
init_config:instances:- host:'<SERVER_NAME>.database.windows.net,1433'database:'<DATABASE_1>'username:datadogpassword:'<PASSWORD>'# Después de añadir tu proyecto y tu instancia, configura la integración Datadog Azure para extraer datos de nube adicionales, como CPU, memoria, etc.azure:deployment_type:'sql_database'fully_qualified_domain_name:'<SERVER_NAME>.database.windows.net'- host:'<SERVER_NAME>.database.windows.net,1433'database:'<DATABASE_2>'username:datadogpassword:'<PASSWORD>'# Después de añadir tu proyecto y tu instancia, configura la integración Datadog Azure para extraer datos de nube adicionales, como CPU, memoria, etc.azure:deployment_type:'sql_database'fully_qualified_domain_name:'<SERVER_NAME>.database.windows.net'
Para obtener instrucciones más detalladas sobre cómo instalar y configurar el Datadog Agent, consulta Instalar el Agent.
Crea un inicio de sesión de sólo lectura para conectarte a tu servidor y concede los permisos necesarios:
CREARINICIODESESIÓNdatadogCONCONTRASEÑA='<PASSWORD>';CREARUSUARIOdatadogPARAINICIODESESIÓNdatadog;CONCEDERCONEXIÓNACUALQUIERBASEDEDATOSadatadog;CONCEDERVISUALIZACIÓNDELESTADODELSERVIDORadatadog;CONCEDERVISUALIZACIÓNDECUALQUIERDEFINICIÓNadatadog;-- Para utilizar la monitorización Log Shipping (disponible en el Agent v7.50 o superior), descomenta las siguientes tres líneas:
-- UTILIZAR msdb;
-- CREAR USUARIO datadog PARA INICIO DE SESIÓN datadog;
-- CONCEDER SELECCIÓN a datadog;
Nota: También se admite la autenticación de identidad gestionada por Azure. Para saber cómo configurarla en tu instancia Azure SQL DB, consulta [la guía][1].
Store your password using secret management software such as Vault. You can then reference this password as ENC[<SECRET_NAME>] in your Agent configuration files: for example, ENC[datadog_user_database_password]. See Secrets Management for more information.
The examples on this page use datadog_user_database_password to refer to the name of the secret where your password is stored. It is possible to reference your password in plain text, but this is not recommended.
Dado que AWS no permite el acceso directo al host, el Datadog Agent debe instalarse en un host distinto donde pueda comunicarse con el host de SQL Server. Existen varias opciones para instalar y ejecutar el Agent.
Crea el archivo de configuración de SQL Server Agent C:\ProgramData\Datadog\conf.d\sqlserver.d\conf.yaml. Para ver todas las opciones de configuración disponibles, consulta el archivo de configuración de ejemplo.
init_config:instances:- dbm:truehost:'<HOSTNAME>,<SQL_PORT>'username:datadogpassword:'ENC[datadog_user_database_password]'connector:adodbapiadoprovider:MSOLEDBSQLtags:# Opcional- 'service:<CUSTOM_SERVICE>'- 'env:<CUSTOM_ENV>'# Después de añadir tu proyecto y tu instancia, configura la integración Datadog Azure para extraer datos de nube adicionales, como CPU, memoria, etc.azure:deployment_type:'<DEPLOYMENT_TYPE>'fully_qualified_domain_name:'<AZURE_INSTANCE_ENDPOINT>'
Para utilizar la autenticación de Windows, configura connection_string: "Trusted_Connection=yes" y omite los campos username y password.
Utiliza las etiquetas (tags) service y env para vincular la telemetría de tu base de datos a otras telemetrías mediante un esquema de etiquetado común. Para saber cómo se utilizan estas etiquetas en Datadog, consulta Etiquetado unificado de servicios.
El proveedor ADO recomendado es el controlador de Microsoft OLE DB. Asegúrate de que el controlador está instalado en el host donde se ejecuta el Agent.
connector:adodbapiadoprovider:MSOLEDBSQL19 # Sustituir por MSOLEDBSQL para las versiones 18 y anteriores
Los otros dos proveedores, SQLOLEDB y SQLNCLI, se consideran obsoletos por Microsoft y ya no deben ser utilizados.
El controlador ODBC recomendado es Microsoft ODBC. A partir del Agent v7.51, el controlador ODBC 18 para SQL Server se incluye en el Agent para Linux. Para Windows, asegúrate de que el controlador está instalado en el host donde se ejecuta el Agent.
connector:odbcdriver:'{ODBC Driver 18 for SQL Server}'
En Linux, el Datadog Agent requiere además la instalación de un controlador ODBC SQL Server, por ejemplo, el controlador ODBC de Microsoft. Una vez instalado el controlador ODBC SQL Server, copia los archivos odbc.ini y odbcinst.ini en la carpeta /opt/datadog-agent/embedded/etc.
Utiliza el conector odbc y especifica el controlador adecuado, como se indica en el archivo odbcinst.ini.
Crea el archivo de configuración de SQL Server Agent /etc/datadog-agent/conf.d/sqlserver.d/conf.yaml. Para ver todas las opciones de configuración disponibles, consulta el archivo de configuración de ejemplo.
init_config:instances:- dbm:truehost:'<HOSTNAME>,<SQL_PORT>'username:datadogpassword:'ENC[datadog_user_database_password]'connector:odbcdriver:'<Driver from the `odbcinst.ini` file>'tags:# Opcional- 'service:<CUSTOM_SERVICE>'- 'env:<CUSTOM_ENV>'# Después de añadir tu proyecto y tu instancia, configura la integración Datadog Azure para extraer datos de nube adicionales, como CPU, memoria, etc.azure:deployment_type:'<DEPLOYMENT_TYPE>'fully_qualified_domain_name:'<AZURE_ENDPOINT_ADDRESS>'
Utiliza las etiquetas (tags) service y env para vincular la telemetría de tu base de datos a otras telemetrías mediante un esquema de etiquetado común. Para saber cómo se utilizan estas etiquetas en Datadog, consulta Etiquetado unificado de servicios.
Para configurar el Database Monitoring Agent que se ejecuta en un contenedor Docker, configura las plantillas de integración Autodiscovery como etiquetas (labels) de Docker en el contenedor de tu Agent.
Nota: El Agent debe tener permiso de lectura en el socket de Docker para que las etiquetas (labels) de Autodiscovery funcionen.
Sustituye los valores para que coincidan con tu cuenta y tu entorno. Para ver todas las opciones de configuración disponibles, consulta el archivo de configuración de ejemplo.
Utiliza las etiquetas (tags) service y env para vincular la telemetría de tu base de datos a otras telemetrías mediante un esquema de etiquetado común. Para saber cómo se utilizan estas etiquetas en Datadog, consulta Etiquetado unificado de servicios.
Si tienes un clúster Kubernetes, utiliza el Datadog Cluster Agent para Database Monitoring.
Si los checks de clúster no están habilitados en tu clúster de Kubernetes, sigue las instrucciones para habilitar checks de clúster. Puedes configurar el Cluster Agent ya sea con archivos estáticos montados en el contenedor de Cluster Agent o utilizando anotaciones de servicios de Kubernetes:
Realiza los siguientes pasos para instalar el Datadog Cluster Agent en tu clúster de Kubernetes. Sustituye los valores para que coincidan con tu cuenta y tu entorno.
Para configurar un check de clúster con un archivo de configuración montado, monta el archivo de configuración del contenedor del Cluster Agent en la ruta: /conf.d/postgres.yaml:
cluster_check:true# Asegúrate de incluir este indicadorinit_config:instances:- dbm:truehost:'<HOSTNAME>,<SQL_PORT>'username:datadogpassword:'ENC[datadog_user_database_password]'connector:"odbc"driver:"ODBC Driver 18 for SQL Server"tags:# Opcional- 'service:<CUSTOM_SERVICE>'- 'env:<CUSTOM_ENV>'# Después de añadir tu proyecto y tu instancia, configura la integración Datadog Azure para extraer datos de nube adicionales, como CPU, memoria, etc.azure:deployment_type:'<DEPLOYMENT_TYPE>'fully_qualified_domain_name:'<AZURE_ENDPOINT_ADDRESS>'
En lugar de integrar un archivo, puedes declarar la configuración de la instancia como servicio de Kubernetes. Para configurar este check en un Agent que se ejecuta en Kubernetes, crea un servicio en el mismo espacio de nombres que el Datadog Cluster Agent:
El Cluster Agent registra automáticamente esta configuración y comienza a ejecutar el check de SQL Server.
Para evitar exponer la contraseña del usuario datadog en texto simple, utiliza el paquete de gestión de secretos del Agent y declara la contraseña utilizando la sintaxis ENC[].
Locate the odbc.ini and odbcinst.ini files. By default, these are placed in the /etc directory when installing ODBC.
Copy the odbc.ini and odbcinst.ini files into the /opt/datadog-agent/embedded/etc folder.
Configure your DSN settings as follows:
odbcinst.ini must provide at least one section header and ODBC driver location.
Example:
[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.2.1
UsageCount=1
odbc.ini must provide a section header and a Driver path that matches odbcinst.ini.
Update the /etc/datadog-agent/conf.d/sqlserver.d/conf.yaml file with your DSN information.
Example:
instances:- dbm:truehost:'localhost,1433'username:datadogpassword:'ENC[datadog_user_database_password]'connector:'odbc'driver:'{ODBC Driver 18 for SQL Server}'# This is the section header of odbcinst.inidsn:'datadog'# This is the section header of odbc.ini
For AlwaysOn users, the Agent must be installed on a separate server and connected to the cluster through the listener endpoint. This is because information about Availability Group (AG) secondary replicas is collected from the primary replica. Additionally, installing the Agent in this way helps to keep it up and running in the event of a failover.
instances:- dbm:truehost:'shopist-prod,1433'username:datadogpassword:'ENC[datadog_user_database_password]'connector:adodbapiadoprovider:MSOLEDBSQLinclude_ao_metrics:true# If Availability Groups is enabledinclude_fci_metrics:true# If Failover Clustering is enabled
To enable monitoring of SQL Server Agent jobs, the Datadog Agent must have access to the [msdb] database.
SQL Server Agent Jobs monitoring is not available for Azure SQL Database.
Monitoring of SQL Server Agent jobs is supported on SQL Server versions 2016 and newer. Starting from Agent v7.57, the Datadog Agent can collect SQL Server Agent job metrics and histories. To enable this feature, set enabled to true in the agent_jobs section of the SQL Server integration configuration file. The collection_interval and history_row_limit fields are optional.
Starting from Agent v7.56, the Datadog Agent can collect schema information from SQLServer databases running SQLServer 2017 or higher. To enable this feature, use the schemas_collection option. Schemas are collected on databases for which the Agent has CONNECT access.
To collect schema information from RDS instances, you must grant the datadog user explicit CONNECT access to each database on the instance. For more information, see Grant the Agent access.
Use the database_autodiscovery option to avoid specifying each logical database. See the sample sqlserver.d/conf.yaml for more details.
init_config:instances:# This instance detects every logical database automatically- dbm:truehost:'shopist-prod,1433'username:datadogpassword:'ENC[datadog_user_database_password]'connector:adodbapiadoprovider:MSOLEDBSQLdatabase_autodiscovery:trueschemas_collection:enabled:true# Optional: enable metric collection for indexesinclude_index_usage_metrics:true# This instance only collects schemas and index metrics from the `users` database- dbm:truehost:'shopist-prod,1433'username:datadogpassword:'ENC[datadog_user_database_password]'connector:adodbapiadoprovider:MSOLEDBSQLdatabase:usersschemas_collection:enabled:trueinclude_index_usage_metrics:true
It is common to configure a single Agent host to connect to multiple remote database instances (see Agent installation architectures for DBM). To connect to multiple hosts, create an entry for each host in the SQL Server integration config.
In these cases, Datadog recommends limiting the number of instances per Agent to a maximum of 10 database instances to guarantee reliable performance.
If the Agent must connect to a database host through a remote proxy, all telemetry is tagged with the hostname of the proxy rather than the database instance. Use the reported_hostname option to set a custom override of the hostname detected by the Agent.
SQL Server Browser Service, Named Instances, and other services can automatically detect port numbers. You can use this instead of hardcoding port numbers in connection strings. To use the Agent with one of these services, set the port field to 0.