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.
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.
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
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;
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-labMinikube Tunnel
kubectl get svc -n my-labagora, acesse o MySQL externamente usando o IP designado:
4. Instale o exportador Prometheus MySQL
mysql -h-u root -p
Crie um arquivo mysql-exporter-values.yaml com seus detalhes de conexão MySQL:
mysql: DB: "" Host: "
agora, instale o exportador do MySQL usando o helm:
kubectl get svc -n my-labupgrade--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
!
Port-Forward Grafana
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
kubectl get svc -n my-lab
Uma vez conectado, adicione Prometheus como uma fonte de dados em Grafana:
Adicione Prometheus como uma fonte de dados com o URL http: // prometeus-operated: 9090.
Para monitorar o MySQL, podemos importar painéis pré-configurados do repositório de painel de Grafana.
import os painéis
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.
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.
key tkeaways:
Prometheus é usado para raspar métricas do MySQL usando o exportador MySQL.
Grafana está configurado para visualizar os dados coletados por Prometheus.
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