找回密码
 立即注册
首页 业界区 业界 6年前的项目终于更新了--机房ping监控全国主要城市 ...

6年前的项目终于更新了--机房ping监控全国主要城市

擒揭 2025-11-27 11:20:03
前言

当初项目的本意是为了监测中心机房到全国各地(主要是省会与重要城市)的ping速率而创建,目标ip地址是根据某个ip网站爬取,而现在该网站已经下线了,导致目标ip无法获取,再加上所用组件版本已经年久失修,最后是本人懒惰~~,导致项目已经不可用很久了
今年勤奋战胜懒惰,又重新占领高地,想着把该项目重修修缮一遍
开始修缮


  • 更换ip库:放弃了之前的网站,重新找了一份ip地址库,并且会定期更新
  • 部署方式变更:使用docker容器部署,方便部署,
  • 加入更多城市:不但跟踪省会以及重要城市,还有地级市也一并跟踪了
  • 自动更新ip:每3个小时处理不能ping通的ip,并且从ip库找一个可用的ip地址更新
  • 更换最新页面:可以选择使用原生的页面,也可以prometheus+pushgateway+grafana查看更细致的页面
安装
  1. docker volume create idc_ping_monitor_V
  2. docker run -d --name idc_smokeping -p 8001:80 -v idc_ping_monitor_V:/opt -v ./data:/data registry.cn-beijing.aliyuncs.com/wilsonchai/idc_smokeping:v1
  3. docker run -d --name idc_sidecar -v idc_ping_monitor_V:/opt -v ./data/:/data registry.cn-beijing.aliyuncs.com/wilsonchai/idc_sidecar:v1
复制代码
这里需要注意的是,./data文件存放了所有城市的ping数据,idc_smokeping与idc_sidecar需要共享该目录。如果之前的数据不想要,可直接删除即可
如果有需要推送到pushgateway,那就需要重新配置idc_sidecar
注:prometheus需要idc_ping_monitor启动6分钟之后才会有数据
  1. docker rm -f idc_sidecar
  2. docker run -d --name idc_sidecar -e PUSHGATEWAY_URL=10.22.12.178:9091 -v idc_ping_monitor_V:/opt -v ./data/:/data registry.cn-beijing.aliyuncs.com/wilsonchai/idc_sidecar:v1
复制代码
编译

如果需要自己编译,也可以进入两个目录分别操作

  • idc_smokeping
    1. cd smokeping && docker build . -t registry.cn-beijing.aliyuncs.com/wilsonchai/idc_smokeping:v1
    复制代码
  • idc_sidecar
    1. cd sidecar && docker build . -t registry.cn-beijing.aliyuncs.com/wilsonchai/idc_sidecar:v1
    复制代码
详解


  • idc_smokeping:使用smokeping作为数据采集端,负责采集到各城市ip的ping数据,存为rrd格式的数据文件,每3分钟采集一次,并且每3小时会应用一次新的城市ip(如果有更新)
  • idc_sidecar:

    • 使用cron+python脚本,每小时检查城市ip是否能够ping通,如果不能ping通,就立刻在ip库中更换一个
    • 如果配置了环境变量:PUSHGATEWAY_URL,那每3分钟将各个城市的数据采集到pushgateway,从而进入prometheus,方便后续分析

  • ./data:各城市的ping数据存放在宿主机当前目录的./data下面,便于保存、备份或者删除
  • idc_ping_monitor_V:docker volume,用来存放各城市的ip地址以及ip库
效果

1)原生的效果图
1.jpeg

2)grafana
2.jpeg

这里需要注意的是:该panel有2个参数:省份和城市。省份可以选择,由于城市过多(1010个),选择城市的时候需要自行输入
代码仓库

代码地址
最后再来分析一下仓库目录下的代码组成,方便大家使用
  1. ▶ tree -L 1
  2. .
  3. ├── grafana
  4. ├── sidecar
  5. └── smokeping
复制代码

  • grafana目录主要存放了grafana的模版文件,需要的时候直接导入进grafana即可
    1. ▶ ls -l grafana
    2. total 20
    3. -rw-rw-r-- 1 wilson wilson 18946 11月  5 18:43 全国速率监测(地级市版).json
    复制代码
  • sidecar目录主要存放了各种操作城市数据相关的脚本
  • smokeping目录主要存放了smokeping相关的配置文件
联系我


  • 联系我,做深入的交流
3.bmp

至此,本文结束
在下才疏学浅,有撒汤漏水的,请各位不吝赐教...

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册