AhFei

AhFei

简洁的写作需要勇气

網路延遲工具 SmokePing 的安裝與配置

若無單獨說明,按照文章代碼塊中命令的順序,一條一條執行,即可實現目標。
適用系統:Debian 系發行版,包括 Ubuntu 和 Armbian,其他發行版按流程稍改命令一般也可。

走通預計時間:20 分鐘 (建議先走通一遍,再回過頭自定義配置文件)

image.png

SmokePing 是一款強大而靈活的網絡延遲監測工具,且可在網頁查看結果圖。

簡單說,告訴它 IP ,它就會不斷 ping ,然後把結果保存並用圖展示。我在「隨身伺服器」上安裝使用,檢測當前與 VPS 的網絡狀況。實際上,SmokePing 能測試網絡的工具很豐富,常用的:FPing、cURL、DNS、FPing6

官網: SmokePing - About SmokePing (oetiker.ch)

linuxserver 構建的 Docker 鏡像: linuxserver/docker-smokeping (github.com)

使用 Docker 安裝 SmokePing#

全複製並執行,一鍵創建工作目錄並開放端口

myserve="smokeping"
sudo ufw allow 8899/tcp comment $myserve && sudo ufw reload
mkdir -p ~/myserve/$myserve && cd ~/myserve/$myserve

根據註釋自定義,然後執行,一鍵創建 docker-compose.yml 文件 (支持 armbian)

cat > docker-compose.yml << EOF
version: "2.1"
services:
  smokeping:
    image: lscr.io/linuxserver/smokeping:latest
    container_name: smokeping
    restart: unless-stopped
    environment:
      - PUID=1000   # 自定義,可以是用戶名,也可以是 UID,如果不懂,填 root
      - PGID=1000   # 自定義,可以是組名,也可以是 UID,如果不懂,填 root
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
      - ./data:/data
    ports:
      - 8899:80
EOF

拉取容器鏡像

docker compose pull

啟動容器(這時就可以訪問網頁了,通過 http://ip_addr_or_domain:8899 訪問)

docker compose up -d

如果安裝在大陸的機子上,需要小小的修改,國外跳過#

忘記原因了,似乎不修改 resolve.conf 會沒數據出來

需要修改鏡像中的 resolve.conf 文件。所有操作均在 ~/myserve/smokeping/ 目錄,步驟:

cd ~/myserve/smokeping/

創建自定義 resolve.conf: 添加一個國內可用的 DNS,這裡用的 223.5.5.5

touch resolve.conf && \
echo "nameserver 223.5.5.5" > resolve.conf && \
echo "options edns0 trust-ad ndots:0" >> resolve.conf

創建一個Dockerfile文件用於拉取並修改鏡像:

cat > Dockerfile << EOF
FROM linuxserver/smokeping:latest
COPY ./resolve.conf /etc/resolve.conf
EOF

docker-compose.yml 文件改為以下內容,就是把 image: 換成 build:

cat > docker-compose.yml << EOF
version: "2.1"
services:
  smokeping:
    build: ./
    container_name: smokeping
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
      - ./data:/data
    ports:
      - 8899:80
EOF
docker compose up -d

啟動容器之後,還需要修改一點:

vim /usr/local/smokeping/config/Probe

將以下 DNS 裡面的 lookup 改為國內網絡能夠連接的網址,比如 baidu.com 。

+ DNS
binary = /usr/bin/dig
lookup = baidu.com
pings = 5
step = 300

修改主節點名稱#

image.png

如圖所示的地方

cd ~/myserve/smokeping && vim config/General

添加一個display_name

*** General ***

owner    = LinuxServer.io
contact  = [email protected]
mailhost = my.mail.host
cgiurl   = http://localhost/smokeping.cgi
syslogfacility = local0
# 節省空間,刪去了註釋

display_name = 鄭州移動家寬   # 這裡
@include /config/pathnames

SmokePing 探針的配置文件#

先自定義查詢頻率

cd ~/myserve/smokeping && vim config/Database
*** Database ***
step     = 180
pings    = 20

每 3 分鐘查詢 20 次。

  • step:查詢周期,單位秒,多少秒時間 ping 一輪,其實不止 ping ,指的是所有探針的操作
  • pings: 每次周期查詢多少次,比如,每個節點 ping 多少下

編輯探針的配置文件

cd ~/myserve/smokeping && vim config/Probes

常用的有這幾個:(更多查看: SmokePing - SmokePing Probes (oetiker.ch)

*** Probes ***

+ FPing
binary = /usr/sbin/fping
packetsize = 1000
 
+ FPing6
binary = /bin/ping6   # 這個不能按官網的改,因為是 容器版的


+ DNS
binary = /usr/bin/dig
lookup = baidu.com
pings = 5
step = 300

+ Curl
binary = /usr/bin/curl
forks = 5
offset = 50%

這裡的 pings 會覆蓋上面的。


可以在配置文件裡任意更改探針類型,使用哪個,就在前面加 probe = 探針名稱

(如果看得頭大,不妨先跳過)

 *** Targets ***
 probe = FPing
 menu = Top
 title = Network Latency Grapher
 remark = Welcome to this SmokePing website.
 
 + network
 menu = Net latency
 title = Network latency (ICMP pings)
 
 ++ myhost1
 host = myhost1.example
 ++ myhost2
 host = myhost2.example
 
 + services
 menu = Service latency
 title = Service latency (DNS, HTTP)
 
 ++ DNS
 probe = DNS   # 這裡 probe 換成了 DNS
 menu = DNS latency
 title = Service latency (DNS)
 
 +++ dns1
 host = dns1.example
 
 +++ dns2
 host = dns2.example

監測 ip 配置文件#

例子: SmokePing - smokeping_examples (oetiker.ch)

簡單說明:

  1. ++ 這裡填標識符,可以用大小寫英文字母、數字、下劃線和減號
  2. menu = 菜單顯示的內容
  3. title = 頁面頂部顯示的內容
  4. host = 要 ping 的目標,域名和 IP 都行
  5. 每次更改配置要重啟容器生效

這裡可以先按照下面的格式,隨便填填,然後看網頁上有什麼變化,這樣容易還快。

cd ~/myserve/smokeping && vim config/Targets

這是一個我自己使用的縮減示範版,可以先不改,走通流程,運行看看,再自定義:

*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher for AhFei
remark = Welcome to my SmokePing website. \
         Here you will learn all about the latency of my network.



+ TheBigThree
menu = 三大運營商
title = 監控統計


++ CMCC
menu = 移動網絡監控
title = 移動網絡監控列表
host = /TheBigThree/CMCC/CMCC-BJ /TheBigThree/CMCC/CMCC-TJ /TheBigThree/CMCC/CMCC-HLJ
 
+++ CMCC-BJ
menu = 北京移動
title = 北京移動
alerts = someloss
host = 221.130.33.52
 
+++ CMCC-TJ
menu = 天津移動
title = 天津移動
alerts = someloss
host = 211.137.160.5

+++ CMCC-HLJ
menu = 黑龍江移動
title = 黑龍江移動
alerts = someloss
host = 211.137.241.35

# 剩下倆就省略了,太長了



+ DomesticServer
menu = 國內伺服器
title = 監控統計
host = /DomesticServer/Tc

++ Tc
menu = TencentCloud
title = TencentCloud
alerts = someloss
host = 110.242.68.66




+ USServer
menu = 北美伺服器
title = 監控統計
host = /USServer/Bwg /USServer/NA

++ Bwg
menu = Bandwagon
title = Bandwagon
alerts = someloss
host = 193.43.142.215

++ NA
menu = nextarray
title = nextarray
alerts = someloss
host = 193.43.142.215




+ OtherRegionServer
menu = 其他地區伺服器
title = 監控統計
host = 

關於三大運營商的監測 IP: raw.githubusercontent.com/AhFeil/bash-script/main/smokeping-Targets ,有些失效了,沒有更新計劃,用不到。


停止容器

docker compose down

重啟容器

docker compose up -d

原文鏈接: https://blog.vfly2.com/2023/07/smokeping-installation-configuration/
版權聲明:本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。转载请注明來源 承飛之咎 (blog.vfly2.com)

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。