>  기사  >  데이터 베이스  >  Prometheus 및 Grafana 모니터링을 사용하여 Kubernetes에서 MySQL 설정

Prometheus 및 Grafana 모니터링을 사용하여 Kubernetes에서 MySQL 설정

Barbara Streisand
Barbara Streisand원래의
2024-11-12 20:01:02577검색

이 튜토리얼에서는 모니터링을 위해 Prometheus와 Grafana를 통합하는 동시에 Kubernetes(K8s) 클러스터에 MySQL을 설정하는 방법을 살펴보겠습니다. MySQL, Prometheus 및 Grafana용 Bitnami Helm 차트를 사용하고 사용자 정의 Grafana 대시보드를 생성하여 MySQL을 모니터링하는 방법을 보여드리겠습니다.

1. 연구실을 위한 네임스페이스 생성

먼저 MySQL 및 모니터링 구성 요소를 배포할 Kubernetes 네임스페이스를 만듭니다.

kubectl create namespace my-lab

네임스페이스 생성을 확인하려면 다음을 실행하세요.

kubectl get namespaces

my-lab이 클러스터의 네임스페이스 중 하나로 나열되어야 합니다.

2. Helm을 사용하여 MySQL 설치

Bitnami Helm 차트를 사용하여 my-lab 네임스페이스에 MySQL을 설치하겠습니다. 아직 Bitnami 차트 저장소를 추가하지 않았다면 다음 명령을 사용하여 추가하세요.

helm repo add bitnami https://charts.bitnami.com/bitnami

이제 다음 명령을 사용하여 MySQL을 설치하세요.

helm upgrade --install mysql bitnami/mysql --namespace my-lab

상태를 확인하고 MySQL이 실행 중인지 확인하려면 다음을 사용하세요.

kubectl get pods --namespace my-lab

MySQL 포드에 액세스

MySQL에 연결하려면 먼저 Kubernetes 보안 비밀에서 MySQL 비밀번호를 검색해야 합니다. 비밀을 얻으려면 다음 명령을 사용하세요:

kubectl get secret -n my-lab

그런 다음 mysql-root-password 및 mysql-password를 다음과 같이 디코딩합니다.

kubectl get secret/mysql -oyaml -n my-lab

base64를 사용하여 비밀번호를 해독할 수 있습니다.

echo <encoded-password> | base64 -d

이제 kubectl exec를 사용하여 MySQL 포드에 액세스합니다.

kubectl exec -it mysql-0 --namespace my-lab -- /bin/bash

포드 내부에 들어가면 루트 비밀번호를 사용하여 MySQL에 연결합니다.

mysql -u root -p

메시지가 나타나면 디코딩된 루트 비밀번호를 입력하세요.

데이터베이스 및 일부 테이블 만들기

MySQL에 들어가면 데이터베이스와 모니터링할 테이블을 만듭니다.

create database my_db_1;

use my_db_1;

create table my_table_1 (a varchar(100));
create table my_table_2 (a varchar(100));
create table my_table_3 (a varchar(100));

insert into my_table_1 values('One');
insert into my_table_1 values('One-One');

select * from my_table_1;

3. 프로메테우스와 그라파나 설치

다음으로 MySQL 모니터링을 위해 Prometheus와 Grafana를 설치하겠습니다.

Prometheus 및 Grafana 설치

먼저 Prometheus 커뮤니티 Helm 차트를 추가합니다.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

grafana 네임스페이스 만들기:

kubectl create ns grafana

이제 Helm을 사용하여 Prometheus-Grafana 스택을 설치합니다.

helm upgrade --install grafana prometheus-community/kube-prometheus-stack --namespace grafana

Pod를 확인하여 설치를 확인할 수 있습니다.

kubectl get pods -n grafana

LoadBalancer로 MySQL 노출

Kubernetes 클러스터 외부에서 MySQL에 액세스하려면 LoadBalancer를 사용하여 MySQL 서비스를 노출해야 합니다. MySQL 서비스 편집:

kubectl edit svc/mysql -n my-lab

ClusterIP에서 LoadBalancer로 서비스 유형을 변경합니다.

spec:
  type: LoadBalancer

외부 IP가 할당되었는지 확인하세요.

kubectl get svc -n my-lab

Minikube를 사용하는 경우 minikube 터널을 실행하여 서비스를 외부에 노출해야 할 수도 있습니다.

minikube tunnel

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

이제 할당된 IP를 사용하여 외부에서 MySQL에 액세스하세요.

kubectl create namespace my-lab

4. Prometheus MySQL 내보내기 설치

MySQL 측정항목을 수집하고 Prometheus에서 스크랩할 수 있도록 노출하려면 MySQL 내보내기 도구를 설치해야 합니다.

내보내기 구성 생성

MySQL 연결 세부정보가 포함된 mysql-exporter-values.yaml 파일을 만듭니다.

kubectl get namespaces

이제 Helm을 사용하여 MySQL 내보내기 도구를 설치하세요.

helm repo add bitnami https://charts.bitnami.com/bitnami

포트 포워드 Prometheus MySQL 내보내기 프로그램

테스트를 위해 MySQL 내보내기 측정항목을 로컬 시스템에 전달하려면 다음을 사용하세요.

helm upgrade --install mysql bitnami/mysql --namespace my-lab

http://localhost:9104/metrics를 방문하여 측정항목이 노출되고 있는지 확인하세요.

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

5. Grafana를 Prometheus에 연결

Prometheus와 MySQL 내보내기 도구가 설정되었으므로 Grafana를 Prometheus에 연결해 보겠습니다.

포트 포워드 그라파나

Grafana 대시보드에 액세스하려면 다음 포트 전달 명령을 실행하세요.

kubectl get pods --namespace my-lab

이렇게 하면 http://localhost:3000에서 Grafana에 액세스할 수 있게 됩니다. 기본 로그인 자격 증명은 다음과 같습니다.

사용자 이름: admin
비밀번호: prom-operator

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

로그인한 후 Prometheus를 Grafana의 데이터 소스로 추가하세요.

구성으로 이동 > 데이터 소스.
URL이 http://prometheus-operated:9090인 데이터 소스로 Prometheus를 추가합니다.

6. Grafana 대시보드 가져오기

MySQL을 모니터링하기 위해 Grafana의 대시보드 저장소에서 사전 구성된 대시보드를 가져올 수 있습니다.

대시보드 가져오기

대시보드로 이동 > 다음 대시보드 ID를 가져와 입력하세요.

대시보드 ID 14057(MySQL 개요)
대시보드 ID 7362(MySQL 성능)

이러한 대시보드는 연결, 쿼리, 리소스 활용도 등 관련 MySQL 지표를 자동으로 로드하고 표시합니다.

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

7. 결론

Kubernetes에 MySQL을 성공적으로 설정하고 모니터링을 위해 Prometheus 및 Grafana를 통합했습니다. 이제 Grafana 대시보드를 사용하여 MySQL 인스턴스를 실시간으로 모니터링할 수 있습니다.

주요 시사점:

  • MySQL은 Bitnami Helm 차트를 사용하여 Kubernetes에서 실행됩니다.
  • Prometheus는 MySQL 내보내기 도구를 사용하여 MySQL에서 측정항목을 스크랩하는 데 사용됩니다.
  • Grafana는 Prometheus가 수집한 데이터를 시각화하도록 구성되어 있습니다.
  • LoadBalancer 서비스를 사용하여 외부에서 MySQL에 액세스할 수 있습니다.

이 설정을 사용하면 Kubernetes에서 데이터베이스 인프라를 쉽게 확장하고 모니터링할 수 있습니다.

위 내용은 Prometheus 및 Grafana 모니터링을 사용하여 Kubernetes에서 MySQL 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.