prometheus监控MySQL实例

部署mysql实例

[root@k8s-master myweb]# vim mysql-rc.yaml 

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.6
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"
[root@k8s-master src]# kubectl get pod -o wide
NAME                                               READY   STATUS      RESTARTS   AGE    IP            NODE        NOMINATED NODE   READINESS GATES
mysql-7jjsg                                        1/1     Running     0          28m    10.244.1.9    k8s-node2   <none>           <none>

连接测试

[root@k8s-master src]# mysql -uroot -p123456 -h 10.244.1.9
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.6.49 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

helm 一键安装prometheus-mysql-exporter 服务

在kubernetes中添加mysql监控的exporter:prometheus-mysql-exporter
这里采用helm的方式安装prometheus-mysql-exporter

[root@k8s-master kube-prometheus]# helm search repo prometheus-mysql-exporter
NAME                            	CHART VERSION	APP VERSION	DESCRIPTION                                       
stable/prometheus-mysql-exporter	0.7.0        	v0.11.0    	A Helm chart for prometheus mysql exporter with...

1.下载prometheus-mysql-exporter

helm pull stable/prometheus-mysql-exporter

2. 解压

tar zxvf prometheus-mysql-exporter-0.7.0.tgz

3. 修改values.yaml

修改values.yaml中的datasource为安装在kubernetes中mysql的地址:

cd prometheus-mysql-exporter
vim values.yaml
mysql:
  db: ""
  host: "10.244.1.9"
  param: ""
  pass: "123456"
  port: 3306
  protocol: ""
  user: "root"
  existingSecret: false

4. 重新打包

重新打包为:prometheus-mysql-exporter-v.1.0.tgz

tar zcvf prometheus-mysql-exporter-v.1.0.tgz prometheus-mysql-exporter

5. helm install

helm install mysql prometheus-mysql-exporter-v.1.0.tgz
[root@k8s-master src]# kubectl get pod,svc | grep mysql
pod/mysql-7jjsg                                        1/1     Running     0          46m
pod/mysql-prometheus-mysql-exporter-6cd877b86f-g8qbd   1/1     Running     0          41m
service/mysql                             NodePort    10.1.128.103   <none>        3306:30001/TCP   57m
service/mysql-prometheus-mysql-exporter   ClusterIP   10.1.192.61    <none>        9104/TCP         41m

6. exporter 测试与MySQL连接

当指标值为1时表示能够正常获取监控数据,如果不是1请排查MySQL连接设置,权限,日志等

[root@k8s-master src]# curl 10.1.192.61:9104/metrics|grep mysql_up
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  112k  100  112k    0     0   1821      0  0:01:03  0:01:03 --:--:-- 29236
# HELP mysql_up Whether the MySQL server is up.
# TYPE mysql_up gauge
mysql_up 1

7. 创建ServiceMonitor

[root@k8s-master src]# vim servicemonitor.yaml 

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    prometheus: kube-prometheus
  name: prometheus-exporter-mysql
  namespace: monitoring
spec:
  jobLabel: app
  selector:
    matchLabels:
      app: prometheus-mysql-exporter
  namespaceSelector:
    matchNames:
    - default
  endpoints:
  - port: mysql-exporter
    interval: 30s
    honorLabels: true

[root@k8s-master src]# kubectl get servicemonitors.monitoring.coreos.com  -n monitoring
NAME                        AGE
alertmanager                171m
coredns                     171m
grafana                     171m
kube-apiserver              171m
kube-controller-manager     171m
kube-scheduler              171m
kube-state-metrics          171m
kubelet                     171m
node-exporter               171m
prometheus                  171m
prometheus-adapter          171m
prometheus-exporter-mysql   29m
prometheus-operator         171m

8. 浏览器验证

在这里插入图片描述参考:https://www.cnblogs.com/wangxu01/articles/11655497.html

猜你喜欢

转载自blog.csdn.net/zhangshaohuas/article/details/107756521