若无单独说明,按照文章代码块中命令的顺序,一条一条执行,即可实现目标。 适用系统:Debian 系发行版,包括 Ubuntu 和 Armbian,其他发行版按流程稍改命令一般也可。 搭建预计时间:20 分钟。
使用 Docker 安装 SmokePing 全复制并执行 ,一键创建工作目录并开放端口
1 2 3 myserve="smokeping" sudo ufw allow 8899/tcp comment $myserve && sudo ufw reload mkdir -p ~/myserve/$myserve && cd ~/myserve/$myserve
根据注释自定义 ,然后执行,一键创建 docker-compose.yml 文件 (支持 armbian)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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
拉取容器镜像
启动容器(这时就可以访问网页了,通过 http://ip_addr_or_domain:8899
访问)
如果安装在大陆的机子上,需要小小的修改,国外跳过 忘记原因了,似乎不修改 resolve.conf 会没数据出来
需要修改镜像中的 resolve.conf 文件。所有操作均在 ~/myserve/smokeping/
目录,步骤:
创建自定义 resolve.conf: 添加一个国内可用的 DNS,这里用的 223.5.5.5
1 2 3 touch resolve.conf && \ echo "nameserver 223.5.5.5" > resolve.conf && \ echo "options edns0 trust-ad ndots:0" >> resolve.conf
创建一个 Dockerfile
文件用于拉取并修改镜像:
1 2 3 4 cat > Dockerfile << EOF FROM linuxserver/smokeping:latest COPY ./resolve.conf /etc/resolve.conf EOF
docker-compose.yml 文件改为以下内容,就是把 image:
换成 build:
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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
启动容器之后,还需要修改一点:
1 vim /usr/local/smokeping/config/Probe
将以下 DNS 里面的 lookup 改为国内网络能够连接的网址,比如 baidu.com 。
1 2 3 4 5 + DNS binary = /usr/bin/dig lookup = baidu.com pings = 5 step = 300
修改主节点名称
如图所示的地方
1 cd ~/myserve/smokeping && vim config/General
添加一个 display_name
1 2 3 4 5 6 7 8 9 10 11 *** 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 探针的配置文件 先自定义查询频率 :
1 2 3 4 cd ~/myserve/smokeping && vim config/Database *** Database *** step = 180 pings = 20
每 3 分钟查询 20 次。
step:查询周期,单位秒,多少秒时间 ping 一轮,其实不止 ping ,指的是所有探针的操作 pings: 每次周期查询多少次,比如,每个节点 ping 多少下 编辑探针的配置文件 :
1 cd ~/myserve/smokeping && vim config/Probes
常用的有这几个:(更多查看: SmokePing – SmokePing Probes (oetiker.ch) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 *** 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 = 探针名称
(如果看得头大,不妨先跳过)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 *** Targets *** probe = FPing menu = Top title = Network Latency Grapher remark = Welcome tothis 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)
简单说明:
++ 这里填标识符,可以用大小写英文字母、数字、下划线和减号 menu = 菜单显示的内容 title = 页面顶部显示的内容 host = 要 ping 的目标,域名和 IP 都行 每次更改配置要重启容器生效 这里可以先按照下面的格式,随便填填,然后看网页上有什么变化,这样容易还快。
1 cd ~/myserve/smokeping && vim config/Targets
这是一个我自己使用的缩减示范版,可以先不改,走通流程,运行看看,再自定义:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 *** Targets *** probe = FPing menu = Top title = Network Latency Grapherfor AhFei remark = Welcome to my SmokePing website. \ Here you will learn all about the latencyof 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 ,有些失效了,没有更新计划,用不到。
关闭容器
重启容器
原文链接: https://blog.vfly2.com/2023/07/smokeping-installation-configuration/