#根据前面3章节的部署,已经完成了grafana、prometheus、blackbox-exporter的部署,第3章节的末尾已经从抓包数据验证,监控IP丢包已经实现了,现在需要将丢包率数据可视化,只需要在grafana web界面操作即可
1、在grafana 点击 首页>仪表盘>新建>新建文件夹,填写新文件夹名称 (自定义名称,如测试A)
2、然后创建仪表盘,点击 Create Dashboard,添加可视化,在选择数据源的时候选择Mixed(选择多个数据源),比较好的网络监控系统基本都是分布式多点监控(通俗理解,就是多个探测点对一个IP进行监控,可以减少探测点单点故障的问题,减少丢包误报情况)
3、选择Mixed之后就进入以下界面,A就是监控项,默认会自动创建一个,序号为A
①Prometheus-南昌移动-local是探测点,这个是根据你的添加的监控源进行选择
②选择代码配置监控信息,输入promql语句,用以实现你的丢包率可视化
③在上图红框中的 Eenter a PromQL query ... 输入
100 - (avg_over_time(probe_success{job="icmp-ping",instance='114.114.114.114'}[1m]) * 100)
让我们逐步解析这个语句:
这段 PromQL 查询语句用于计算 ICMP ping 的成功率百分比。
1. **`probe_success{job="icmp-ping",instance='114.114.114.114'}`:**
- `probe_success` 是一个prometheus监控指标,通常用于记录探测性质的操作是否成功。在这里,它可能表示 ICMP ping 探测是否成功。
- `{job="icmp-ping", instance='114.114.114.114'}` 是一组标签过滤条件,用于选择具体的监控实例和任务。这表示我们关注 job 标签为 "icmp-ping",instance 标签为 '114.114.114.114' 的监控数据。
2. **`[1m]`:**
- 表示使用 1 分钟的采样间隔来计算平均值。这将返回最近 1 分钟内的数据,并计算平均值。
3. **`avg_over_time(...)`:**
- `avg_over_time` 函数用于计算一段时间内数据的平均值。在这里,它计算了 `[1m]` 内的 `probe_success` 指标的平均值。
4. **`* 100`:**
- 将上一步计算的平均值乘以 100。这是为了将成功率转换为百分比。
5. **`100 - (...)`:**
- 用 100 减去前面计算的百分比。这是因为通常我们更关心失败率而不是成功率,而失败率等于 100 减去成功率。
因此,整个查询的目的是计算 ICMP ping 探测的失败率百分比。如果你对某个目标 IP(在这里是 '183.240.47.22')执行 ICMP ping 探测,并使用 Prometheus 进行监控,这个查询将给出最近 1 分钟内的失败率百分比。
probe_success是prometheus的一个监控指标,在prometheus web界面也可以查询到job="icmp-ping" 是prometheus.yml配置文件中我们自定义的工作名称(回看往期文章就清楚)
讲解一下为什么是配置 1分钟内的失败百分比,之前我们设置的prometheus探测频率是1s 1次,从ping包角度理解,也就是 1s ping一个包,第3章抓包验证就已经证实了是1s 1个数据包,所以是每分钟60个数据包,计算1分钟内的60个数据包的丢包率对于监控ip丢包率是比较合理的,当然你也可以根据自身服务器性能来修改,比如2s探测一次。
④点击run queries 运行查询,就会出图成功
然后对该监控项进行自定义描述
⑤完成上述还不是真正的丢包率可视化数据图,还需要修改侧边栏的图形自定义
修改图形名称
当完成上面选择的配置之后,出图效果如下,这样就完成了单点监控了
4、如果想多点监控,只需要复制多个监控实例到该仪表盘即可
①点击A监控实例的复制按钮,就会复制成B,然后修改探测点为其他区域的prometheus即可,然后修改B的备注,再点击运行按钮即可。
最终就会达到多点监控的效果,即从南昌和北海两个地方探测114.114.114.114这个ip的丢包率。