博客 / 詳情

返回

6年前的項目終於更新了--機房ping監控全國主要城市

前言

當初項目的本意是為了監測中心機房到全國各地(主要是省會與重要城市)的ping速率而創建,目標ip地址是根據某個ip網站爬取,而現在該網站已經下線了,導致目標ip無法獲取,再加上所用組件版本已經年久失修,最後是本人懶惰~~,導致項目已經不可用很久了

今年勤奮戰勝懶惰,又重新佔領高地,想着把該項目重修修繕一遍

開始修繕

  • 更換ip庫:放棄了之前的網站,重新找了一份ip地址庫,並且會定期更新
  • 部署方式變更:使用docker容器部署,方便部署,
  • 加入更多城市:不但跟蹤省會以及重要城市,還有地級市也一併跟蹤了
  • 自動更新ip:每3個小時處理不能ping通的ip,並且從ip庫找一個可用的ip地址更新
  • 更換最新頁面:可以選擇使用原生的頁面,也可以prometheus+pushgateway+grafana查看更細緻的頁面

安裝

docker volume create idc_ping_monitor_V
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
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分鐘之後才會有數據

docker rm -f idc_sidecar
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

    cd smokeping && docker build . -t registry.cn-beijing.aliyuncs.com/wilsonchai/idc_smokeping:v1
  • idc_sidecar

    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)原生的效果圖

watermarked-idc_monitor_ping_1.jpg

2)grafana

watermarked-idc_monitor_ping_2.jpg

這裏需要注意的是:該panel有2個參數:省份和城市。省份可以選擇,由於城市過多(1010個),選擇城市的時候需要自行輸入

代碼倉庫

代碼地址

最後再來分析一下倉庫目錄下的代碼組成,方便大家使用

▶ tree -L 1
.
├── grafana
├── sidecar
└── smokeping
  • grafana目錄主要存放了grafana的模版文件,需要的時候直接導入進grafana即可

    ▶ ls -l grafana
    total 20
    -rw-rw-r-- 1 wilson wilson 18946 11月  5 18:43 全國速率監測(地級市版).json
    
  • sidecar目錄主要存放了各種操作城市數據相關的腳本
  • smokeping目錄主要存放了smokeping相關的配置文件

聯繫我

  • 聯繫我,做深入的交流


至此,本文結束
在下才疏學淺,有撒湯漏水的,請各位不吝賜教...

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.