」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 在Kubernetes上搭建MySQL並使用Prometheus和Grafana監控

在Kubernetes上搭建MySQL並使用Prometheus和Grafana監控

發佈於2025-04-16
瀏覽:294

在本教程中,我们将详细介绍如何在Kubernetes(K8S)群集上设置MySQL,并集成Prometheus和Grafana进行监视。我们将使用MySQL,Prometheus和Grafana的Bitnami Helm图表,并向您展示如何创建自定义的Grafana仪表板来监视MySQL。

1。为您的实验室创建一个名称空间

首先,创建一个kubernetes名称空间,您将在其中部署mySQL并监视组件。


要验证命名空间的创建,运行:
kubectl create namespace my-lab

kubectl获取名称空间

这应该将my-lab列为群集中的名称空间之一。
kubectl get namespaces

我们将使用Bitnami Helm图表在my-Lab名称空间中安装MySQL。如果您尚未添加Bitnami图表存储库,请使用以下命令进行操作:

现在,使用此命令安装mySQL:

helm repo add bitnami https://charts.bitnami.com/bitnami
检查状态并确保MySQL运行,使用:


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

要连接到MySQL,首先,您需要从Kubernetes Secrets检索MySQL密码。使用此命令获取秘密:

helm repo add bitnami https://charts.bitnami.com/bitnami
然后解码mysql-root-password和mysql-password如下:


您可以使用base64解码密码:

kubectl get secret -n my-lab

现在,使用kubectl exec访问mySQL POD:

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

一旦在吊舱内,请使用root密码连接到mySQL:

echo  | base64 -d

在提示时输入解码的root密码。

创建一个数据库和一些表
kubectl get secret -n my-lab
一旦在mysql中,创建一个数据库和一些表格以监视:


创建数据库my_db_1; 使用my_db_1; 创建表my_table_1(a varchar(100)); 创建表My_table_2(varchar(100)); 创建表my_table_3(varchar(100)); 插入my_table_1 values('一个'); 插入my_table_1 values('一对一'); 从my_table_1中选择 *;
helm repo add bitnami https://charts.bitnami.com/bitnami
3。安装Prometheus和Grafana

接下来,我们将安装Prometheus和Grafana监视MySQL。

安装Prometheus和Grafana

首先,添加Prometheus社区头盔图表:

helm repo add bitnami https://charts.bitnami.com/bitnami
创建一个grafana名称空间:

kubectl创建NS Grafana

现在,使用头盔安装Prometheus-Grafana堆栈:


您可以通过检查POD来验证安装:
kubectl create namespace my-lab

kubectl获取豆荚-N grafana

用LoadBalancer
kubectl create ns grafana
要从Kubernetes群集外访问MySQL,我们需要使用LoadBalancer公开MySQL服务。编辑MySQL服务:


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


规格: 类型:LoadBalancer

kubectl get pods -n grafana

如果您使用的是Minikube,则可能需要运行Minikube隧道以外部公开服务:

kubectl edit svc/mysql -n my-lab
[2

现在,使用分配的IP访问MySQL:

[2
helm repo add bitnami https://charts.bitnami.com/bitnami
4。安装Prometheus mysql出口商


我们需要安装MySQL导出器来收集MySQL指标,并将其展示为Prometheus刮擦。

kubectl get svc -n my-lab

创建一个文件mysql-exporter-values.yaml,并使用您的mySQL连接详细信息:

minikube tunnel

现在,使用Helm安装MySQL出口商:Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring


Port-Forward Prometheus mysql Exporter

mysql -h  -u root -p

kubectl Port-Forward SVC/mysql-Exporter-prometheus-mysql-exporter 9104 -N my-Lab

通过访问http:// localhost:9104/metrics。 [2

5。将Grafana连接到Prometheus

现在设置了Prometheus和MySQL Exporter,让我们将Grafana连接到Prometheus。

port-forward grafana

要访问grafana仪表板,运行以下port-forward命令:
kubectl create namespace my-lab

kubectl Port -Forward SVC/Grafana 3000:80 -N Grafana

这将使Grafana在http:// localhost:3000上可以访问。默认登录凭据是:
kubectl get secret -n my-lab
用户名:admin

密码:Prom-Operator

[2

一旦登录,将Prometheus添加为Grafana中的数据源:

转到配置>数据源。
kubectl port-forward svc/mysql-exporter-prometheus-mysql-exporter 9104 -n my-lab
6。导入Grafana仪表板

要监视mysql,我们可以从Grafana的仪表板存储库中导入预配置的仪表板。

导入仪表板Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

转到仪表板>导入并输入以下仪表板IDS:

仪表板ID 14057(mysql概述)

仪表板ID 7362(mysql performance)

这些仪表板将自动加载并显示相关的MySQL指标,例如连接,查询和资源利用率。 [2

7。结论


您现在可以使用Grafana仪表板实时监视您的MySQL实例。

kubectl port-forward svc/grafana 3000:80 -n grafana

Prometheus用于使用MySQL Exporter从MySQL刮擦指标。

您可以使用LoadBalancer服务在外部访问MySQL。

在此设置中,您可以在Kubernetes上轻松地扩展和监视您的数据库基础结构。

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

版本聲明 本文轉載於:https://dev.to/dm8ry/setting-up-mysql-on-kubernetes-with-prometheus-grafana-monitoring-3jd3?1如有侵犯,請聯繫[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3