Datadog 에이전트는 모니터링되는 호스트에 직접 연결해야 합니다. 자체 호스팅 데이터베이스의 경우 127.0.0.1 또는 소켓을 사용하는 것이 좋습니다. 에이전트는 프록시, 로드 밸런서 또는 연결 풀러를 통해 데이터베이스에 연결해서는 안 됩니다. 에이전트가 실행되는 동안 다른 호스트에 연결하면(장애 조치, 로드밸런싱 등의 경우) 에이전트가 두 호스트 간의 통계 차이를 계산하여 부정확한 메트릭을 생성합니다.
데이터 보안 고려 사항
에이전트가 데이터베이스에서 수집하는 데이터와 데이터 보안을 유지하는 방법에 대한 자세한 내용은 민감한 정보를 참조하세요.
MySQL 설정 구성
쿼리 메트릭, 샘플, 설명 계획을 수집하려면 MySQL 성능 스키마를 활성화하고 명령줄 또는 설정 파일 (예: mysql.conf)에서 다음 성능 스키마 옵션을 설정합니다:
Parameter
Value
Description
performance_schema
ON
필수. 성능 스키마를 활성화합니다.
max_digest_length
4096
더 대규모의 쿼리 수집에 필요합니다. 기본값을 사용하면 1024자 이상의 쿼리가 수집됩니다.
선택 사항. 스레드별 최근 쿼리 기록 추적을 활성화합니다. 활성화하면 빈도수가 낮은 쿼리에서 실행 상세정보를 캡처할 가능성이 더 커집니다.
참고: Agent 액세스 권한 부여의 일부로 Agent가 런타임에 동적으로 performance-schema-consumer-* 설정을 사용하도록 허용합니다. 런타임 설정 컨슈머를 참조하세요.
에이전트에 접근 권한 부여
Datadog 에이전트가 통계와 쿼리를 수집하려면 데이터베이스에 대한 읽기 전용 액세스가 필요합니다.
다음 지침은 datadog@'%'를 사용하는 모든 호스트에서 로그인할 수 있도록 Agent에 권한을 부여합니다. datadog@'localhost'를 사용하여 로컬 호스트에서만 로그인하도록 datadog 사용자를 제한할 수 있습니다. 자세한 정보는 MySQL 설명서를 참조하세요.
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.
에이전트 설치
DataDog Agent를 설치하면 MySQL에 데이터베이스 모니터링에 필요한 MySQL 검사도 설치됩니다. MySQL 데이터베이스 호스트에 대한 Agent를 아직 설치하지 않은 경우 Agent 설치 지침을 참조하세요.
이 설정 블록을 mysql.d/conf.yaml에 추가하여 MySQL 메트릭을 수집하세요.
init_config:instances:- dbm:truehost:127.0.0.1port:3306username:datadogpassword:'ENC[datadog_user_database_password]'# from the CREATE USER step earlier
datadog 사용자는 MySQL 통합 설정에서 localhost 대신 host: 127.0.0.1로 설정되어야 합니다. 또는, sock를 사용합니다.
Agent가 /var/log/mysql 디렉토리 및 내부의 모든 파일에 대한 읽기 권한을 가지고 있는지 확인합니다. 이러한 파일이 고려되었는지, 사용 권한이 올바르게 설정되었는지 확인하기 위해 logrotate 설정을 다시 확인하세요.
/etc/logrotate.d/mysql-server에는 다음과 유사한 내용이 있습니다:
로그 수집은 Datadog 에이전트에서 기본적으로 비활성화되어 있습니다. datadog.yaml 파일에서 활성화합니다.
logs_enabled:true
MySQL 로그 수집을 시작하려면 이 설정 블록을 mysql.d/conf.yaml 파일에 추가합니다:
logs:- type:filepath:"<ERROR_LOG_FILE_PATH>"source:mysqlservice:"<SERVICE_NAME>"- type:filepath:"<SLOW_QUERY_LOG_FILE_PATH>"source:mysqlservice:"<SERVICE_NAME>"log_processing_rules:- type:multi_linename:new_slow_query_log_entrypattern:"# Time:"# If mysqld was started with `--log-short-format`, use:# pattern: "# Query_time:"# If using mysql version <5.7, use the following rules instead:# - type: multi_line# name: new_slow_query_log_entry# pattern: "# Time|# User@Host"# - type: exclude_at_match# name: exclude_timestamp_only_line# pattern: "# Time:"- type:filepath:"<GENERAL_LOG_FILE_PATH>"source:mysqlservice:"<SERVICE_NAME>"# For multiline logs, if they start by the date with the format yyyy-mm-dd uncomment the following processing rule# log_processing_rules:# - type: multi_line# name: new_log_start_with_date# pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])# If the logs start with a date with the format yymmdd but include a timestamp with each new second, rather than with each log, uncomment the following processing rule# log_processing_rules:# - type: multi_line# name: new_logs_do_not_always_start_with_timestamp# pattern: \t\t\s*\d+\s+|\d{6}\s+\d{,2}:\d{2}:\d{2}\t\s*\d+\s+
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 MySQL integration config.
Datadog recommends using one Agent to monitor no more than 30 database instances.
Benchmarks show that one Agent running on a t4g.medium EC2 instance (2 CPUs and 4GB of RAM) can successfully monitor 30 RDS db.t3.medium instances (2 CPUs and 4GB of RAM).
Note: For Agent v7.68 and below, use schemas_collection instead of collect_schemas.
Note: To collect schemas for a table, MySQL requires that the Datadog Agent has SELECT access for it. This is a MySQL-enforced restriction. Without SELECT access, the table will not appear in metadata queries.
The Agent does not use SELECT to access or read your table data. This permission is needed solely to retrieve schema details, due to how MySQL handles metadata visibility.
To grant SELECT permissions to a Datadog user, use one or a combination of the following commands:
If the Agent must connect through a proxy such as the Cloud SQL Auth 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.