prometheus mysql 主从_Prometheus 入门(三):监控MySQL的k8s实现
目录:1. mysqld-exporter 镜像下载2. yaml 文件编写3. Grafana 导入 MySQL 的 dashboard 仪表盘一.mysqld-exporter 镜像下载1.镜像下载docker pull prom/mysqld-exporter2.push 到镜像仓库本地 Harbor 镜像仓库地址 172.18.231.30,将镜像推送到仓库的相关命令如下:#镜像打成tar
目录:
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 镜像仓库:
二.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 文件,成功如下所示:
2.Prometheus 定期中从该 exporter 中拉取 metrics 信息。
三. Grafana 导入 MySQL 的 dashboard
登录 Grafana 首页,并导入 MySQL_Overview.json,创建 MySQL 的 dashboard。
重新配置 Data Source 数据源。
MySQL_Overview.json 中默认的 Data Source 为 Prometheus,我们改为自己的 Prometheus 数据源。
最后,我们打开 MySQL 的 dashboard 就可以查看实时监控数据,如下图:
更多推荐
所有评论(0)