相关历史文章:
(一)节点状态的监控
文章目录
虽然我们想要监控的是clickhouse服务,但是对clickhouse所部署服务器的监控同样重要,服务器本身的状态异常可能会直接导致clickhouse服务的异常。Prometheus官方提供的node-exporter插件可以采集丰富的服务器状态指标,本文示例中所使用的数据源也是来源于此。但我们现在要做的是先制作一张表单,可以呈现各个服务器主要的静态指标和部分动态指标,至于完整的服务器状态监控可以参看github上大神们的 作品。
1. 表单效果
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会合并到一起)
-
方法2:Outer Join (可以按照指定的列进行join,因为我们的例子中instance不一致,所以只能是自定义一个IP的label,然后以此为key进行join操作)
3.2 隐藏列/重命名/排序
同样是transform提供的功能,通过Organize Fields
可以设置哪些列不需要在表格上显示,如上面所述,相同的列名在合并后会出现两次,因此可以使用此功能将重复的列隐藏掉;同样还可以在这儿对列进行重命名和重排序的操作。 总之,transform是用来在表格显示前对数据显示进行处理的。
3.3 特殊列设置
有些列我希望在显示的时候有些特殊的设置,比如说背景颜色、单位、阈值设置等,这些需求都可以通过Overrides功能来满足:
3.3.1 设置显示方式
比如状态列希望设置为背景标识,绿色表示正常,红色表示异常。
3.3.2 修改单位
Grafana提供了各种各样的单位选择,详情可以查看官网,我们常用的是Data和Data Rate,前者是表示数据大小的,后者是表示速率的。我们会看到同一个单位有IEC和SI两种选择,这里补充个小知识点:
- IEC标准:2进制单位,即1KiB = 2^10B,是按1024来换算的,单位中间会加一个i来区分
- SI标准:10进制表示,即1KB = 10^3B,是按1000来换算的
3.3.3 阈值设置
有的列我们希望通过设置阈值的方式来显示告警,比如内存利用率,大于80我们希望用黄色来表示一般告警,大于90用红色来表示严重告警,其他用绿色表示正常。
小结
本文简单介绍了如何用Grafana来制作一张服务器的监控信息表,同样的方法我们可以做出CH实例的监控信息表来,你可以自己动手试试~~