이 튜토리얼에서는 모니터링을 위해 Prometheus와 Grafana를 통합하는 동시에 Kubernetes(K8s) 클러스터에 MySQL을 설정하는 방법을 살펴보겠습니다. MySQL, Prometheus 및 Grafana용 Bitnami Helm 차트를 사용하고 사용자 정의 Grafana 대시보드를 생성하여 MySQL을 모니터링하는 방법을 보여드리겠습니다.
먼저 MySQL 및 모니터링 구성 요소를 배포할 Kubernetes 네임스페이스를 만듭니다.
kubectl create namespace my-lab
네임스페이스 생성을 확인하려면 다음을 실행하세요.
kubectl get namespaces
my-lab이 클러스터의 네임스페이스 중 하나로 나열되어야 합니다.
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에 연결하려면 먼저 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;
다음으로 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
이제 할당된 IP를 사용하여 외부에서 MySQL에 액세스하세요.
kubectl create namespace my-lab
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를 방문하여 측정항목이 노출되고 있는지 확인하세요.
Prometheus와 MySQL 내보내기 도구가 설정되었으므로 Grafana를 Prometheus에 연결해 보겠습니다.
포트 포워드 그라파나
Grafana 대시보드에 액세스하려면 다음 포트 전달 명령을 실행하세요.
kubectl get pods --namespace my-lab
이렇게 하면 http://localhost:3000에서 Grafana에 액세스할 수 있게 됩니다. 기본 로그인 자격 증명은 다음과 같습니다.
사용자 이름: admin
비밀번호: prom-operator
로그인한 후 Prometheus를 Grafana의 데이터 소스로 추가하세요.
구성으로 이동 > 데이터 소스.
URL이 http://prometheus-operated:9090인 데이터 소스로 Prometheus를 추가합니다.
MySQL을 모니터링하기 위해 Grafana의 대시보드 저장소에서 사전 구성된 대시보드를 가져올 수 있습니다.
대시보드 가져오기
대시보드로 이동 > 다음 대시보드 ID를 가져와 입력하세요.
대시보드 ID 14057(MySQL 개요)
대시보드 ID 7362(MySQL 성능)
이러한 대시보드는 연결, 쿼리, 리소스 활용도 등 관련 MySQL 지표를 자동으로 로드하고 표시합니다.
Kubernetes에 MySQL을 성공적으로 설정하고 모니터링을 위해 Prometheus 및 Grafana를 통합했습니다. 이제 Grafana 대시보드를 사용하여 MySQL 인스턴스를 실시간으로 모니터링할 수 있습니다.
주요 시사점:
이 설정을 사용하면 Kubernetes에서 데이터베이스 인프라를 쉽게 확장하고 모니터링할 수 있습니다.
위 내용은 Prometheus 및 Grafana 모니터링을 사용하여 Kubernetes에서 MySQL 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!