"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Construa MySql em Kubernetes e monitore com Prometheus e Grafana

Construa MySql em Kubernetes e monitore com Prometheus e Grafana

Postado em 2025-04-16
Navegar:147

Neste tutorial, examinaremos como configurar o MySQL em um cluster Kubernetes (K8S), além de integrar a Prometheus e o Grafana para monitoramento. Usaremos os gráficos Bitnami Helm para MySQL, Prometheus e Grafana, e mostrará como criar um painel de Grafana personalizado para monitorar o MySQL.

1. Crie um espaço para nome para o seu laboratório

Primeiro, crie um espaço para nome de Kubernetes, onde você implantará seus componentes MySQL e monitoramento.

kubectl create namespace my-lab

Para verificar a criação do espaço para nome, executar:

kubectl get namespaces

isso deve listar meu laboratório como um dos namespaces em seu cluster.

2. Instale o MySQL usando o comando

usaremos o gráfico de Helm Bitnami para instalar o MySQL no namespace do My-Lab. Se você ainda não adicionou o repositório de gráficos Bitnami, faça -o com o seguinte comando:

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

agora, instale o mysql com este comando:

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

para verificar o status e verifique se o MySQL está em execução, use:

kubectl get pods --namespace my-lab

Acesse o MySQL Pod

Para se conectar ao MySQL, primeiro, você precisará recuperar a senha do MySQL dos segredos Kubernetes. Use este comando para obter o segredo:

kubectl get secret -n my-lab

então decodifique o MySQL-Root-Password e o MySQL-Password da seguinte forma:

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

você pode decodificar a senha usando base64:

echo  | base64 -d
!


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

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


mysql -u root -p

mysql -u root -p

Crie um banco de dados e algumas tabelas

Uma vez dentro do MySQL, crie um banco de dados e algumas tabelas para monitorar:


Crie banco de dados my_db_1; use my_db_1; Crie tabela my_table_1 (um varchar (100)); Crie tabela my_table_2 (um varchar (100)); Criar tabela my_table_3 (um varchar (100)); inserir em my_table_1 valores ('um'); inserir em my_table_1 valores ('um-um'); selecione * de my_table_1;

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;

Em seguida, instalaremos Prometheus e Grafana para monitorar MySql.

Instale Prometheus e Grafana

Primeiro, adicione os gráficos de comando da comunidade Prometheus:


helm repo Adicione Prometheus-comunity https://prometheus-community.github.io/helm-charts Helm Repo Atualização

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


kubectl Crie ns grafana

kubectl create ns grafana


upgrade de helm-Install Grafana Prometheus-Community/Kube-Prometheus Stack-Namespace Grafana

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


KUBECTL GET PODS -N GRAFANA

kubectl get pods -n grafana

Para acessar o MySQL de fora do cluster Kubernetes, precisamos expor o serviço MySQL usando um loadBalancer. Edite o serviço MySQL:


KUBECTL EDIT SVC/MYSQL -N MY -LAB

kubectl edit svc/mysql -n my-lab


Spec: Tipo: LoadBalancer

spec:
  type: LoadBalancer


KUBECTL GET SVC -N MY -LAB

;
kubectl get svc -n my-lab
Minikube Tunnel


kubectl get svc -n my-lab
agora, acesse o MySQL externamente usando o IP designado:

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring


4. Instale o exportador Prometheus MySQL

mysql -h  -u root -p

Crie Configuração do Exportador

Crie um arquivo mysql-exporter-values.yaml com seus detalhes de conexão MySQL:

mysql: DB: "" Host: "" Usuário: "root" PASSE: "" Porta: 3306 Protocolo: "" Servicemonitor: ativado: true Adicionallabels: Lançamento: Grafana


agora, instale o exportador do MySQL usando o helm:

kubectl get svc -n my-lab
upgrade--Install MySQL-Exporter Prometheus-Community/Prometheus-Mysql-Exporter -f Mysql-Exporter-values.yaml


port-forward prometeus mysql export

helm upgrade --install mysql-exporter prometheus-community/prometheus-mysql-exporter -f mysql-exporter-values.yaml

kubectl porta-forward svc/mysql-exporter-prometheus-mysql-exporter 9104 -n my-lab


Verifique se as métricas estão sendo expostas visitando http: // localhost: 9104/métricas.

kubectl port-forward svc/mysql-exporter-prometheus-mysql-exporter 9104 -n my-lab

5. Conecte o Grafana a Prometheus

! Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring Port-Forward Grafana

Para acessar o painel Grafana, execute o seguinte comando porta-forward:

kubectl porta -forward svc/grafana 3000: 80 -n Grafana

Isso tornará o Grafana acessível em http: // localhost: 3000. As credenciais de login padrão são:


nome de usuário: admin

Senha: Prom-operator
kubectl get svc -n my-lab

Uma vez conectado, adicione Prometheus como uma fonte de dados em Grafana:

vá para a configuração> fontes de dados.

Adicione Prometheus como uma fonte de dados com o URL http: // prometeus-operated: 9090. Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

6. Importar painéis de grafana

Para monitorar o MySQL, podemos importar painéis pré-configurados do repositório de painel de Grafana.


import os painéis

vá para os painéis> importar e insira os seguintes IDs do painel:

ID do painel 14057 (visão geral do MySQL)

ID do painel 7362 (MySQL Performance)

esses painéis carregarão e mostrarão automaticamente as métricas MySQL, como conexões, consultas e utilização de recursos.


7. Conclusão

você configurou com sucesso o MySQL em Kubernetes e o Prometheus e o Grafana integrado para monitoramento. Agora você pode monitorar sua instância MySQL em tempo real usando painéis de grafana.

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring key tkeaways:

mysql está sendo executado no Kubernetes usando o gráfico de helm bitnami.

Prometheus é usado para raspar métricas do MySQL usando o exportador MySQL.

Grafana está configurado para visualizar os dados coletados por Prometheus.
  • você pode acessar o MySQL externamente usando um serviço de carregamento de load.
  • Com esta configuração, você pode facilmente dimensionar e monitorar sua infraestrutura de banco de dados em Kubernetes.
Declaração de lançamento Este artigo é reproduzido em: https://dev.to/dm8ry/setting up-mysql-on-kubernetes-with-prometheus-grafana-monitoring-3jd3?1 Se houver alguma infração, entre em contato com [email protected] para excluí-lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3