Smokeping的主从模式部署

news2024/11/17 1:22:31

在这里插入图片描述

Smokeping 支持 Standalone(单机)模式和 Master/Slave(主从)模式。

之前老苏折腾过单机模式,这次应网友 Roxmie 的要求,研究了一下主从模式的部署

文章传送门: 网络性能监控工具Smokeping

因为有了前文铺垫,本文的设置文件仅提到需要修改的部分。老苏不是网络专家,如果文中任何错误,请不吝指出

安装

在群晖上以 Docker 方式安装。

不过这次用到的镜像 ivyavanmahajan/smokeping有点老了,已经是 2 年之前的了,Tags 只有一个 latest

还有个 divyavanmahajan/smokeping-slave ,但实际上老苏没用这个镜像来做从服务,因为 ivyavanmahajan/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

主服务容器安装

# 新建文件夹 smokeping_ms 和 子目录
mkdir -p /volume2/docker/smokeping_ms/{cache,config,data}

# 进入 smokeping_ms 目录
cd /volume2/docker/smokeping_ms
   
# 运行主服务器
docker run -d \
  --restart unless-stopped \
  --name=smokeping-master \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -p 8580:80 \
  -v $(pwd)/config:/config \
  -v $(pwd)/data:/data \
  -v $(pwd)/cache:/cache \
  divyavanmahajan/smokeping

从服务容器安装

可以先装,也可以在主服务容器设置完成之后再安装

# 运行从服务器
docker run -d \
  --restart unless-stopped \
  --name=smokeping-slave \
  -h slave1 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e NO_WEB=1 \
  -e SLAVE_SECRET=12345678 \
  -e MASTER_URL=http://192.168.0.197:8580/smokeping/smokeping.cgi \
  divyavanmahajan/smokeping

老苏的群晖主机 IP192.168.0.197,如果反代了,这里改域名

主服务容器设置

访问权限

首先要处理权限问题,否则你会在从服务器的日志中看到下面的错误

WARNING: Opening secrets file /etc/smokeping/smokeping_secrets: Permission denied

Sent data to Server. Server said WARNING: Opening secrets file /etc/smokeping/smokeping_secrets: Permission denied

这需要我们进入到主服务容器中去修改权限

# 以 root 身份进入主服务容器
docker exec -it --user root smokeping-master /bin/bash

# 修改权限
chown 1000:1000 /etc/smokeping/smokeping_secrets

原本的 root:root 会变成 abc:user

连接凭证

接下来需要处理从服务器连接主服务器时,要用到的凭证,否则你会在从服务器的日志中看到下面的错误

WARNING: No secret found for slave slave1

Sent data to Server. Server said WARNING: No secret found for slave slave1

ERROR: we did not get config from the master. Maybe we are not configured as a slave for any of the targets on the master ?

查看 /etc/smokeping/smokeping_secrets 中的密码

# 查看 /etc/smokeping/smokeping_secrets 中的密码
cat /etc/smokeping/smokeping_secrets

我们可以用原有的,也可以加一组账号密码,比如 slave1:12345678

# 追加账号、密码
echo 'slave1:12345678'>>/etc/smokeping/smokeping_secrets

在这里插入图片描述

现在从服务容器日志应该变成下面👇这样了

WARNING: I don't know the slave slave1 ignoring it

Sent data to Server. Server said WARNING: I don't know the slave slave1 ignoring it

ERROR: we did not get config from the master. Maybe we are not configured as a slave for any of the targets on the master ?

Slaves 文件

config/Slaves 中,新增下面部分

location 加不加无所谓的

+slave1
display_name=slave1
color=00ff00
location=Shanghai

Target 文件

config/Target 中,新增下面部分

上海联通和上海移动的地址可能不对,一直没数据。应用的时候需要自己改改,这里只是个示意;

slaves = slave1 slave2

+dest1
slaves = slave1
menu = slave1
title = slave1

++ sh-dianxing
menu = 上海电信
title = 上海电信
host = 116.228.111.118
alerts = rttdetect,lossdetect

++ sh-liantong
menu = 上海联通
title = 上海联通
host = 210.22.84.3
alerts = rttdetect,lossdetect

++ sh-yidong
menu = 上海移动
title = 上海移动
host = 117.131.19.23
alerts = rttdetect,lossdetect

Alerts 文件

还需要在 config/Alerts 中,新增 rttdetectlossdetect,其他的看提示吧

+rttdetect
type = rtt
pattern = <20,<20,<20,<20,<20,>20,>20,>20
comment = 连续3次延时20以上

+lossdetect
type = loss
pattern = ==0%,==0%,==0%,==0%,==0%,>0%,>0%,>0%
comment = 突然有丢包

重启主服务容器

改完上述几个设置文件之后,可能会需要重启主服务容器,以便让设置生效

这个时候,从服务容器日志中会显示主服务关闭了连接

WARNING Master said 500 Server closed connection without sending any data back

当主服务容器正常启动后,就应该可以正常收到数据了

Sending to server:

/dest1/sh-yidong	1676036574	U:20:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U
/dest1/sh-dianxing	1676036574	U:0:3.2800000000e-03:2.1200000000e-03:2.6800000000e-03:3.0500000000e-03:3.0600000000e-03:3.1100000000e-03:3.1500000000e-03:3.1900000000e-03:3.2000000000e-03:3.2600000000e-03:3.2600000000e-03:3.2800000000e-03:3.3600000000e-03:3.4300000000e-03:3.4900000000e-03:3.5000000000e-03:3.5800000000e-03:3.6000000000e-03:3.6300000000e-03:3.6600000000e-03:4.0300000000e-03
/dest1/sh-liantong	1676036574	U:20:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U:U

Sent data to Server. Server said OK

运行

在浏览器中输入 http://群晖IP:8580 就能看到 slave1 传来的数据

刚开始数据还比较少

在这里插入图片描述

第二天就不一样了

在这里插入图片描述

注意事项

Smokeping 反代存在截端口现象,例如老苏反代后通过 https://smokeping.laosu.ml:444 访问,但是会跳转到 https://smokeping.laosu.ml/smokeping/ ,从而导致访问失败

如果你和老苏一样用 npm 反代,可以在 npmAdvance 中加入下面的代码

   location / {  
       proxy_set_header Host $host:444;  
       proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;  
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Protocol $scheme;
       proxy_pass  http://192.168.0.197:8580;  
       proxy_redirect http:// https://;  
   }

这段代码,你可以在老苏的博客搜索 截端口 找到,已经在多篇文章中使用了

参考文档

divyavanmahajan/smokeping: Smokeping extensions to Linuxserver Smokeping
地址:https://github.com/divyavanmahajan/smokeping

divyavanmahajan/smokeping - Docker Image | Docker Hub
地址:https://hub.docker.com/r/divyavanmahajan/smokeping

Problems with slave config on ubuntu · Issue #46 · oetiker/SmokePing
地址:https://github.com/oetiker/SmokePing/issues/46

SmokePing - smokeping_master_slave
地址:https://oss.oetiker.ch/smokeping/doc/smokeping_master_slave.en.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/354761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go基础-环境安装

文章目录1 Go?Golang?2 下载Go3 windows安装4 测试是否成功1 Go?Golang? Go也称为Golang&#xff0c;是Google开发的一个开源的编译型的静态语言。 Golang的主要关注点是高可用、高并发和高扩展性&#xff0c;Go语言定位是系统级编程语言&#xff0c;对web程序具有很好的支…

SAP数据导入工具(LSMW) 超级详细教程(批量导入内部订单)

目录 第一步&#xff1a;记录批导步骤编辑数据源对应字段 第二步&#xff1a;维护数据源 第三步&#xff1a;维护数据源对应字段&#xff08;重要&#xff09; 第四步&#xff1a;维护数据源关系。 第五步&#xff1a;维护数据源与导入字段的对应关系。 第六步&#xff0…

K_A12_006 基于STM32等单片机驱动BH1750模块 串口与OLED0.96双显示

K_A12_006 基于STM32等单片机驱动BH1750模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCBH1750模块1.2、STM32F103C8T6BH1750模块五、基础知识学习与相关资料下载六、视频效果展示与程…

《蓝桥杯每日一题》递归·AcWing 1497. 树的遍历

1.题目描述一个二叉树&#xff0c;树中每个节点的权值互不相同。现在给出它的后序遍历和中序遍历&#xff0c;请你输出它的层序遍历。输入格式第一行包含整数 N&#xff0c;表示二叉树的节点数。第二行包含 N个整数&#xff0c;表示二叉树的后序遍历。第三行包含 N 个整数&…

设计模式之迭代器模式与命令模式详解和应用

目录1 迭代器模式1.1 目标1.2 内容定位1.3 迭代器模式1.4 迭代器模式的应用场景1.5 手写字定义的送代器1.6 迭代器模式在源码中的体现1.7 迭代器模式的优缺点2 命令模式2.1 定义2.2 命令模式的应用场景2.3 命令模式在业务场景中的应用2.4 命令模式在源码中的体现2.5 命令模式的…

UVa 211 The Domino Effect 多米诺效应 暴力搜索

题目链接&#xff1a;UVa 211 The Domino Effect 题目描述&#xff1a; 一张多米诺骨牌拥有两个数值&#xff0c;一共有二十八张不同的多米诺骨牌&#xff0c;这二十八张多米诺骨牌的点数如下图所示&#xff1a; 上图的BoneBoneBone代表编号&#xff0c;而PipsPipsPips代表两个…

Springboot扩展点系列之终结篇:Bean的生命周期

前言关于Springboot扩展点系列已经输出了13篇文章&#xff0c;分别梳理出了各个扩展点的功能特性、实现方式和工作原理&#xff0c;为什么要花这么多时间来梳理这些内容&#xff1f;根本原因就是这篇文章&#xff1a;Spring bean的生命周期。你了解Spring bean生命周期&#xf…

前端最全面试题整理

前端基础 一、 HTTP/HTML/浏览器 1、说一下 http 和 https https 的 SSL 加密是在传输层实现的。 (1) http 和 https 的基本概念 http: 超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准&#xff08;T…

操作SSH无密登录配置

例如小编有三台服务器需要相互访问&#xff0c;就需要配置三台&#xff0c;这三台分别是hadoop102,hadoop103 , hadoop1041.打开三个服务器&#xff0c;分别生成hadoop102&#xff0c;hadoop103 , hadoop104的公钥和私钥输入命令&#xff0c;然后一直回车&#xff0c;这时候什么…

狂神聊Redis复习笔记二

目录事务监控&#xff01; Watch &#xff08;面试常问&#xff01;&#xff09;悲观锁&#xff1a;乐观锁&#xff1a;Redis测监视测试Redis.conf详解Redis持久化RDB&#xff08;Redis DataBase&#xff09;AOF&#xff08;Append Only File&#xff09;Redis发布订阅Redis主从…

Docker资源隔离(namespace,cgroups)

一、概述 Docker容器的本质是宿主机上的一个进程。Docker通过namespace实现了资源隔离&#xff0c;通过cgroups实现了资源限制&#xff0c;通过写时复制机制&#xff08;copy-on-write&#xff09;实现了高效的文件操作。 二、Linux内核的namespace机制 namespace 机制提供一种…

jfr引起的一次jvm异常记录

业务生产启动时&#xff0c;20个节点有1-2个节点因为jvm问题出现启动失败&#xff0c;k8s自动重启后正常。在测试环境2个节点下偶现 排查思路&#xff1a; 先拿到hs_err_pid的jvm错误文件找到当前线程和内部错误信息 hs_err_pid 文件分析 当前线程&#xff1a;lettuce的线程…

使用Robot Framework实现多平台自动化测试

目录 前言 1、设计目标 2、架构设计 3、平台实现 4、平台的创新点 5、平台的实施效果 6、总结 重点&#xff1a;配套学习资料和视频教学 前言 基于Robot Framework、Jenkins、Appium、Selenium、Requests、AutoIt等开源框架和技术&#xff0c;成功打造了通用自动化测试…

各数据库数据类型的介绍和匹配

各数据库数据类型的介绍和匹配1. Oracle的数据类型2. Mysql的数据类型3. Sql server的数据类型4. 类型匹配5. Awakening1. Oracle的数据类型 数据类型介绍 VARCHAR2 :可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749&#xff1b; NCHAR :根据字符集而定的固定长度字…

微服务架构的演变

文章目录1.1 系统架构的演变过程1.1.1 单体应用架构1.1.2 垂直应用架构1.1.3 分布式架构1.1.4 SOA架构1.1.5 微服务架构1.2 微服务架构设计原则1.2.1 AKF拆分原则1.2.1.1 X轴扩展&#xff08;水平复制&#xff09;1.2.1.2 Y轴扩展&#xff08;模块拆分&#xff09;1.2.1.3 Z轴扩…

【SSM】Spring对IoC的实现方式DI详讲

控制反转的一种实现方式——依赖注入一、IoC 控制反转&#xff08;Overview&#xff09;依赖注入&#xff08;DI&#xff09;- Overview利用 IoC&#xff08;控制反转&#xff09;这种思想有什么好处呢&#xff1f;二、依赖注入的方式setter 方式&#xff08;xml配置中的proper…

Java JSR规范列表

Java JSR规范列表目录概述需求&#xff1a;设计思路实现思路分析1.JSR2.JSR方法3.web service4.Webservice:5.数据处理器拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,m…

JavaWeb-连接数据库实现用户登录、注册、修改密码(全代码)

上一篇博客中我通过使用HttpServlet完成一个假登录&#xff0c;这篇博客我将通过JDBC连接数据库&#xff0c;使其实现简单的用户登录、注册以及更改密码一、MySQL:MySQL部分代码&#xff1a;-- ---------------------------- -- Table structure for users -- ----------------…

WSL(ubuntu2204)使用xfce4桌面打不开语言支持及配置WSL服务自启

语言支持报错 在图形桌面或命令行打开语言支持报错&#xff1a;dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory itboonelocalhost:/$ sudo /usr/bin/gnome-…

【SCL】1200案例:天塔之光数码管显示液体混合水塔水位

使用scl编写天塔之光&数码管显示&液体混合&水塔水位 文章目录 目录 文章目录 前言 一、案例1&#xff1a;天塔之光 1.控制要求 2.编写程序 3.效果 二、案例2&#xff1a;液体混合 1.控制要求 2.编写程序 三、案例3&#xff1a;数码管显示 1.控制要求 2.编写程序 3…