- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
데이터베이스 모니터링은 쿼리 메트릭, 쿼리 샘플, 실행 계획, 데이터베이스 상태, 장애 조치, 이벤트와 같은 정보를 수집해 Microsoft SQL Server 데이터베이스에 관한 상세한 정보를 가시화합니다.
데이터베이스에서 데이터베이스 모니터링을 활성화하려면 다음 단계를 완료하세요.
Datadog 에이전트가 통계와 쿼리를 수집하려면 데이터베이스에 읽기 전용 액세스가 필요합니다.
Cloud SQL 인스턴스에 datadog
사용자를 생성합니다.
에이전트에 읽기 전용 액세스 권한을 유지하려면 CustomerDbRootRole
기본값에서 datadog
사용자를 제거합니다. 그리고 에이전트에 필요한 명시적인 권한을 부여합니다.
GRANT VIEW SERVER STATE to datadog as CustomerDbRootRole;
GRANT VIEW ANY DEFINITION to datadog as CustomerDbRootRole;
ALTER SERVER ROLE CustomerDbRootRole DROP member datadog;
각 애플리케이션 추가 데이터베이스에 datadog
사용자를 생성합니다.
USE [database_name];
CREATE USER datadog FOR LOGIN datadog;
Google Cloud SQL에서는 CONNECT ANY DATABASE
를 허용하지 않기 때문에 이 단계를 실행해야 합니다. Datadog 에이전트가 각 데이터베이스에 연결되어 있어야 해당 데이터베이스에 맞는 파일 I/O 통계를 수집할 수 있습니다.
Google Cloud에서는 호스트에 바로 액세스하는 것을 허용하지 않기 때문에 SQL 서버 호스트와 통신할 수 있는 별도 호스트에 Datadog 에이전트를 설치해야 합니다. 에이전트를 설치하고 실행하는 데는 여러 가지 방법이 있습니다.
SQL Server 텔레메트리를 수집하려면 먼저 Datadog 에이전트를 설치합니다.
SQL Server 설정 파일 C:\ProgramData\Datadog\conf.d\sqlserver.d\conf.yaml
을 생성합니다. 사용할 수 있는 모든 설정 옵션을 보려면 설정 파일 샘플을 참고하세요.
init_config:
instances:
- dbm: true
host: '<HOSTNAME>,<SQL_PORT>'
username: datadog
password: '<PASSWORD>'
connector: adodbapi
provider: MSOLEDBSQL
tags: # Optional
- 'service:<CUSTOM_SERVICE>'
- 'env:<CUSTOM_ENV>'
# 프로젝트와 인스턴스를 추가한 후에는 CPU, 메모리 등과 같은 추가 클라우드 데이터를 풀하도록 Datadog Google Cloud(GCP) 통합을 설정합니다.
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
project_id
와 instance_id
필드를 설정하는 방법에 관한 자세한 정보는 SQL Server 통합 스펙을 참고하세요.
Windows Authentification을 사용하려면 connection_string: "Trusted_Connection=yes"
설정에서 username
과 password
필드를 비워둡니다.
service
와 env
태그를 사용하여 일반적인 태깅 체계를 통해 데이터베이스 텔레메트리를 다른 텔레메트리와 연결합니다. Datadog에서 이 같은 태그를 사용하는 방법을 알아보려면 통합 서비스 태깅을 참고하세요.
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.
권장하는 ADO 공급자는 Microsoft OLE DB Driver입니다. 에이전트가 실행되는 호스트에 드라이버를 설치했는지 확인하세요.
connector: adodbapi
adoprovider: MSOLEDBSQL19 # 버전 18 이하에서는 MSOLEDBSQL로 교체
다른 공급자인 SQLOLEDB
와 SQLNCLI
는 Microsoft에서 더 이상 사용되지 않기 때문에 사용하지 않습니다.
권장되는 ODBC 드라이버는 Microsoft ODBC Driver입니다. Agent 7.51부터 SQL Server용 ODBC Driver 18이 Linux용 Agent에 포함됩니다. Windows의 경우 Agent가 실행 중인 호스트에 드라이버가 설치되어 있는지 확인하세요.
connector: odbc
driver: '{ODBC Driver 18 for SQL Server}'
에이전트 설정이 모두 완료되면 Datadog 에이전트를 다시 시작하세요.
에이전트의 상태 하위 명령을 실행하고 Checks 섹션에서 sqlserver
를 찾아보세요. 시작하려면 Datadog의 Databases 페이지로 이동하세요.
SQL Server 원격 측정을 수집하려면 먼저 Datadog 에이전트를 설치합니다.
Linux의 경우 Datadog 에이전트에 ODBC SQL Server 드라이버(예: Microsoft ODBC 드라이버)를 추가 설치해야 합니다. ODBC SQL Server가 설치되면 odbc.ini
과 odbcinst.ini
파일을 /opt/datadog-agent/embedded/etc
폴더에 복사하세요.
odbc
커넥터를 사용해 odbcinst.ini
파일에 명시된 대로 적절한 드라이버를 지정합니다.
SQL Server 에이전트 설정 파일 /etc/datadog-agent/conf.d/sqlserver.d/conf.yaml
을 생성합니다. 사용할 수 있는 모든 설정 옵션을 보려면 설정 파일 샘플을 참고하세요.
init_config:
instances:
- dbm: true
host: '<HOSTNAME>,<SQL_PORT>'
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: odbc
driver: '<Driver from the `odbcinst.ini` file>'
tags: # Optional
- 'service:<CUSTOM_SERVICE>'
- 'env:<CUSTOM_ENV>'
# 프로젝트 및 인스턴스를 추가한 후, GCP(Datadog Google Cloud) 통합을 설정하여 CPU, 메모리 등과 같은 추가 클라우드 데이터를 가져옵니다.
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
project_id
와 instance_id
필드를 설정하는 방법에 관한 자세한 정보는 SQL Server 통합 스펙을 참고하세요.
service
와 env
태그를 사용하여 일반적인 태깅 체계를 통해 데이터베이스 텔레메트리를 다른 텔레메트리와 연결합니다. Datadog에서 이 같은 태그를 사용하는 방법을 알아보려면 통합 서비스 태깅을 참고하세요.
에이전트 설정이 모두 완료되면 Datadog 에이전트를 다시 시작하세요.
에이전트의 상태 하위 명령을 실행하고 Checks 섹션에서 sqlserver
를 찾아보세요. 시작하려면 Datadog의 Databases 페이지로 이동하세요.
Docker 컨테이너에서 실행하는 데이터베이스 모니터링 에이전트를 구성하려면 에이전트 컨테이너에서 자동탐지 통합 템플릿을 Docker 레이블로 설정합니다.
참고: 에이전트에 Docker 자동탐지 레이블을 읽을 수 있는 권한이 있어야 작동합니다.
값을 내 계정과 환경에 맞게 변경하세요. 사용할 수 있는 설정 옵션을 모두 보려면 설정 파일 샘플을 참고하세요.
export DD_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export DD_AGENT_VERSION=7.51.0
docker run -e "DD_API_KEY=${DD_API_KEY}" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-l com.datadoghq.ad.check_names='["sqlserver"]' \
-l com.datadoghq.ad.init_configs='[{}]' \
-l com.datadoghq.ad.instances='[{
"dbm": true,
"host": "<HOSTNAME>",
"port": <SQL_PORT>,
"connector": "odbc",
"driver": "ODBC Driver 18 for SQL Server",
"username": "datadog",
"password": "<PASSWORD>",
"tags": [
"service:<CUSTOM_SERVICE>"
"env:<CUSTOM_ENV>"
],
"gcp": {
"project_id": "<PROJECT_ID>",
"instance_id": "<INSTANCE_ID>"
}
}]' \
gcr.io/datadoghq/agent:${DD_AGENT_VERSION}
project_id
와 instance_id
필드를 설정하는 방법에 관한 자세한 정보는 SQL Server 통합 스펙을 참고하세요.
service
와 env
태그를 사용하여 일반적인 태깅 체계를 통해 데이터베이스 텔레메트리를 다른 텔레메트리와 연결합니다. Datadog에서 이 같은 태그를 사용하는 방법을 알아보려면 통합 서비스 태깅을 참고하세요.
에이전트의 상태 하위 명령을 실행하고 Checks 섹션에서 sqlserver
를 찾아보세요. 또는 Datadog의 Databases 페이지에서 시작할 수도 있습니다.
쿠버네티스 클러스터가 있는 경우 데이터베이스 모니터링에 Datadog 클러스터 에이전트를 사용하세요.
쿠버네티스 클러스터에서 클러스터 점검을 아직 활성화하지 않은 경우 클러스터 확인 활성화 지침에 따라 활성화합니다. 클러스터 에이전트 컨테이너에 연결된 정적 파일을 이용하거나 쿠버네티스 서비스 주석을 이용해 클러스터 에이전트를 설정할 수 있습니다.
다음 단계를 완료해 쿠버네티스 클러스터에서 Datadog 클러스터 에이전트를 설치하세요. 내 계정과 환경에 맞게 값을 변경하세요.
Helm용 Datadog 에이전트 설치 지침을 완료하세요.
다음을 포함하도록 YAML 설정 파일(클러스터 에이전트 설치 지침의 datadog-values.yaml
)을 업데이트하세요.
clusterAgent:
confd:
sqlserver.yaml: |-
cluster_check: true
init_config:
instances:
- dbm: true
host: <HOSTNAME>
port: 1433
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: 'odbc'
driver: 'ODBC Driver 18 for SQL Server'
tags: # Optional
- 'service:<CUSTOM_SERVICE>'
- 'env:<CUSTOM_ENV>'
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
clusterChecksRunner:
enabled: true
명령줄에서 위의 설정 파일로 에이전트를 배포합니다.
helm install datadog-agent -f datadog-values.yaml datadog/datadog
--set targetSystem=windows
를 helm 설치
명령에 추가하세요.연결된 설정 파일로 클러스터 점검을 설정하려면 다음 경로로 설정 파일을 클러스터 에이전트 컨테이너에 연결합니다. /conf.d/sqlserver.yaml
:
cluster_check: true # Make sure to include this flag
init_config:
instances:
- dbm: true
host: '<HOSTNAME>'
port: <SQL_PORT>
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: "odbc"
driver: "ODBC Driver 18 for SQL Server"
tags: # Optional
- 'service:<CUSTOM_SERVICE>'
- 'env:<CUSTOM_ENV>'
# 프로젝트 및 인스턴스를 추가한 후, GCP(Datadog Google Cloud) 통합을 설정하여 CPU, 메모리 등과 같은 추가 클라우드 데이터를 가져옵니다.
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
파일을 연결하는 대신 쿠버네티스 서비스로 인스턴스 설정을 지정할 수 있습니다. 쿠버네티스가 실행되는 에이전트에서 이 점검을 설정하려면 Datadog 클러스터 에이전트와 동일한 네임스페이스로 서비스를 생성하세요.
apiVersion: v1
kind: Service
metadata:
name: sqlserver-datadog-check-instances
annotations:
ad.datadoghq.com/service.check_names: '["sqlserver"]'
ad.datadoghq.com/service.init_configs: '[{}]'
ad.datadoghq.com/service.instances: |
[
{
"dbm": true,
"host": "<HOSTNAME>",
"port": <SQL_PORT>,
"username": "datadog",
"password": "ENC[datadog_user_database_password]",
"connector": "odbc",
"driver": "ODBC Driver 18 for SQL Server",
"tags": ["service:<CUSTOM_SERVICE>", "env:<CUSTOM_ENV>"], # Optional
"gcp": {
"project_id": "<PROJECT_ID>",
"instance_id": "<INSTANCE_ID>"
}
}
]
spec:
ports:
- port: 1433
protocol: TCP
targetPort: 1433
name: sqlserver
project_id
와 instance_id
필드를 설정하는 방법에 관한 자세한 정보는 SQL Server 통합 스펙을 참고하세요.
클러스터 에이전트가 자동으로 설정을 등록하고 SQL Server 점검을 실행합니다.
datadog
사용자 암호가 일반 텍스트로 노출되는 것을 예방하려면 에이전트의 비밀 관리 패키지를 이용해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
.
Example:
[datadog]
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.2.1
Update the /etc/datadog-agent/conf.d/sqlserver.d/conf.yaml
file with your DSN information.
Example:
instances:
- dbm: true
host: 'localhost,1433'
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: 'odbc'
driver: '{ODBC Driver 18 for SQL Server}' # This is the section header of odbcinst.ini
dsn: 'datadog' # This is the section header of odbc.ini
Restart the Agent.
Note: 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: true
host: 'shopist-prod,1433'
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: adodbapi
adoprovider: MSOLEDBSQL
include_ao_metrics: true # If Availability Groups is enabled
include_fci_metrics: true # If Failover Clustering is enabled
Note: For monitoring SQL Server Agent jobs, the Datadog Agent must have access to the [msdb] 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.
instances:
- dbm: true
host: 'shopist-prod,1433'
username: datadog
password: '<PASSWORD>'
connector: adodbapi
adoprovider: MSOLEDBSQL
agent_jobs:
enabled: true
collection_interval: 15
history_row_limit: 10000
Starting from Agent v7.56, the Datadog Agent can collect schema information from SQLServer databases. To enable this feature, use the schemas_collection
option. Schemas are collected on databases for which the Agent has CONNECT
access.
Note: For schema collection on RDS instances, it is necessary to grant explicit CONNECT
access to the datadog
user for each database on the instance. See Grant the Agent access for more details.
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: true
host: 'shopist-prod,1433'
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: adodbapi
adoprovider: MSOLEDBSQL
database_autodiscovery:
enabled: true
schemas_collection:
enabled: true
# Optional: enable metric collection for indexes
include_index_usage_metrics: true
# This instance only collects schemas and index metrics from the `users` database
- dbm: true
host: 'shopist-prod,1433'
username: datadog
password: 'ENC[datadog_user_database_password]'
connector: adodbapi
adoprovider: MSOLEDBSQL
database: users
schemas_collection:
enabled: true
include_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.
init_config:
instances:
- dbm: true
host: 'example-service-primary.example-host.com,1433'
username: datadog
connector: adodbapi
adoprovider: MSOLEDBSQL
password: 'ENC[datadog_user_database_password]'
tags:
- 'env:prod'
- 'team:team-discovery'
- 'service:example-service'
- dbm: true
host: 'example-service–replica-1.example-host.com,1433'
connector: adodbapi
adoprovider: MSOLEDBSQL
username: datadog
password: 'ENC[datadog_user_database_password]'
tags:
- 'env:prod'
- 'team:team-discovery'
- 'service:example-service'
- dbm: true
host: 'example-service–replica-2.example-host.com,1433'
connector: adodbapi
adoprovider: MSOLEDBSQL
username: datadog
password: 'ENC[datadog_user_database_password]'
tags:
- 'env:prod'
- 'team:team-discovery'
- 'service:example-service'
[...]
To collect custom metrics, use the custom_queries
option. See the sample sqlserver.d/conf.yaml for more details.
init_config:
instances:
- dbm: true
host: 'localhost,1433'
connector: adodbapi
adoprovider: MSOLEDBSQL
username: datadog
password: 'ENC[datadog_user_database_password]'
custom_queries:
- query: SELECT age, salary, hours_worked, name FROM hr.employees;
columns:
- name: custom.employee_age
type: gauge
- name: custom.employee_salary
type: gauge
- name: custom.employee_hours
type: count
- name: name
type: tag
tags:
- 'table:employees'
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.
init_config:
instances:
- dbm: true
host: 'localhost,1433'
connector: adodbapi
adoprovider: MSOLEDBSQL
username: datadog
password: 'ENC[datadog_user_database_password]'
reported_hostname: products-primary
- dbm: true
host: 'localhost,1433'
connector: adodbapi
adoprovider: MSOLEDBSQL
username: datadog
password: 'ENC[datadog_user_database_password]'
reported_hostname: products-replica-1
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
.
For example, a Named Instance config:
init_config:
instances:
- host: <hostname\instance name>
port: 0
Google Cloud SQL에서 좀 더 포괄적인 데이터베이스를 수집하려면 Google Cloud SQL 통합을 설치하세요.
추가 유용한 문서, 링크 및 기사: