Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

相关历史文章:
(一)节点状态的监控

文章目录


虽然我们想要监控的是clickhouse服务,但是对clickhouse所部署服务器的监控同样重要,服务器本身的状态异常可能会直接导致clickhouse服务的异常。Prometheus官方提供的node-exporter插件可以采集丰富的服务器状态指标,本文示例中所使用的数据源也是来源于此。但我们现在要做的是先制作一张表单,可以呈现各个服务器主要的静态指标和部分动态指标,至于完整的服务器状态监控可以参看github上大神们的 作品

1. 表单效果

Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

2. 指标介绍

  • 状态:利用blackbox_exporter插件提供的icmp模块提供,0为异常,1为正常

以下指标均有node_exporter插件提供,ip的lable是在prometheus配置文件中自定义的

  • 静态资源(CPU架构、主机名、操作系统版本、操作系统):对应的metric为node_uname_info
  • 启动时长:对应的metric为time()-node_boot_time_seconds
  • 内存大小:node_memory_MemTotal_bytes-0
  • 内存使用率:(1-node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes)*100
  • CPU最近5分钟负载:node_load5-0
  • CPU利用率:(1-avg(rate(node_cpu_seconds_total{mode="idle"}[$__rate_interval]))by(ip))*100
  • 磁盘读速率(所有磁盘):sum(rate(node_disk_read_bytes_total[$__rate_interval]))by(ip)
  • 磁盘写速率(所有磁盘):sum(rate(node_disk_written_bytes_total[$__rate_interval]))by(ip)
  • 网卡上传速率(所有网卡):sum(rate(node_network_receive_bytes_total[$__rate_interval])*8)by(ip)
  • 网卡下载速率(所有网卡):sum(rate(node_network_transmit_bytes_total[$__rate_interval])*8)by(ip)

3. Grafana制作

3.1 多表合并

因为我们需要将不同的指标在一张表中显示,这就涉及到了grafana的表合并功能。

3.1.1 合并原理

如果两张表有相同的字段,则以此为key进行合并,比如A表有f1,f2,f3,B表有f1,f2,f4,则合并后的列为f1,f2,f3,f1,f2,f4,如果两种表中f1和f2的值相同,则会合并到一行,否则会多行显示。

3.1.2 合并方法

grafana通过transform的功能可以满足表格的合并的需求。

  • 方法1:Merge(自动按照instance的label进行合并,相同的instance会合并到一起)
    Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

  • 方法2:Outer Join (可以按照指定的列进行join,因为我们的例子中instance不一致,所以只能是自定义一个IP的label,然后以此为key进行join操作)
    Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

3.2 隐藏列/重命名/排序

同样是transform提供的功能,通过Organize Fields可以设置哪些列不需要在表格上显示,如上面所述,相同的列名在合并后会出现两次,因此可以使用此功能将重复的列隐藏掉;同样还可以在这儿对列进行重命名和重排序的操作。 总之,transform是用来在表格显示前对数据显示进行处理的。
Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

3.3 特殊列设置

有些列我希望在显示的时候有些特殊的设置,比如说背景颜色、单位、阈值设置等,这些需求都可以通过Overrides功能来满足:

3.3.1 设置显示方式

比如状态列希望设置为背景标识,绿色表示正常,红色表示异常。
Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

3.3.2 修改单位

Grafana提供了各种各样的单位选择,详情可以查看官网,我们常用的是Data和Data Rate,前者是表示数据大小的,后者是表示速率的。我们会看到同一个单位有IEC和SI两种选择,这里补充个小知识点:

  • IEC标准:2进制单位,即1KiB = 2^10B,是按1024来换算的,单位中间会加一个i来区分
  • SI标准:10进制表示,即1KB = 10^3B,是按1000来换算的

Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

3.3.3 阈值设置

有的列我们希望通过设置阈值的方式来显示告警,比如内存利用率,大于80我们希望用黄色来表示一般告警,大于90用红色来表示严重告警,其他用绿色表示正常。
Grafana制作clickhouse监控仪表盘(二)-服务器监控表单

小结

本文简单介绍了如何用Grafana来制作一张服务器的监控信息表,同样的方法我们可以做出CH实例的监控信息表来,你可以自己动手试试~~

上一篇:js根据值的正负显示不同颜色


下一篇:观察者模式(java)