在k8s集群中安装Grafana

前面的课程中我们使用 Prometheus 采集了 Kubernetes 集群中的一些监控数据指标,我们也尝试使用promQL语句查询出了一些数据,并且在 Prometheus 的 Dashboard 中进行了展示,但是明显可以感觉到 Prometheus 的图表功能相对较弱,所以一般情况下我们会一个第三方的工具来展示这些数据,今天我们要和大家使用到的就是grafana。

安装

grafana 是一个可视化面板,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite、zabbix、InfluxDB、Prometheus、OpenTSDB、Elasticsearch 等作为数据源,比 Prometheus 自带的图表展示功能强大太多,更加灵活,有丰富的插件,功能更加强大。

现在我们将这个容器转化成 Kubernetes 中的 Pod:(grafana-deploy.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: kube-ops
  labels:
    app: grafana
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana:5.3.4
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3000
          name: grafana
        env:
        - name: GF_SECURITY_ADMIN_USER
          value: admin
        - name: GF_SECURITY_ADMIN_PASSWORD
          value: admin321
        readinessProbe:
          failureThreshold: 10
          httpGet:
            path: /api/health
            port: 3000
            scheme: HTTP
          initialDelaySeconds: 60
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 30
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /api/health
            port: 3000
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: 100m
            memory: 256Mi
          requests:
            cpu: 100m
            memory: 256Mi
        volumeMounts:
        - mountPath: /var/lib/grafana
          subPath: grafana
          name: storage
      securityContext:
        fsGroup: 472
        runAsUser: 472
      volumes:
      - name: storage
        persistentVolumeClaim:
          claimName: grafana

我们使用了最新的镜像grafana/grafana:5.3.4,然后添加了监控检查、资源声明,另外两个比较重要的环境变量GF_SECURITY_ADMIN_USER和GF_SECURITY_ADMIN_PASSWORD,用来配置 grafana 的管理员用户和密码的,由于 grafana 将 dashboard、插件这些数据保存在/var/lib/grafana这个目录下面的,所以我们这里如果需要做数据持久化的话,就需要针对这个目录进行 volume 挂载声明,其他的和我们之前的 Deployment 没什么区别,由于上面我们刚刚提到的 Changelog 中 grafana 的 userid 和 groupid 有所变化,所以我们这里需要增加一个securityContext的声明来进行声明。

当然如果要使用一个 pvc 对象来持久化数据,我们就需要添加一个可用的 pv 供 pvc 绑定使用:(grafana-volume.yaml)

apiVersion: v1
kind: PersistentVolume
metadata:
  name: grafana
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    server: 192.168.10.131
    path: /data/k8s
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana
  namespace: kube-ops
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

最后,我们需要对外暴露 grafana 这个服务,所以我们需要一个对应的 Service 对象,当然用 NodePort 或者再建立一个 ingress 对象都是可行的:(grafana-svc.yaml)

apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: kube-ops
  labels:
    app: grafana
spec:
  type: NodePort
  ports:
    - port: 3000
  selector:
    app: grafana

现在我们直接创建上面的这些资源对象:

$ kubectl create -f grafana-volume.yaml
persistentvolume "grafana" created
persistentvolumeclaim "grafana" created
$ kubectl create -f grafana-deploy.yaml
deployment.extensions "grafana" created
$ kubectl create -f grafana-svc.yaml
service "grafana" created

创建完成后,我们可以查看 grafana 对应的 Pod 是否正常:

[root@k8s-master grafana]# kubectl get pod -n kube-ops
NAME                          READY   STATUS    RESTARTS   AGE
grafana-556d7f8c75-2slqv      1/1     Running   0          14m

查看日志:

kubectl logs -f grafana-556d7f8c75-2slqv -n kube-ops
t=2020-09-11T18:01:04+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=POST path=/login status=401 remote_addr=10.244.2.1 time_ms=399 size=42 referer=http://192.168.10.131:31899/login


看到上面的日志信息就证明我们的 grafana 的 Pod 已经正常启动起来了。这个时候我们可以查看 Service 对象:

[root@k8s-master grafana]# kubectl get svc -A|grep grafana
kube-ops      grafana                   NodePort    10.1.77.211    <none>        3000:31899/TCP                20m

现在我们就可以在浏览器中使用http://<任意节点IP:31899>来访问 grafana 这个服务了:

扫描二维码关注公众号,回复: 12085761 查看本文章

用户名:admin
密码:admin321

在这里插入图片描述
由于上面我们配置了管理员的,所以第一次打开的时候会跳转到登录界面,然后就可以用上面我们配置的两个环境变量的值来进行登录了,登录完成后就可以进入到下面 Grafana 的首页:
在这里插入图片描述

配置

在上面的首页中我们可以看到已经安装了 Grafana,接下来点击Add data source进入添加数据源界面。

数据源

我们这个地方配置的数据源是 Prometheus,所以选择这个 Type 即可,更改数据源添加一个 name:prometheus-ds,最主要的是下面HTTP区域是配置数据源的访问模式。

访问模式是用来控制如何处理对数据源的请求的:

  • 服务器(Server)访问模式(默认):所有请求都将从浏览器发送到 Grafana 后端的服务器,后者又将请求转发到数据源,通过这种方式可以避免一些跨域问题,其实就是在 Grafana 后端做了一次转发,需要从Grafana 后端服务器访问该 URL。
  • 浏览器(Browser)访问模式:所有请求都将从浏览器直接发送到数据源,但是有可能会有一些跨域的限制,使用此访问模式,需要从浏览器直接访问该 URL。

由于我们这个地方 Prometheus 通过 NodePort 的方式对外暴露的服务,所以我们这个地方是不是可以使用浏览器访问模式直接访问 Prometheus 的外网地址,但是这种方式显然不是最好的,相当于走的是外网,而我们这里 Prometheus 和 Grafana 都处于 kube-ops 这同一个 namespace 下面,是不是在集群内部直接通过 DNS 的形式就可以访问了,而且还都是走的内网流量,所以我们这里用服务器访问模式显然更好,数据源地址:http://prometheus:9090(因为在同一个 namespace 下面所以直接用 Service 名也可以),然后其他的配置信息就根据实际情况了,比如 Auth 认证,我们这里没有,所以跳过即可,点击最下方的Save & Test提示成功证明我们的数据源配置正确:
在这里插入图片描述

添加Dashboard

数据源添加完成后,就可以来添加 Dashboard 了。
在这里插入图片描述
添加k8s仪表盘:

grafana 的官方网站上还有很多公共的 Dashboard 可以供我们使用,我们这里可以使用Kubernetes cluster monitoring (via Prometheus)(dashboard id 为162)这个 Dashboard 来展示 Kubernetes 集群的监控信息,在左侧侧边栏 Create 中点击import导入:
在这里插入图片描述
在这里插入图片描述需要注意的是在执行上面的 import 之前要记得选择我们的prometheus这个名字的数据源,执行import操作,就可以进入到 dashboard 页面:
在这里插入图片描述
我们可以看到 dashboard 页面上出现了很多漂亮的图表,但是看上去数据不正常,这是因为这个 dashboard 里面需要的数据指标名称和我们 Prometheus 里面采集到的数据指标不一致造成的,比如,第一个Cluster memory usage(集群内存使用情况),我们可以点击标题 -> Edit,进入编辑这个图表的编辑页面:
在这里插入图片描述
进入编辑页面我们就可以看到这个图表的查询语句:

(sum(node_memory_MemTotal) - sum(node_memory_MemFree+node_memory_Buffers+node_memory_Cached) ) / sum(node_memory_MemTotal) * 100

在这里插入图片描述
这就是我们之前在 Prometheus 里面查询的promQL语句,我们可以将上面的查询语句复制到 Prometheus 的 Graph 页面进行查询,其实可以预想到是没有对应的数据的,因为我们用node_exporter采集到的数据指标不是node_memory_MemTotal关键字,而是node_memory_MemTotal_bytes,将上面的promQL语句做相应的更改:

(sum(node_memory_MemTotal_bytes) - sum(node_memory_MemFree_bytes + node_memory_Buffers_bytes+node_memory_Cached_bytes)) / sum(node_memory_MemTotal_bytes) * 100

这个语句的意思就是(整个集群的内存-(整个集群剩余的内存以及Buffer和Cached))/整个集群的内存,简单来说就是总的集群内存使用百分比。将上面 grafana 的promQL语句替换掉,就可以看到图表正常了:
在这里插入图片描述同样的,我们可以更改后面的 CPU 和 FileSystem 的使用率:

CPU 的使用率:

sum(sum by (container_name)( rate(container_cpu_usage_seconds_total{
    
    image!=''}[1m] ) )) / count(node_cpu_seconds_total{
    
    mode="system"}) * 100

FileSystem 的使用率

(sum(node_filesystem_size_bytes{
    
    device="rootfs"}) - sum(node_filesystem_free_bytes{
    
    device="rootfs"}) ) / sum(node_filesystem_size_bytes{
    
    device="rootfs"}) * 100

在这里插入图片描述同样下面的Pod CPU Usage用来展示 Pod CPU 的使用情况,对应的promQL语句如下,根据 pod名称 来进行统计:

sum by (pod) (rate(container_cpu_usage_seconds_total{
    
    image!='',pod!=''}[1m]))

在这里插入图片描述
Pod memory usage:

sort_desc(sum (container_memory_usage_bytes{
    
    image!="", pod!=""}) by(pod))

在这里插入图片描述pod network i/o:

A:
sort_desc(sum by (pod) (rate (container_network_receive_bytes_total{
    
    name!=""}[1m]) ))
B:
sort_desc(sum by (pod) (rate (container_network_transmit_bytes_total{
    
    name!=""}[1m]) ))

在这里插入图片描述

最后要记得保存这个 dashboard
在这里插入图片描述

添加 Kubernetes 数据源(插件方式)

我们可以安装一些其他插件,比如 grafana 就有一个专门针对 Kubernetes 集群监控的插件:grafana-kubernetes-app

要安装这个插件,需要到 grafana 的 Pod 里面去执行安装命令:

[root@k8s-master ~]# kubectl exec -it grafana-556d7f8c75-2slqv /bin/bash -n kube-ops
grafana@grafana-556d7f8c75-2slqv:/usr/share/grafana$ grafana-cli plugins install grafana-kubernetes-app
installing grafana-kubernetes-app @ 1.0.1
from url: https://grafana.com/api/plugins/grafana-kubernetes-app/versions/1.0.1/download
into: /var/lib/grafana/plugins

✔ Installed grafana-kubernetes-app successfully 

Restart grafana after installing plugins . <service grafana-server restart>

安装完成后需要重启 grafana 才会生效,我们这里直接删除 Pod,重建即可,然后回到 grafana 页面中,切换到 plugins 页面可以发现下面多了一个 Kubernetes 的插件,点击进来启用即可,然后点击Next up旁边的链接配置集群
在这里插入图片描述在这里插入图片描述这里我们可以添加一个新的 Kubernetes 集群,这里需要填写集群的访问地址:https://kubernetes.default,然后比较重要的是集群访问的证书,勾选上TLS Client Auth和With CA Cert这两项。

在这里插入图片描述简单说明一下

Name 集群名称(自定义)
URL Kubernetes Apiserver地址
因为apiserver是使用443端口,还需要开启https,并获取Key
Datasource 选择数据源 (之前创建prometheus数据源)

接下来我们需要查看api-server的信息

[root@abcdocker ~]# cat /root/.kube/config

[root@k8s-master ~]# cat /root/.kube/config 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01ESXdPVEE1TkRFd01Wb1hEVE13TURJd05qQTVOREV3TVZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTGNZCjhweDdhZmlIMGdDQkdMM2xmMHEremI2dUxEdmdNNytxcCswS0RwVExZN0RjWlhIUkVlcTE0dHBaTEtUOHRoQmcKd1piS2ppSWVWTUpaRmZkdkZzQ2ZXaExxd3k3K2wxYTVKRGtxTjBhei8ySU1zS1BOZm0yN3VIVmpMZHkvK2ZRWgpUZm15akVJRXk2MGtpdHhCRUxuNm9ab2V1aUFBcVoyd3RJcm0xZzJQUmRQVmQvZHYxZWd3NjRzZFo0QXBPcnd6ClN2RkVXcXVXYm1LV1dnMHZrb09VOGwwS0o3YUpGUS94VFE3NmVuUkxjMEMxT3JlWUJFRVpjMkxHVEVkcFF4dUgKYmRvcjM1Smd5MTQzTDNhQUpxSFRJYVdYdGFFVmdrb2REMmxSdGRVWGJMQ1dzZHpWOXkwVENIVnpNZjRPWktIbwpIZXNrRzZaMDExWXFvRHJiWTRFQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFCdys2MFpCTWViZ2wwVkRXOUJmcjJXWGI4YUQKUHZ1N1poWGhqTGVHR09adnNhMUdKQ2lBRVp2a1V2RzFjS0k5VWROU294RnlrK0lxS2Z0TjJMekFNRG1SYVJaWQo0aVVkZ1I3dGZLdGZvdTdHRzZQVkorbzhXTlpCREc3d3QxVmtNODlzOVlsTzMrZTc3NFFqaVB6aGM2N29xekFRCmJqMTRhcktLaG1Ic3phUGlXL1IwZXZDQmtrcks0aDVXbXpjeGQvczRuY210YVVtR3ZwQmh4cDMyZWxqRU9WaFQKSTBLZnY5K0RMM09GdlhPWXR4RU9sRmh3dTg1MEdQWVZXSWRVYm5ETXQzZDNXeG1GSjl3RFNET0ZqbVZYcjJrZApBejRSSWp0YlNGQnpzT0ZzNWRPTTR5Rmg1MU0rWVdFNjMzYi9INFdPMkZaNVR3QXc5RVZSMmJESmhBUT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    server: https://192.168.10.130:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {
    
    }
users:
- name: kubernetes-admin
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM4akNDQWRxZ0F3SUJBZ0lJVWpQYmhvaWd6bUl3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TURBeU1Ea3dPVFF4TURGYUZ3MHlNVEF5TURnd09UUXhNRFZhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXVyME54N2JhVkpwSzB4RnMKQXN2eGJlb0JldkdCeW1hb2ZxdnFhTjRIREhoRENaU0FKeFY0bzVHaktlNENGMWRFR2xYNks4L0d5WXBLcXY4QQo3UUZjK0lvK01JazEyZit1Q2RtK05RemJQaDF1OUMvRzluZTNWYzJvNnk4UHk3OVh1bUxWVGhLQU1LVWNmcFQ3ClNZbXFBUUUzbS9aVjhoSzVTRzIydXh3VklVUDFsWnVPVmxBVUpJYzNQVmNDZjdwcVpNMzltWUdhQ2V4RFhRS20KaklqZWtSbkFWUXgwOVZ0Q2NoeE1uaEVlQlpETHgrWlQzT2dwTjhWYzJyTDUzOHVRanFjNHhhSFBKNHdKVTFPUwpVSk9KZXRDTDFYaUV3RnRYM2Zicm1tYzdhbGVCU3dmYy85Z3d3YjBnbVVQQnhlLzdzcStubUlsVUQwckV3bmR6Ck1HTWx2UUlEQVFBQm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFGRVgxUnQ4aUxrelIxbisrMExSZklLVGM3RUdXQWFCeGM4bgpQMmdLWjVxSGEyK3NLV2F2clR3MElSTG1HYW0wZ3FNa3FySG9qRUJ4Q3RkNXFOY250UjJvM1pPY3FWOG96ZW9SCjZteE40NGo0Q1VTenBoSXdwNi92eHMxNlBZRlk2M1B1YnRNNUV6ZExyQUJJNDRMdElQMFZjYTRwUWVUYTI3WTQKMUNobWltaVc3L29iQXlOcUNjRWtJTCtzRGxvUXpWK09IZ2JMaWx3MWlBblVnS2YvS1JMbFJyc2dOV0pDaklhYwp6dUFFT2QxVnZvYkF6QWRZelFTWFZzc1ZmRnpCcnI0S0NtK2gvb21KYUlLb0paTlpUWGY4Mmx0OW9WQnk3eUpUCkNYQWV0dUJyaUpnRk5nbS9FczVYT1h3TWxTb2htQTZmN1ZPL01JQlVyeVd4dnozRHppbz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBdXIwTng3YmFWSnBLMHhGc0FzdnhiZW9CZXZHQnltYW9mcXZxYU40SERIaERDWlNBCkp4VjRvNUdqS2U0Q0YxZEVHbFg2SzgvR3lZcEtxdjhBN1FGYytJbytNSWsxMmYrdUNkbStOUXpiUGgxdTlDL0cKOW5lM1ZjMm82eThQeTc5WHVtTFZUaEtBTUtVY2ZwVDdTWW1xQVFFM20vWlY4aEs1U0cyMnV4d1ZJVVAxbFp1TwpWbEFVSkljM1BWY0NmN3BxWk0zOW1ZR2FDZXhEWFFLbWpJamVrUm5BVlF4MDlWdENjaHhNbmhFZUJaREx4K1pUCjNPZ3BOOFZjMnJMNTM4dVFqcWM0eGFIUEo0d0pVMU9TVUpPSmV0Q0wxWGlFd0Z0WDNmYnJtbWM3YWxlQlN3ZmMKLzlnd3diMGdtVVBCeGUvN3NxK25tSWxVRDByRXduZHpNR01sdlFJREFRQUJBb0lCQUFVTEdoWXN3QlRNM2Z4NQpXZnR4V3FIblVnYnFBdUZlaUdwelppOVMzOG5jYmFNU21hdDBqditMN1dZeWdXZnorV2prclk4Rlc0OFI1eFpiCk1NRTE2amJrTk8zR3B1ZXVXaHIyQUljYVE4bVhyZWwyYU44N09INWV3Wk1vZ0RxMmZqNFFjVVpjaFkzS3g4dzcKWmRZRW04elBKWnRXdWRlQjNmTXcwMkNXVDVQSVlFVlpybVdJcUYwampYOGhVRmpZcEFjdENzMkJiRStxYnhCaApWZlJlSXpwMGlLTTk1V2E3WVpVdTNBUXgwcHRuWGVjeUNZbUVob0wyeGVMODc1bTVabkpGTzBnYm9zbmZGY0k3CnJiZjZHUkZKSVZJRjg0WU9YbmZRbFpqNnQ1Vlg1V2RkbFdOTjB5MlE3TFFwR3VlVEo1QWRnTlpEUmZpdkE2ODUKRTIvdlk1a0NnWUVBNUU1dTBBSVduemJ3Ym1NV2wrQ3laVGVTbEpjNU5QdDRVZWFzMFBNU0ZrZ3NlT1cyaDFLRApSYXlNRmk4ZENsVjB1bnFwNkt6ZEd2MUFObURTRUxpeEMxQmg2bkVkempORUtQakR4aVRQUERtOWRDNzJsZG4wCko2RjJ2R3pKbXM1dHJHV2llYkJWTWtKbms4d2NvcUszMC85a1BaRDd2U3RoYnZBQUk3T2RXK2NDZ1lFQTBXUFIKcVZOK1VSYXRRV0Nray9hSk1nb1RmcC9tWERpVDhqWlppK0V3UW83MnFxOTV0RVZNT2dPeEEvTGh2THNiQXNIUgprdUdrcHI3UlpMUG01blF4V1FpRGtCYkU5WFJ4bFloWTJCU203MVVCWEFvZXg5a2N4WGlFQjV5bDcwZlArcHQ5Cms4ZGhxS3h4MitjMjRJN1JUUjhKVXV3T2tXYUVWQTFkd25nR1hMc0NnWUI2NVRXRlJ2cUNiZ0p5aVdoS0RTdzYKaS9XZGd1SEtnV3M5T3h6ZnhWaUJJZ3krYjNrWDB2VFM5cFRhQkRadnI1eU1IU2VGRmpoWEpPZ0IzWkIyYTlUeApzQzFsRThybGluY3dUdWlqcW9EYmZJRmRIMEtoVzVld0ZaeGl4WFNvbm1JdklPNmE3cTZOeFcwWUJCR09BbVZOCit2WXNwZlM4MmJNekVvSWd0YmtKRlFLQmdRQzhQR1FyT0tnQjljVGpWU0llOGk3OEVScmRacG9NcGNBNnFxbHQKbW85c0JtR3hwL1pkSFQ4ZG1GdjJGTTdpZjhJVWhIRUcvbHFxbkRoWnMzRU1FOENaTFpJNFluL0Z1Vnl5OU5RSgp6T2NWbVBHVDhIVWpiQWIxYnhZaVVhektvMkJSQnArcHpqLzVCcTJFNXlMcVZQbkx2dTcrNEw5bjd5VmUrblVqCmNnc21LUUtCZ0hFYWpSUGRZamZjbHNQUkZCSUdRS1lUa3NPM01uMEpHRm4vYzZXcUo4ZGFFNHZGM1YvRlQ4aHoKais5T1Q2SEpXZzhOaHJjSnVOQm9pWHpzV3NGTm10WFpqMmlXUVBhcm52SU9YS2pQdnNOQ2ZjTzdXRGxFbCsvKwpBS24zUC9XY2ZuZy8veVZrbjNVTy9yQTMvVzJMY1pBeFdUNitJd2lPekFYcnNQTEx6UWc5Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

certificate-authority-data = CA Cert 对应

server = 192.168.10.130:6443 (这里是apiserver地址)

client-certificate-data = Client Cert

client-key-data = Client Key

这里需要说明一下,config文件里面是使用base64编译过后的,所以我们填写的时候是需要使用base64解码

echo "LS0tLS1CS0tLQo=............."|base64 -d

将解码后的信息导入:

-----BEGIN CERTIFICATE-----
MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
cm5ldGVzMB4XDTIwMDIwOTA5NDEwMVoXDTMwMDIwNjA5NDEwMVowFTETMBEGA1UE
AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALcY
8px7afiH0gCBGL3lf0q+zb6uLDvgM7+qp+0KDpTLY7DcZXHREeq14tpZLKT8thBg
wZbKjiIeVMJZFfdvFsCfWhLqwy7+l1a5JDkqN0az/2IMsKPNfm27uHVjLdy/+fQZ
TfmyjEIEy60kitxBELn6oZoeuiAAqZ2wtIrm1g2PRdPVd/dv1egw64sdZ4ApOrwz
SvFEWquWbmKWWg0vkoOU8l0KJ7aJFQ/xTQ76enRLc0C1OreYBEEZc2LGTEdpQxuH
bdor35Jgy143L3aAJqHTIaWXtaEVgkodD2lRtdUXbLCWsdzV9y0TCHVzMf4OZKHo
HeskG6Z011YqoDrbY4ECAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB
/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABw+60ZBMebgl0VDW9Bfr2WXb8aD
Pvu7ZhXhjLeGGOZvsa1GJCiAEZvkUvG1cKI9UdNSoxFyk+IqKftN2LzAMDmRaRZY
4iUdgR7tfKtfou7GG6PVJ+o8WNZBDG7wt1VkM89s9YlO3+e774QjiPzhc67oqzAQ
bj14arKKhmHszaPiW/R0evCBkkrK4h5Wmzcxd/s4ncmtaUmGvpBhxp32eljEOVhT
I0Kfv9+DL3OFvXOYtxEOlFhwu850GPYVWIdUbnDMt3d3WxmFJ9wDSDOFjmVXr2kd
Az4RIjtbSFBzsOFs5dOM4yFh51M+YWE633b/H4WO2FZ5TwAw9EVR2bDJhAQ=
-----END CERTIFICATE-----

我的环境配置如下:
在这里插入图片描述在这里插入图片描述
然后我们点击Save
在这里插入图片描述效果图:
在这里插入图片描述没有图的需要调整下查询语句:
cluster disk usage:

(sum (node_filesystem_size_bytes{
    
    instance=~"$node"}) - sum (node_filesystem_free_bytes{
    
    instance=~"$node"})) / sum (node_filesystem_size_bytes{
    
    instance=~"$node"})

设置grafana报警

猜你喜欢

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