设置 Grafana Dashboards.note
一、添加 Grafana Dashboards:
1、创建 up/down 图表:
图表使用 Stat



添加第一个图表:
# 有两种方式:
1、Builder:用各种值组合成下面的Code(更简单)
2、Code:直接输入 PromQL值,例如:up{instance=~".*:9100"}
可以使用 Builder 或 Code的方式
Builder 就是参数组合成 Code PromQL
Code 就是直接写完整 PromQL
Metric 选择 up

Lable 这里可以选择两个:
# 都是在 prometheus.yml 中定义的
job:.yml 中定义的 job_name 名称
instance: .yml 中定义的 targets 地址
然后选择 =~这里用 instance,并且 过滤 .*:9100(因为有 localhost:9090,如果要同时过滤 localhost,那么用:.* 就好)

然后这里自动生成的其实就是能够写入 Code 中的 PromQL值

然后点击 Run queries,就能获取到值:

然后选择图表类型 Stat:

这样就有数据显示了

设置自动刷新页面:

·优化图表:
·修改图表 Title:
在 图表设置区:

·把 1 改成 UP、把 0 改成 DOWN:
在 图表设置区 找到 "Value mappings":

将 值1 映射为 UP,并设置 绿色颜色

最终就是这样:

效果:

·修改上方名称:
在 数据设置区:

在 Custom 中 填写 instance

然后写成 instance,这样上面的名称就会变成 .yml 中定义的 targets 名称了,并且类型选择 Instant,显示当前状态

Range:一段时间内的一系列数据,适用于折线图、Time series
Instant:某一个时间点的当前值,适用于 Stat·把 :9100 端口去掉:
在 数据设置区 ,在 原本的 up{...} 外层套一个 label_replace:
label_replace(up{instance=~".*:9100"}, "host","$1","instance","(.*):.*")
## 用冒号分割,取第一部分的值存入 host 变量
# 旧:
label_replace(up{instance=~".*:9100"}, "host","$1","instance","([^:]+):9100")

然后在下面调用新的变量 "host":

可以看到,更改成功
·或者直接填写变量 {{ job }}:
因为我们prometheus 中定义的yml中,job就是不带端口的名字

.yml:

2、创建 CPU 监控图表:
图表使用 Gauge

CPU建议选择 Gauge:

# 表达式:
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
点击 Run queries

并且建议设置自动刷新页面:

·把 :9100 端口去掉:
还是在外围套一个 label_replace:
label_replace(100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100),"host","$1","instance","(.*):.*")
## 用冒号分割,取第一部分的值存入 host 变量
# 旧:
label_replace(100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100),"host","$1","instance","([^:]+):9100")
可以看到已经没有 :9100 端口了
·添加 单位 % :
在 图表控制区:

3、创建 内存 监控图表:
图表使用 Gauge
注意这里 MemAvailable 和 MemTotal 必须大写
100 * (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)
# 去掉 :9100 后:
label_replace(100 * (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes),"host","$1","instance","(.*):.*")
4、创建 Disk 监控图表:
图表使用 Gauge
100 * (1 - node_filesystem_avail_bytes{fstype!="tmpfs", fstype!="overlay"} / node_filesystem_size_bytes{fstype!="tmpfs", fstype!="overlay"})
# 删除 :9100 后:
label_replace(100 * (1 - node_filesystem_avail_bytes{fstype!="tmpfs", fstype!="overlay"} / node_filesystem_size_bytes{fstype!="tmpfs", fstype!="overlay"}), "host", "$1", "instance", "(.*):.*")
·添加 单位 % :

5、创建 网络监控 图表:
图表使用 Time series
rate(node_network_receive_bytes_total{device="ens33"}[5m]) * 8
# 删除 :9100 后:
label_replace(rate(node_network_receive_bytes_total{device="ens33"}[5m]) * 8,"host","$1","instance","([^:]+):9100")
·给左边加单位:
因为这里 乘以了 8,所以单位应该是 bit/s
在 图表设置区:

效果:

6、监控 服务状态:
# 使用 node_systemd_unit_state 参数

node_system.. 可以在 Builder中补全
name=~ 可以定义多个服务,能够同时查看多个服务是否up/down
然后可以使用 value map将 1 映射为 UP,将 0 映射为 DOWN
·显示效果:
