参考地址
https://github.com/prometheus/mysqld_exporter
创建账号
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'mysqlexporter' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
vi mysql-exporter.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-exporter
namespace: hjmos
labels:
k8s-app: mysql-exporter
spec:
selector:
k8s-app: mysql-exporter
ports:
- name: mysql-exporter
port: 9104
protocol: TCP
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-exporter
namespace: hjmos
labels:
k8s-app: mysql-exporter
spec:
replicas: 1
selector:
matchLabels:
k8s-app: mysql-exporter
template:
metadata:
labels:
k8s-app: mysql-exporter
spec:
containers:
- name: mysql-exporter
image: prom/mysqld-exporter
imagePullPolicy: IfNotPresent
args: ["--collect.info_schema.processlist",
"--collect.info_schema.innodb_metrics",
"--collect.info_schema.tablestats",
"--collect.info_schema.userstats",
"--collect.engine_innodb_status",
"--collect.slave_hosts"
]
env:
- name: DATA_SOURCE_NAME
value: 'exporter:mysqlexporter@(mysql:3306)/mysql' # user:password@(hostname:3306)/
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 100m
memory: 512Mi
kubectl apply -f mysql-exporter.yaml
注意:需要暴露到Prometheus的采集器中