目录:
1. mysqld-exporter 镜像下载
2. yaml 文件编写
3. Grafana 导入 MySQL 的 dashboard 仪表盘
一.mysqld-exporter 镜像下载
1.镜像下载
下载官网地址:https://hub.docker.com/r/prom/mysqld-exporter
docker pull prom/mysqld-exporter
2.push 到镜像仓库
本地 Harbor 镜像仓库地址 172.18.231.30
,将镜像推送到仓库的相关命令如下:
#镜像打成tar包
docker save prom/mysqld-exporter:latest > ./mysqld-exporter.tar
#加载tar包为镜像
docker load -i mysqld-exporter.tar
#打tag标签
docker tag prom/mysqld-exporter:latest 172.18.231.30:5000/si-tech/mysqld-exporter:1.0
#登录本地Harbor镜像仓库
docker login 172.18.231.30
***
*********
#本地镜像推送到Harbor仓库
docker push 172.18.231.30:5000/si-tech/mysqld-exporter:1.0
由下图可见,成功将镜像 push 到我们的 Harbor 镜像仓库:

二.yaml 文件编写并执行
定义 DATA_SOURCE_NAME
环境变量,DATA_SOURCE_NAME
的账号需要对数据库有读写权限,否则权限问题会导致无法获取数据。
mysql-exporter.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mysql-exporter-1562292684314
spec:
replicas: 1
selector:
matchLabels:
app: mysql-exporter-1562292684314
template:
metadata:
labels:
app: mysql-exporter-1562292684314
spec:
containers:
- name: mysql-exporter
image: 172.18.231.30:5000/si-tech/mysqld-exporter:1.0
imagePullPolicy: IfNotPresent
ports:
- name: mysqlexporter
containerPort: 9104
protocol: TCP
env:
- name: "DATA_SOURCE_NAME"
value: "root:root123@(172.21.1.21:30838)/"
resources:
requests:
cpu: 0.2
memory: 200Mi
limits:
cpu: 0.2
memory: 200Mi
---
apiVersion: v1
kind: Service
metadata:
name: mysql-exporter-svc-1562292684314
labels:
app: mysql-exporter-svc-1562292684314
spec:
ports:
- port: 9104
targetPort: 9104
name: mysqlexporter
selector:
app: mysql-exporter-1562292684314
type: NodePort
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
k8s-app: mysql-exporter-sm-1562292684314
name: mysql-exporter-sm-1562292684314
spec:
endpoints:
- interval: 15s
port: mysqlexporter
path: /metrics
namespaceSelector:
matchNames:
- default
jobLabel: app
selector:
matchLabels:
app: mysql-exporter-svc-1562292684314
Prometheus 与 ServiceMonitor 及exporter的 Service的关系图解如下:

执行 mysql-exporter.yaml 文件,成功如下所示:
- 1.exporter 启动成功后,可通过 http://172.21.1.21:31116/ 访问 exporter 服务,通过 http://172.21.1.21:31116/metrics 查看 exporter 的监控指标。
-
2.Prometheus 定期中从该 exporter 中拉取 metrics 信息。
三. Grafana 导入 MySQL 的 dashboard
下载 MySQL 的 dashboard 文件 MySQL_Overview.json
,下载地址:https://github.com/percona/grafana-dashboards/tree/master/dashboards。
登录 Grafana 首页,并导入 MySQL_Overview.json
,创建 MySQL 的 dashboard。


重新配置 Data Source 数据源。
MySQL_Overview.json
中默认的 Data Source 为 Prometheus
,我们改为自己的 Prometheus 数据源。

最后,我们打开 MySQL 的 dashboard 就可以查看实时监控数据,如下图:

网友评论