Day 27 KubeEdge小专题: Grafana部署

今天要说明的是Grafana部署的部分。依照在Day 23 中的软件架构图在云端与边缘端各自布署了一个Grafana,那我们先来看边缘端的Grafana YAML配置。

配置Grafana服务

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: grafana
  namespace: default
  labels:
    app: grafana
spec:
  # 储存的版本历史纪录笔数
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3000
          name: grafana
          hostPort: 3000
        env:
        - name: GF_SECURITY_ADMIN_USER
          value: admin
        - name: GF_SECURITY_ADMIN_PASSWORD
          value: admin
        resources:
          # CPU与记忆体资源限制,10%CPU以及256MB记忆体
          limits:
            cpu: 100m
            memory: 256Mi
          requests:
            cpu: 100m
            memory: 256Mi
        volumeMounts:
        - mountPath: /var/lib/grafana
          #subPath: grafana
          name: storage
      volumes:
      - name: storage
        hostPath:
          path: /mnt/grafana
      nodeSelector:
        name: edge-1

YAML清单中有几个重点:

  • 网路配置
    在spec.container.port中我宣告了containerPort与hostPort为3000
  • 容器内环境参数
    在spec.container.env中定义了Grafana的系统管理员与其密码
  • 储存空间挂载
    spec.volumes定义在实体机的/mnt/grafana目录作为服务资料储存位置,同时将这个储存位置取名为storage
    spec.contianer.volumeMounts则是将名为storage的储存空间挂载入容器中的对应位置,也就是/var/lib/grafana

最後用nodeSelector将服务布署至指定节点上。

布署服务後可以透过节点IP以及nodePort连线,如同我们之前介绍的连线方式一样。

第一次使用会要求更新密码,之後就可以用固定的密码登入。

在连接资料库之前,先进入influxdb中创建资料库:

# 在边缘节点上
docker ps


找到influxdb容器後,进入influxdb的指令模式:

# -ti後面接的参数是容器的ID,透过docker ps查到
docker exec -ti b0aca901be86 influx

进入指令模式後,我们创建一个资料库(db0):

create database db0
# 查看目前有的资料库
show database

# 离开容器
<Ctrl> + D


可以看到db0这个资料库出现在清单中,接着重新回到Grafana设定:

进入Grafana之後连接上设定好的InfluxDB资料库:
连接资料库(红框处)

选择InfluxDB之後进入设定


HTTP URL填入边缘端的IP与port 8086,对应到昨天创建的influxDB服务(透过nodePort连线)。

底下InfluxDB Details填入资料库名称(db0)使用者与密码对应到昨天创建secret中带的参数,telegraf与telegraf。

测试连接完後便完称资料库连接设定。
设定完资料库後我们开始引入资料库中的资料:
创建新的dashboard

Grafana样板设定


上面是我设定好的样板,下面说明一下他是怎麽配置的。
首先是资料Query

From後面接的是资料表(measurement)名称;WHERE栏位则是根据我们在Day 24将感测器数据写入资料库时设定的tag,以此图为例代表选择tag为location=Dormitory的资料;SELECT栏位选择field(light),同样也是对应到Day 24中写入到field的内容

然後因为是呈现灯光明暗度,所以我选择以gage的图形作呈现,可以在右侧栏位Panel的Visualization找到,当然也有其他种呈现样板方式:


<<:  【零基础成为 AI 解梦大师秘笈】Day26 - 周易解梦之人工智慧(7)

>>:  第二十七天:不规则边缘

Day 20 中场休息,来做点酷东西(型别修正跟除点小虫)

今天做了几件小事 定义 Project 的型别 class 增加 Project 的状态 定义 Li...

参与实验室的研究

时间来到 2020/05,那时系上的毕业专题展刚结束,所以我跟 EC、CC Lai 都闲闲没事做,有...

Day09: 【TypeScript 学起来】物件型别 Object Types : Arrays / Function

Q: 如何反驳「工程师离开电脑之後就是个废物」的这个说法? A: 不不不,很多工程师在电脑前面也是...

[Matplotlib] - Introduction to Charts and Plots

ax.subplots() bar Plotting time-series Quantitativ...

Vue 2 & 3 正确使用 TinyMCE (Self Hosted)

前言 由於 CKEditor 的客制化需要仰赖 Webpack,无法在 Vite 的专案上使用 因此...