AWS RDS MySQL 인스턴스용 NRDOT Collector를 사용하여 MySQL 모니터링을 설정하십시오. RDS 환경에는 성능 스키마 소비자 및 권한에 대한 특정 고려 사항이 있습니다.
가이드 설치
대신 뉴렐릭 UI를 통해 설치하려면 one.newrelic.com > Integrations & Agents > MySQL (Database 360) (으)로 이동하십시오. 이 페이지는 수동 설치만 다룹니다.
전제 조건
설치하기 전에 다음을 갖추고 있는지 확인하십시오:
New Relic 라이센스 키 .
NRDOT Collector를 설치하는 호스트와 RDS MySQL 인스턴스 간의 네트워크 연결입니다.
뉴렐릭 OTLP 엔드포인트 문서에 대한 네트워크 연결
RDS 마스터 사용자 크리덴셜.
지원되는 MySQL 버전, 필수 권한 및
performance_schema요구 사항은 호환성 및 전제 조건을 참조하십시오.
NRDOT Collector 설정
RDS 인스턴스에 연결할 수 있는 시스템에 NRDOT Collector를 설치하십시오.
데이터베이스 사용자 구성
RDS MySQL 인스턴스에 필요한 권한을 가진 모니터링 사용자를 생성하십시오.
- 모니터링 사용자를 생성하려면 마스터 사용자로 RDS 인스턴스에 연결하고 다음을 실행하십시오.
CREATE USER '<YOUR_DB_USERNAME>'@'%' IDENTIFIED BY '<YOUR_DB_PASSWORD>';- 쿼리 샘플 및 상위 쿼리를 수집하려면 모니터링 사용자에게 다음 권한을 부여하십시오:
GRANT SELECT ON performance_schema.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT SELECT ON *.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT REPLICATION CLIENT ON *.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT PROCESS ON *.* TO '<YOUR_DB_USERNAME>'@'%';- (선택 사항) 뉴렐릭 플랫폼에서 대기 시간 데이터를 보려면 모니터링 사용자에게 다음 권한을 부여하십시오:
GRANT UPDATE ON performance_schema.setup_consumers TO '<YOUR_DB_USERNAME>'@'%';팁
이 설정은 RDS에서 유지되지 않으며, events_waits_current 소비자는 다시 시작하거나 장애 조치할 때마다 재설정됩니다. 이 권한을 부여하면 수집기가 다시 연결할 때 자동으로 다시 활성화할 수 있으며, 그렇지 않으면 다시 시작할 때마다 활성화 문을 다시 실행해야 합니다.
- (선택 사항) 연결 및 권한을 확인하려면 다음을 실행하십시오:
$mysql -h <YOUR_DB_HOST> -P <YOUR_DB_PORT> -u <YOUR_DB_USERNAME> -p -e "SELECT 1;"명령이 오류 없이 완료되면 모니터링 사용자, 호스트 및 포트가 모두 올바른 것입니다.
NRDOT Collector구성
MySQL 특정 설정으로 NRDOT Collector를 구성하십시오.
이 설정은 nrmysql 수신기만을 사용한 필수 MySQL 모니터링에 중점을 둡니다.
전체 설정
이 기준 설정은 필수 메트릭을 수집합니다. 전체 메트릭 카탈로그를 보려면 설정 참조를 참조하십시오.
mysql-config.yaml이라는 이름의 설정 파일을 생성합니다:
$sudo nano /etc/nrdot-collector/mysql-config.yaml- 이전 단계에서 생성한
mysql-config.yaml파일에 다음 설정을 추가하십시오.
receivers: nrmysql: endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>" transport: tcp username: "<YOUR_DB_USERNAME>" password: "<YOUR_DB_PASSWORD>" allow_native_passwords: true collection_interval: 15s initial_delay: 1s explain_mode: procedure statement_events: digest_text_limit: 4096 time_limit: 24h limit: 500 query_sample_collection: max_rows_per_query: 100 allowed_comment_keys: [nr_service_guid] top_query_collection: lookback_time: 60 max_query_sample_count: 5000 top_query_count: 200 collection_interval: 60s query_plan_cache_size: 1000 query_plan_cache_ttl: 1h allowed_comment_keys: [nr_service_guid] events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.query_plan: enabled: true resource_attributes: db.system.version: enabled: true metrics: mysql.query.count: enabled: true mysql.query.slow.count: enabled: true mysql.commands: enabled: true mysql.innodb.data_file.io: enabled: true
processors: batch:
exporters: otlp/newrelic: endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>" headers: api-key: "<YOUR_NEWRELIC_LICENSE_KEY>" compression: gzip retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s
service: pipelines: metrics: receivers: [nrmysql] processors: [batch] exporters: [otlp/newrelic] logs: receivers: [nrmysql] processors: [batch] exporters: [otlp/newrelic]팁
이 설정은 선택 사항인 database 및 tls 필드를 생략합니다. 기본적으로 수신기는 모니터링 사용자가 액세스할 수 있는 모든 데이터베이스를 모니터하고 TLS 없이 연결합니다. 대부분의 Amazon RDS/Aurora 인스턴스는 SSL/TLS를 강제하므로 이를 활성화해야 할 수 있습니다. tls 블록 및 ca_file 설정에 대해서는 상세 인사이트 활성화를 참조하십시오.
구성 매개변수
다음 표에서는 nrmysql 수신자에 대한 주요 설정 초기화에 대해 설명합니다.
| 매개변수 | 설명 |
|---|---|
<YOUR_DB_HOST> | RDS MySQL 엔드포인트입니다. 예를 들어, mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com |
<YOUR_DB_PORT> | MySQL 포트 번호를 입력하십시오. 기본값은 3306 입니다. |
<YOUR_DB_USERNAME> | 데이터베이스 사용자 구성에서 생성한 모니터링 사용자의 사용자 이름을 입력하십시오. |
<YOUR_DB_PASSWORD> | 데이터베이스 사용자 설정에서 생성한 모니터링 사용자의 비밀번호를 입력합니다. |
<YOUR_NEWRELIC_OTLP_ENDPOINT> | 뉴렐릭 OTLP 엔드포인트를 입력하십시오. 자세한 내용은 뉴렐릭 OTLP 엔드포인트를 참조하십시오. |
<YOUR_NEWRELIC_LICENSE_KEY> | 뉴렐릭 라이선스 키를 입력하십시오. |
transport | 네트워크를 통해 연결하기 위해 기본값은 tcp으로 설정됩니다. |
collection_interval | 메트릭 스크랩 간격을 입력하십시오. 기본값: 15s. |
explain_mode | 기본값은 inline으로 설정되어 있습니다. 모니터링 사용자에게 DML 권한을 부여하지 않고 쓰기 문에 대한 쿼리 계획을 수집하려면 값을 procedure (으)로 설정하십시오. 쓰기 문에 대한 쿼리 계획을 참조하십시오. |
NRDOT Collector 설정 유효성 검사
- 새
mysql-config.yaml파일을 가리키도록 설정 경로를 업데이트하십시오:
$sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/mysql-config.yaml"|' /etc/nrdot-collector/nrdot-collector.conf- NRDOT Collector 설정을 검증하여 형식이 올바르고 제대로 작동하는지 확인합니다:
$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mysql-config.yaml팁
당신은 또한 수:
여러 수신자 구성: 하나의 수집기에서 여러 MySQL 인스턴스를 모니터하려면. MySQL 데이터베이스를 APM과 연결: 애플리케이션 성능을 데이터베이스 작업과 연관시킵니다. 이를 통해 어떤 애플리케이션이 특정 데이터베이스 워크로드를 생성하는지 정확히 확인할 수 있습니다. 시크릿 관리 설정: 데이터베이스 자격 증명과 같은 민감한 정보를 안전하게 관리할 수 있습니다. 이는 설정 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화하는 데 도움이 됩니다.
NRDOT Collector를 다시 시작하십시오
- 설정을 업데이트한 후 NRDOT Collector 서비스를 다시 시작하십시오:
$sudo systemctl restart nrdot-collector팁
새로운 설정이 적용되도록 설정 변경 후에는 항상 NRDOT Collector 서비스를 다시 시작하십시오.
- 수집기가 제대로 실행되고 있는지 확인하려면 서비스 상태를 확인하십시오:
$sudo systemctl status nrdot-collector데이터 찾기 및 사용
데이터가 수집되면 뉴렐릭 UI를 통해 포괄적인 RDS MySQL 데이터베이스 모니터링에 액세스할 수 있습니다.
뉴렐릭에서 RDS MySQL 데이터베이스 엔티티를 찾으려면 다음을 수행하십시오:
- https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
- Entity type 드롭다운 메뉴에서 MySQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
- 엔티티 목록에서 RDS MySQL 데이터베이스를 선택하십시오.
Amazon RDS 제한 사항
mysql.events_waits_current.timer_wait 및 대기 기반 대시보드에는 events_waits_current 성능 스키마 소비자가 필요합니다. mysql8.0 RDS 파라미터 그룹 제품군은 performance_schema_consumer_* 파라미터를 노출하지 않으므로 영구적인 설정을 할 수 없습니다. 데이터베이스를 다시 시작하거나 장애 조치할 때마다 설정이 재설정되므로 런타임에 이 소비자를 활성화해야 합니다.