mysql-otel Helm 차트를 사용하여 Kubernetes에서 MySQL 모니터링을 설치하고 구성할 수 있습니다. 선택적으로, 차트는 모니터링 사용자를 생성하는 설정 작업을 실행할 수도 있습니다.
중요
차트는 네트워크를 통해 원격으로 MySQL에 도달하는 Kubernetes 배포로 수집기를 배포합니다. 결과적으로 항상 TCP를 통해 연결되며(Unix-socket 모니터링은 지원되지 않음), MySQL 메트릭만 보고합니다(MySQL이 실행되는 머신에 대한 호스트 또는 인프라 메트릭은 없음). mysql.*을(를) 사용하여 릴리스당 하나의 MySQL 인스턴스를 모니터하며, 단일 릴리스에서 여러 인스턴스를 모니터하려면 대신 mysqlMulti.*을(를) 사용하십시오(아래의 단일 릴리스에서 여러 인스턴스 모니터 참조).
전제 조건
유효한 뉴렐릭 라이선스 키.
MySQL 5.7 이상.
Helm 3.0 이상 및 쿠버네티스 클러스터에 액세스하도록 구성된
kubectl.쿠버네티스 클러스터에서 MySQL 호스트(또는 RDS 엔드포인트) 및 포트로의 네트워크 연결:
- 자체 호스팅: MySQL 호스트로 라우팅되는 경로(VPN, 피어링 또는 공유 네트워크), 호스트명인 경우 DNS 확인이 필요하며, MySQL 측 방화벽은 연결의 실제 소스 IP(파드 IP 자체가 아니라 NAT 게이트웨이일 수 있음)를 허용해야 합니다.
- AWS RDS: VPC 피어링, 트랜짓 게이트웨이 또는 RDS 인스턴스와의 공유 VPC 배치, 그리고 RDS 보안 그룹은 클러스터의 이그레스 소스에서 MySQL 포트(기본값
3306)를 허용해야 합니다.
이미 생성한 모니터링 사용자이거나, 차트의 설정 작업에서 사용자를 생성할 수 있도록 하는 MySQL 관리자 자격 증명입니다. 아래의 모니터링 자격 증명 구성을 참조하십시오.
네임스페이스를 생성하십시오.
설치할 네임스페이스를 생성하십시오. helm install --create-namespace은(는) 최종 설치 단계에서만 네임스페이스를 생성하므로, 다음 단계에서 시크릿을 생성하기 전에 해당 네임스페이스가 존재해야 합니다:
$kubectl create namespace newrelic팁
아래의 모든 명령어에서 -n을(를) 전달할 필요가 없도록 현재 kubectl 컨텍스트의 기본 네임스페이스로 설정하십시오:
$kubectl config set-context --current --namespace=newrelic모니터링 자격 증명 구성
차트의 설정 작업이 MySQL 모니터링 사용자를 생성하도록 할지, 그렇지 않다면 자격 증명을 어떻게 제공할지 결정하십시오:
Helm 값을 설정하십시오.
환경에 맞게 mysql.topology을(를) 설정하십시오:
값 | 설명 |
|---|---|
| 네트워크를 통해 연결되는 자체 호스팅 MySQL. |
| AWS RDS의 MySQL 또는 Aurora. |
이전 단계에서 선택한 자격 증명 방법과 일치하는 values.yaml을(를) 사용하십시오:
매개변수 | 설명 |
|---|---|
| 귀하의 뉴렐릭 라이선스 키입니다. |
| 해당 리전의 OTLP/gRPC 엔드포인트, 스킴이 없는 순수
형태:
(US) 또는
(EU). 자세한 내용은 참조하십시오. |
/
| 클러스터에서 도달할 수 있는 MySQL 호스트(또는 RDS 엔드포인트) 및 포트입니다. |
| 선택 사항입니다. 모니터링을 하나의 데이터베이스로 제한하십시오. 모든 데이터베이스를 모니터하려면 비워 두십시오. |
| 선택 사항입니다. 차트는
블록을 선언하지 않으며
값이 없습니다. 수신기의 자체 기본값이 적용되며(
,
), 이를 위해서는 인증서 유효성 검사를 포함하는 암호화된 연결이 필요합니다.
을(를) 통해 이를 재정의하십시오: 인증서 유효성 검사를 건너뛰도록
을(를) 설정하거나(연결의 보안을 약화시키므로 자체 서명된 인증서를 사용한 테스트에만 해당), 수집기 컨테이너에 마운트된 CA 번들을 가리키도록
을(를) 설정하십시오. Require SSL/TLS가 적용된 Amazon RDS 인스턴스는 . Amazon이 CA를 교체함에 따라 하드코딩된 번들이 오래될 위험이 있으므로 차트는 의도적으로 기본 번들을 제공하지 않습니다. |
/
| 설정 작업에서 사용되는
CLI 이미지입니다. 공식적으로 활발하게 유지 관리되는
을(를) 기본값으로 사용하므로 설정 작업을 활성화하는 데 추가 이미지 플래그가 필요하지 않습니다. 다른 버전이 필요한 경우에만 재정의하십시오. |
| 선택 사항입니다. 또한 대기 시간 데이터에 필요한
에 대한
을(를) 부여합니다. |
팁
mysql.collectionInterval, mysql.explainMode, statementEvents/querySampleCollection/topQueryCollection 블록 및 additionalReceiverConfig 이스케이프 해치를 포함하여 사용 가능한 모든 설정 옵션은 차트의 values.yaml을 참조하십시오.
(선택 사항) 하나의 릴리스에서 여러 인스턴스 모니터
mysql.* 대신, 단일 릴리스의 단일 수집기 파드에서 여러 MySQL 인스턴스(자체 호스팅 또는 RDS)를 모니터하도록 mysqlMulti.enabled: true을(를) 설정하십시오. 두 모드는 상호 배타적입니다. 동일한 릴리스에서 mysql.server 및 mysqlMulti.enabled: true을(를) 설정하지 마십시오.
다중 인스턴스 모드에는 일반 사용자 이름/비밀번호 경로가 없습니다: 모든 인스턴스에는 모니터링 자격 증명이 있는 자체 Kubernetes 시크릿이 필요합니다. 설정 작업에서 각 모니터링 사용자를 생성하도록 할지 여부도 결정하십시오:
매개변수 | 설명 |
|---|---|
|
대신 하나의 릴리스에서 여러 인스턴스를 모니터하려면
(으)로 설정하십시오. 기본값은
입니다. |
|
또는
,
과(와) 동일한 의미이며, 이 릴리스의 모든 인스턴스에서 공유됩니다. |
| 모니터할 인스턴스 목록입니다. 각 항목에는 고유한
,
(
의 기본값은
) 및
이(가) 필요하며,
은(는) 선택적으로 모니터링을 하나의 데이터베이스로 제한하고(
와(과) 동일한 의미),
이(가)
인 경우에만 항목당
을(를) 추가하십시오. |
팁
스크랩 설정(수집 간격, TLS, 명령문 이벤트, 쿼리 샘플 수집, 상위 쿼리 수집)은 mysqlMulti.databases의 모든 인스턴스에 동일하게 적용됩니다. 인스턴스별 재정의는 없습니다. 달라야 하는 항목에는 additionalReceiverConfig을(를) 사용하십시오. 설정 작업은 릴리스당 한 번이 아니라 인스턴스(<release>-setup-<name>)당 한 번 실행됩니다.
Helm 차트를 설치하세요
뉴클릭 Helm 다음을 추가하세요.
bash$helm repo add newrelic https://helm-charts.newrelic.com$helm repo updatevalues.yaml파일을 사용하여 차트를 설치하십시오:bash$helm upgrade --install mysql-otel newrelic/mysql-otel \>-n newrelic \>--create-namespace \>-f values.yaml
설치를 확인하십시오
설정 작업이 완료되었고(활성화된 경우) 수집기 파드가 실행 중인지 확인하십시오:
bash$kubectl get jobs,pods -n newrelic --watch데이터가 수신되는지 확인하려면 쿼리 빌더에서 이 쿼리를 실행하십시오:
SELECT count(*) FROM MetricWHERE metricName LIKE 'mysql.%'AND instrumentation.provider = 'opentelemetry'SINCE 10 minutes ago
데이터 찾기 및 사용
데이터가 수집되면 뉴렐릭 UI를 통해 포괄적인 MySQL 데이터베이스 모니터링에 액세스할 수 있습니다.
뉴렐릭에서 MySQL 데이터베이스 엔티티를 찾으려면 다음을 수행하십시오:
- one.newrelic.com > All capabilities > Databases 으)로 이동합니다.
- Entity type 드롭다운 메뉴에서 MySQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
- 엔티티 목록에서 MySQL 데이터베이스를 선택하십시오.