网络延迟监测工具 SmokePing 的安装与配置

下面文章已经过时,新版在「技焉洲」更新: 网络延迟监测工具 SmokePing 的安装与配置 – 技焉洲 (vfly2.com)

放在新站点「技焉洲」的原因: 承飞之咎与技焉洲 – 承飞之咎 (vfly2.com)




本文重在 SmokePing 的部署流程,介绍和更多使用请到:VPS 网络测试与长期监测 – 承飞之咎 (vfly2.com)

若无单独说明,按照文章代码块中命令的顺序,一条一条执行,即可实现目标。
适用系统:Debian 系发行版,包括 Ubuntu 和 Armbian,其他发行版按流程稍改命令一般也可。

走通预计时间:20 分钟 (建议先走通一遍,再回过头自定义配置文件)


使用 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  = ironicbadger@linuxserver.io
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)

如果你认为我的文章有帮助,欢迎使用 RSS 订阅,也欢迎留言指正。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇