Smokeping的主从模式部署
Smokeping
支持 Standalone
(单机)模式和 Master/Slave
(主从)模式。
之前老苏折腾过单机模式,这次应网友 Roxmie
的要求,研究了一下主从模式的部署
文章传送门: 网络性能监控工具Smokeping
因为有了前文铺垫,本文的设置文件仅提到需要修改的部分。老苏不是网络专家,如果文中任何错误,请不吝指出
安装
在群晖上以 Docker 方式安装。
不过这次用到的镜像 ivyavanmahajan/smokeping
有点老了,已经是 2
年之前的了,Tags
只有一个 latest
还有个 divyavanmahajan/smokeping-slave
,但实际上老苏没用这个镜像来做从服务,因为 divyavanmahajan/smokeping
已经包含了 Slave
模式
从描述看,镜像是基于 linuxserver/smokeping
改造的,所以理论上你也可以基于最新的版本重新编译试试,能不能成功我就不知道了。
镜像老归老,并不影响使用,接下来进入今天的正题
环境变量
主服务容器只用到了 linuxserver
镜像最常用的 3
个变量
可变 | 值 |
---|---|
TZ |
设为 Asia/Shanghai |
PUID |
设为 1000 |
PGID |
设为 1000 |
从服务容器除了上面 3
个外,还用到下面👇几个
可变 | 值 |
---|---|
NO_WEB |
设为 1 ,仅在没有 HTTP 服务器的情况下启动 Smokeping 。只收集数据,但不会显示数据。 |
SLAVE_SECRET |
从服务模式需要设置:共享密码 |
MASTER_URL |
从服务模式需要设置: 连接主服务器获取配置文件的 URL |
要避免每次容器启动升级
Smokeping
检测,可以加上-e NO_UPDATE=1
,这样会加快了启动速度;
更多的环境变量可以看官方文档:https://github.com/divyavanmahajan/smokeping#parameters
主服务容器安装
1 | # 新建文件夹 smokeping_ms 和 子目录 |
从服务容器安装
可以先装,也可以在主服务容器设置完成之后再安装
1 | # 运行从服务器 |
老苏的群晖主机 IP
为 192.168.0.197
,如果反代了,这里改域名
主服务容器设置
访问权限
首先要处理权限问题,否则你会在从服务器的日志中看到下面的错误
1 | WARNING: Opening secrets file /etc/smokeping/smokeping_secrets: Permission denied |
这需要我们进入到主服务容器中去修改权限
1 | # 以 root 身份进入主服务容器 |
原本的 root:root
会变成 abc:user
连接凭证
接下来需要处理从服务器连接主服务器时,要用到的凭证,否则你会在从服务器的日志中看到下面的错误
1 | WARNING: No secret found for slave slave1 |
查看 /etc/smokeping/smokeping_secrets
中的密码
1 | # 查看 /etc/smokeping/smokeping_secrets 中的密码 |
我们可以用原有的,也可以加一组账号密码,比如 slave1:12345678
1 | # 追加账号、密码 |
现在从服务容器日志应该变成下面👇这样了
1 | WARNING: I don't know the slave slave1 ignoring it |
Slaves 文件
在 config/Slaves
中,新增下面部分
location
加不加无所谓的
1 | +slave1 |
Target 文件
在 config/Target
中,新增下面部分
上海联通和上海移动的地址可能不对,一直没数据。应用的时候需要自己改改,这里只是个示意;
1 | slaves = slave1 slave2 |
Alerts 文件
还需要在 config/Alerts
中,新增 rttdetect
和 lossdetect
,其他的看提示吧
1 | +rttdetect |
重启主服务容器
改完上述几个设置文件之后,可能会需要重启主服务容器,以便让设置生效
这个时候,从服务容器日志中会显示主服务关闭了连接
1 | WARNING Master said 500 Server closed connection without sending any data back |
当主服务容器正常启动后,就应该可以正常收到数据了
1 | Sending to server: |
运行
在浏览器中输入 http://群晖IP:8580
就能看到 slave1
传来的数据
刚开始数据还比较少
第二天就不一样了
注意事项
Smokeping
反代存在截端口现象,例如老苏反代后通过 https://smokeping.laosu.ml:444
访问,但是会跳转到 https://smokeping.laosu.ml/smokeping/
,从而导致访问失败
如果你和老苏一样用 npm
反代,可以在 npm
的 Advance
中加入下面的代码
1 | location / { |
这段代码,你可以在老苏的博客搜索 截端口
找到,已经在多篇文章中使用了
参考文档
divyavanmahajan/smokeping: Smokeping extensions to Linuxserver Smokeping
地址:https://github.com/divyavanmahajan/smokepingdivyavanmahajan/smokeping - Docker Image | Docker Hub
地址:https://hub.docker.com/r/divyavanmahajan/smokepingProblems with slave config on ubuntu · Issue #46 · oetiker/SmokePing
地址:https://github.com/oetiker/SmokePing/issues/46SmokePing - smokeping_master_slave
地址:https://oss.oetiker.ch/smokeping/doc/smokeping_master_slave.en.html