Grafana快速入门指南下篇
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.tables(表格)展示数据
1.环境准备
如上图所示,我们配置了4个node_exporter被Prometheus监控了,本实验就是在此基础上执行的。
2.配置Query(查询)
如上图所示,依次配置一个Table的查询就可以看到显示的信息。
3.配置Transform(转换)
如上图所示,点击"Transform",而后选择"Filter by name",只勾选"instance","nodename","release",我们就可以将不需要的字段过滤掉。
4.添加Overrides(覆盖)属性
如上图所示,依次点击"Overrides","Add field override","Fields with name"
如下图所示,"Fields with name"选择响应的列字段(比如instance),而后点击"add override property",选择"Stamd options> Display name"
5.配置多指标监控展示
5.1 统计系统负载
如上图所示,我们依次按照图标执行,并添加"node_load5-0"查询,发现最终展示效果并不理想,需要配置"Transform"页面。
如下图所示,我们在"Transform"页面添加"Merge"转换,而后在为"Value #B"添加Overrides配置进行输出展示
5.2 统计CPU核数
如上图所示,继续添加CPU核心数监控,PromQL语句: count(node_cpu_seconds_total{mode='system'}) by (instance)
5.3 统计CPU使用率
如上图所示,继续添加CPU使用率监控,PromQL语句: (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)) * 100
5.4 统计内存总量
如上图所示,继续添加内存总量的监控,PromQL语句: node_memory_MemTotal_bytes-0
值得注意的是,需要当我们为内存配置属性时要配置两个,一个是列的名称(Display name),另一个是单位转换(Unit)
5.5 统计内存使用率
如上图所示,继续添加内存使用率的监控,PromQL语句: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))*100
5.6 统计网卡出流量
如上图所示,继续网卡出流量的监控,PromQL语句:max(rate(node_network_transmit_bytes_total[1m])) by (instance)
6.配置阈值和背景色
6.1 配置指定的表格颜色
如上图所示,我们可以为指定表格添加一个"Cell type"属性,然后选择"Colored background",就可以发现其会自动变色。
6.2 压力测试观察Thresholds(阈值)颜色变化
1.安装stress压测工具
[root@node-exporter42 ~]# apt -y install stress
2.开始内存压测
[root@node-exporter42 ~]# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10m
stress: info: [2103] dispatching hogs: 8 cpu, 4 io, 2 vm, 0 hdd
3.观察监控变化
如上图所示,表格的颜色变红了,根本原因是超过了定义的"Thresholds"(阈值)默认值: 80,我们可以自行修改该阈值哟~
6.3 Cell options(单元选项)
如上图所示,我们可以定义"Cell options"(单元选项),修改背景色,颜色之类的,但是个人感觉还是Auto的看着比较顺眼,你可以自行修改哈。
二.grafana变量定义
1.grafna变量的类型
grafana常用的变量类型包括但不限于:
- Query:
动态查询的类型。
- Custom:
用户自定义的字符串。
- Data source:
数据源。
2.Custom变量类型定义
如上图所示,我们可以使用自定义变量,至于变量的具体字符串,我们可以自行定义,比如: system,user,idle
如下图所示,我们定义好变量可以直接在grafana中进行引用,对应的PromQL语句: node_cpu_seconds_total{mode="${custom_cpu_mode}"}
3.Query变量类型定义
如上图所示,我们可以配置Query Type类型选择"Label values",而后安装步骤依次配置:
- Label标签选择器基于mode过滤。
- 如果还过滤不出来更详细的可以使用Metric进行再次筛选。
- 如果还要进一步筛选,可以定义Regex,比如"i.*"表示以i开头的mode,符合结果的仅有"idle","iowait","irq"等。
如下图所示,就是我们使用变量展示后的效果,对应的PromQL语句: node_cpu_seconds_total{mode="${query_cpu_mode}"}
4.实战案例
4.1 查询集群的总内存
如上图所示,我们定义一个"instance"变量,并勾选"Multi-value"选项。
如下图所示,我们就可以选择多个主机的信息进行查看啦~对应的PromQL语句: node_memory_MemTotal_bytes{instance=~"${instance}"}
4.2 统计内存的使用率
如上图所示,表示对应内存的使用率。
5.变量的嵌套
如上图所示,我们定义device变量,引用了instance变量。
实现效果如下图所示,当我们修改了instance变量时,对应的device的网卡设备可能也会随之变化哟~
三.导入dashboard模板
1.导出当前dashboard(模拟备份)
如上图所示,我们可以将自习做的dashboard导出相当于备份,而且也可以给其他人共享。
2.导入dashboard(模拟恢复)
如上图所示,如果本地的dashboard删除了,或者别人要用咱们的dashboard就可以手动导入啦
3.导入官方的模板
如上图所示,我们可以去grafana官网导入我们所需要的模板使用接口。
参考链接:
https://grafana.com/grafana/dashboards/
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
欢迎交流学习技术交流,个人微信: "JasonYin2020"(添加时请备注来源及意图备注)
作者: 尹正杰, 博客: https://www.cnblogs.com/yinzhengjie/p/18538430