今天要说明的是Grafana部署的部分。依照在Day 23 中的软件架构图在云端与边缘端各自布署了一个Grafana,那我们先来看边缘端的Grafana YAML配置。
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清单中有几个重点:
最後用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
上面是我设定好的样板,下面说明一下他是怎麽配置的。
首先是资料Query
From後面接的是资料表(measurement)名称;WHERE栏位则是根据我们在Day 24将感测器数据写入资料库时设定的tag,以此图为例代表选择tag为location=Dormitory的资料;SELECT栏位选择field(light),同样也是对应到Day 24中写入到field的内容
然後因为是呈现灯光明暗度,所以我选择以gage的图形作呈现,可以在右侧栏位Panel的Visualization找到,当然也有其他种呈现样板方式:
<<: 【零基础成为 AI 解梦大师秘笈】Day26 - 周易解梦之人工智慧(7)
今天做了几件小事 定义 Project 的型别 class 增加 Project 的状态 定义 Li...
时间来到 2020/05,那时系上的毕业专题展刚结束,所以我跟 EC、CC Lai 都闲闲没事做,有...
Q: 如何反驳「工程师离开电脑之後就是个废物」的这个说法? A: 不不不,很多工程师在电脑前面也是...
ax.subplots() bar Plotting time-series Quantitativ...
前言 由於 CKEditor 的客制化需要仰赖 Webpack,无法在 Vite 的专案上使用 因此...