SmokePing主从模式 ,从端不启动网页界面,可以同步主端的配置,在主端可以看到从端的测试结果。
下面第二个
from Home to vfly2
就是部署在家庭服务器上的从 smokeping 监测的数据
本文重在 SmokePing主从模式 的说明,在进行之前,请先根据 网络延迟监测工具 SmokePing 的安装与配置 – 技焉洲 (vfly2.com) 安装 LinuxServer 镜像的 smokeping。
基于 LinuxServer 镜像的缺陷:主端修改配置后,从端不能自动跟进,重启从端才能更新,可以用 crontab 定时重启。
适用系统:Debian 系发行版,包括 Ubuntu 和 Armbian,其他发行版按流程稍改命令一般也可。
I might have made some mistakes, please let me know if I’ve gotten anything wrong!
假设服务端访问地址为 http://smokeping.vfly2.com:8899 ,
slave 端主要有三个参数:
- 名称:
slave-1
- 密码:
SLAVE_SECRET=a_password
- 主端的网址:
MASTER_URL=http://smokeping.vfly2.com:8899/smokeping/smokeping.cgi
Master 启用 SmokePing主从模式
编辑 Slave 从端的配置文件:
cd ~/myserve/smokeping && vim config/Slaves
里面的内容为
*** Slaves ***
secrets=/etc/smokeping/smokeping_secrets
#+boomer
#display_name=boomer
#color=0000ff
#+slave2
#display_name=another
#color=00ff00
容易看出,被注释的就是 slave 的注册,第一行名称随意,下面行是个性化配置。
添加从端 Home 和 liu
*** Slaves ***
secrets=/etc/smokeping/smokeping_secrets
+home
display_name=Home
color=afeee1
+liu
display_name=liu
color=00ff00
location=beijing
添加通信密码
vim ~/myserve/smokeping/smokeping_secrets
home:a_password
liu:a_password
重启生效
docker compose restart
Master 的 Targets 配置文件格式
只需要加一行 slaves = home liu
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
slaves = home liu
# 设置全局的从端,如果在 + / ++ / +++ 下设置,那就是只对对应的生效
Slave 镜像与配置
全复制并执行,一键创建工作目录并开放端口
myserve="smokeping-slave"
sudo ufw allow 8899/tcp comment $myserve && sudo ufw reload
mkdir -p ~/myserve/$myserve && cd ~/myserve/$myserve
修改镜像中的启动脚本,配置镜像使用 slave 模式,无须额外改动
vim run
#!/usr/bin/with-contenv bash
if [ "x$MASTER_URL" == "x" ]; then
echo "Please define a master URL in \$MASTER_URL env variable. Detected value: $MASTER_URL"
fi
if [ "x$SHARED_SECRET" == "x" ]; then
echo "Please define a shared secret in \$SHARED_SECRET env variable. Detected value: $SHARED_SECRET"
fi
echo $SHARED_SECRET > /config/smokeping_secrets && \
chown abc:abc /config/smokeping_secrets && \
chmod 640 /config/smokeping_secrets
exec s6-setuidgid abc /usr/sbin/smokeping --config="/etc/smokeping/config" --master-url="$MASTER_URL" --shared-secret=/config/smokeping_secrets --cache-dir=/tmp --nodaemon
将编辑后的启动脚本插入镜像中,开启 slave 模式,无须额外改动
vim Dockerfile
FROM lscr.io/linuxserver/smokeping:latest
LABEL maintainer="Daniel Graziotin <daniel@ineed.coffee>"
ENV SHARED_SECRET= \
MASTER_URL=
COPY run /etc/services.d/smokeping/run
根据注释自定义,然后执行,一键创建 docker-compose.yml 文件
cat > docker-compose.yml << EOF
---
version: "2.1"
services:
smokeping-slave:
build:
context: .
dockerfile: Dockerfile
container_name: smokeping-slave
hostname: home # 从端的 hostname,一定要与主端中 smokeping_secrets 所设置的slave 名称一致
environment:
- PUID=1000 # 自定义,如果不了解可填 root,下同
- PGID=1000
- TZ=Asia/Shanghai
# 这里,填入实际密码,和主端的网址
- SHARED_SECRET=a_password
- MASTER_URL=http://smokeping.vfly2.com:8899/smokeping/smokeping.cgi
volumes:
- ./config:/config
- ./data:/data
ports:
- 8899:80
restart: unless-stopped
EOF
重新构造镜像
docker compose build
启动容器(这时访问主端,应该就能看到变化了)
docker compose up -d
关闭容器
docker compose down
查看日志
docker logs -f smokeping-slave
进入容器
docker exec -it smokeping-slave /bin/bash
参考:
- SmokePing 配置主从服务 (nodeseek.com)
- Make changes so Slave instances can be launched · Issue #115 · linuxserver/docker-smokeping (github.com)
原文链接: https://yanh.tech/2024/01/enable-smokeping-master-slave-mode-based-on-linuxserver-images/
版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech) 。
保持更新 ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ 清晰恒益的实用技能,欢迎使用 RSS 订阅,或在支持 ActivityPub 的平台关注 @vfly2tech@yanh.tech
接收新文章的推送,如果能留言互动就更好了。
可在 Telegram 群组 https://t.me/vfly2 交流依文章步骤遇到的问题。