有时候,Grafana里展示的主机太多了,我们可能需要将主机进行分组展示,例如把主机根据使用的项目分组,或者按照使用部门进行分组。这个时候,就需要用到Grafana的Templates(模板)功能了。实际效果见下图:
首先,我们看看Prometheus的配置文件:
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 消费平台(pc/wap)
static_configs:
- targets: ['10.19.4.53:9100', '10.19.4.52:9100', '10.19.4.54:9100']
labels:
env: 消费平台(pc/wap)
- job_name: 老旧服务
static_configs:
- targets: ['10.13.85.88:9100', '10.13.85.89:9100', '10.13.85.90:9100', '10.13.85.91:9100']
labels:
env: 老旧服务
- job_name: 推荐算法
static_configs:
- targets: ['10.18.90.12:9100', '10.18.90.11:9100', '10.11.153.75:9100', '10.11.153.76:9100', '10.11.153.77:9100']
labels:
env: 推荐算法
- job_name: 数据平台
static_configs:
- targets: ['10.16.19.203:9100', '10.18.35.64:9100']
labels:
env: 数据平台
- job_name: MediaPlatform
static_configs:
- targets: ['10.18.37.66:9100', '10.18.40.202:9100']
labels:
env: MediaPlatform
- job_name: 反垃圾
static_configs:
- targets: ['10.16.6.235:9100', '10.18.33.139:9100']
labels:
env: 反垃圾
- job_name: 视频商业
static_configs:
- targets: ['10.16.79.103:9100', '10.16.79.104:9100', '10.2.172.57:9100']
labels:
env: 视频商业
- job_name: 运维/测试
static_configs:
- targets: ['10.13.89.147:9100', '10.11.149.69:9100']
labels:
env: 运维/测试
- job_name: 互动
static_configs:
- targets: ['10.16.56.138:9100','10.18.37.84:9100']
labels:
env: 互动
- job_name: 生产平台MP
static_configs:
- targets: ['10.16.57.75:9100', '10.16.57.79:9100', '10.18.3
3.113:9100']
labels:
env: 生产平台MP
运行prometheus的方法就不多说了,这里也省略掉在Grafana中添加数据源的过程。
在Grafana的dashboard中,添加以下几个Variables:
注意:最后一个$maxmount的query是根据上一部的$host变量统计出系统中最大容量的分区(参考了这篇文章)。
添加以后是这样子的
然后,我们的dashboard里面就会出现如下的效果:
接下来,我们演示一下,添加几个图表,并且,当我们选择了相关的Variables以后,下方图表中的主机也会随之变化。
添加CPU使用率
添加内存使用率
添加磁盘使用率
最终形成的效果如下图:
参考文章: