docker搭建prometheus+blackbox-exporter+granfana实现网络监控(4)

#根据前面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的丢包率。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于Docker Compose的搭建Prometheus、Grafana、AlertmanagerBlackbox Exporter和Node Exporter的示例: ```yaml version: "3" services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.enable-admin-api' restart: always grafana: image: grafana/grafana container_name: grafana ports: - "3000:3000" volumes: - ./grafana:/var/lib/grafana restart: always alertmanager: image: prom/alertmanager container_name: alertmanager ports: - "9093:9093" volumes: - ./alertmanager/config.yml:/etc/alertmanager/config.yml command: - '--config.file=/etc/alertmanager/config.yml' restart: always blackbox-exporter: image: prom/blackbox-exporter container_name: blackbox-exporter ports: - "9115:9115" volumes: - ./blackbox-exporter/config.yml:/etc/blackbox-exporter/config.yml command: - '--config.file=/etc/blackbox-exporter/config.yml' restart: always node-exporter: image: prom/node-exporter container_name: node-exporter ports: - "9100:9100" restart: always ``` 需要注意的是,这里的配置文件都需要自己创建并且挂载到对应的容器中。例如,prometheus.yml、config.yml和config.yml分别对应Prometheus、AlertmanagerBlackbox Exporter的配置文件。同时,Grafana的数据目录也需要挂载到主机上以便数据持久化。 另外,需要注意的是这只是一个示例,具体的配置文件需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值