目录:

1. mysqld-exporter 镜像下载

2. yaml 文件编写

3. Grafana 导入 MySQL 的 dashboard 仪表盘

一.mysqld-exporter 镜像下载

1.镜像下载

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 镜像仓库:

d40e0b0b376d

二.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的关系图解如下:

d40e0b0b376d

执行 mysql-exporter.yaml 文件,成功如下所示:

2.Prometheus 定期中从该 exporter 中拉取 metrics 信息。

d40e0b0b376d

三. Grafana 导入 MySQL 的 dashboard

登录 Grafana 首页,并导入 MySQL_Overview.json,创建 MySQL 的 dashboard。

d40e0b0b376d

d40e0b0b376d

重新配置 Data Source 数据源。

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

d40e0b0b376d

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

d40e0b0b376d

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐