网络性能监控工具Smokeping

article/2025/9/22 10:17:43

什么是 Smokeping ?

SmokePing 是一款监控网络状态和稳定性的开源软件(它是 RRDTool 的作者开发的),通过它可以监控如延时,丢包率,是否 BGP 多线等网络状况;smokeping 会向目标设备和系统发送各种类型的测试数据包,测量、记录,并通过图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况;

可以用于监控群晖主机的网络状态,也可以用于监控多台 vps 的运行状态,支持通过邮件报警。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 smokeping ,选择第一个 linuxserver/smokeping,版本选择 latest

docker 文件夹中,创建一个新文件夹,并将其命名为 smokeping,并在 smokeping 中建两个子目录,分别命名为 configdata

文件夹装载路径备注
/docker/smokeping/data/data数据库和应用数据目录
/docker/smokeping/config/config配置文件目录

端口

端口不能冲突

本地端口容器端口类型
858080TCP

环境

可变
TZ设置为 Asia/Shanghai
PGID<gid> 设为 1000
PUID<uid> 设为 1000

运行

在浏览器中输入 http://群晖IP:8580,就能看到主界面了

配置文件

配置文件在 /docker/smokeping/config 目录中,知道了用途可以方便后面的修改

文件用途
Alerts报警设置
Database采样频率设置
General常规设置
httpd.confApache Web 服务器设置
pathnames路径设置
Presentation模板文件
Probes探针设置
Slaves主从模式时,从机设置
ssmtp.conf邮件服务器设置
Targets监控目标设置

Database

打开 smokeping/config/Database 文件,全部采用了默认值,也就是 300 秒(5 分钟)ping 20 次

Probes

编辑 smokeping/config/Probes 文件,将 dns 中的 google.com 改为了 baidu.com,其他都是默认的

邮件报警

第一步、编辑 ssmtp.conf

配置生效需要重启容器

除了密码都在下面👇

Debug=YES
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.root=wbsu2003@88.com# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.commailhub=smtp.88.com:465
AuthUser=wbsu2003@88.com
AuthPass=88邮箱设置的专用密码
UseSTARTTLS=NOUseTLS=YES# Where will the mail seem to come from?
rewriteDomain=88.com# The full hostname
hostname=linuxserver-smokeping1# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

老苏用的是 88 邮箱,相关参数可以在 设置 中找到

设置完成后,可以通过 『终端机』 进入容器内进行 Email 发送调试,命令行下输入 ssmtp -v wbsu2003@hotmail.com ,再依次输入:

To: wbsu2003@hotmail.com
From: wbsu2003@88.com
Subject: alert <回车2次>test123 <ctrl+D>

去收件箱查看邮件

第二步、编辑 Alerts

修改红框部分

  • to:接收报警的邮箱,也可以是自定义脚本;
  • from:发送报警信息的邮箱,也就是上一步在 ssmtp.conf 中设置的邮箱;

下面是报警触发的条件

设的比较低是想更容易触发报警,实际应用延时可以设在 200ms

*** Alerts ***
to = wbsu2003@hotmail.com
from = wbsu2003@88.com+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 = 突然有丢包

Targets

Internet Sites 基本上是我们正常无法访问的站点,所以需要进行修改,不然会没有数据

编辑 smokeping/config/Targets 文件

编辑之前请先做好备份

格式一目了然,采用了是分层结构,用+表示,例如第一层“+”,第二层“++”一次类推可以增加也可以修改

下面👇这段来自 https://wzfou.com/smokeping/,但根据我们前面设置的 ProbesAlerts进行了微调

+ Other
menu = 三大网络监控
title = 监控统计
probe = FPing++ dianxin
menu = 电信网络监控
title = 电信网络监控列表
host = /Other/dianxin/dianxin-bj /Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-tj /Other/dianxin/dianxin-sc /Other/dianxin/dianxin-sh /Other/dianxin/dianxin-gz+++ dianxin-bj
menu = 北京电信
title = 北京电信
host = 202.96.199.133
alerts = rttdetect,lossdetect+++ dianxin-hlj
menu = 黑龙江电信
title = 黑龙江电信
host = 219.147.198.242
alerts = rttdetect,lossdetect+++ dianxin-tj
menu = 天津电信
title = 天津电信
host = 219.150.32.132
alerts = rttdetect,lossdetect+++ dianxin-sc
menu = 四川电信
title = 四川电信
host = 61.139.2.69
alerts = rttdetect,lossdetect+++ dianxin-sh
menu = 上海电信
title = 上海电信
host = 116.228.111.118
alerts = rttdetect,lossdetect+++ dianxin-gz
menu = 广东电信
title = 广东电信
host = 113.111.211.22
alerts = rttdetect,lossdetect++ liantong
menu = 联通网络监控
title = 联通网络监控列表
host = /Other/liantong/liantong-bj /Other/liantong/liantong-hlj /Other/liantong/liantong-tj /Other/liantong/liantong-sc /Other/liantong/liantong-sh /Other/liantong/liantong-gz+++ liantong-bj
menu = 北京联通
title = 北京联通
host = 61.135.169.121
alerts = rttdetect,lossdetect+++ liantong-hlj
menu = 黑龙江联通
title = 黑龙江联通
host = 202.97.224.69
alerts = rttdetect,lossdetect+++ liantong-tj
menu = 天津联通
title = 天津联通
host = 202.99.96.68
alerts = rttdetect,lossdetect+++ liantong-sc
menu = 四川联通
title = 四川联通
host = 119.6.6.6
alerts = rttdetect,lossdetect+++ liantong-sh
menu = 上海联通
title = 上海联通
host = 210.22.84.3
alerts = rttdetect,lossdetect+++ liantong-gz
menu = 广东联通
title = 广东联通
host = 221.5.88.88
alerts = rttdetect,lossdetect++ yidong
menu = 移动网络监控
title = 移动网络监控列表
host = /Other/yidong/yidong-bj /Other/yidong/yidong-hlj /Other/yidong/yidong-tj /Other/yidong/yidong-sc /Other/yidong/yidong-sh /Other/yidong/yidong-gz +++ yidong-bj
menu = 北京移动
title = 北京移动
host = 221.130.33.52
alerts = rttdetect,lossdetect+++ yidong-hlj
menu = 黑龙江移动
title = 黑龙江移动
host = 211.137.241.35
alerts = rttdetect,lossdetect+++ yidong-tj
menu = 天津移动
title = 天津移动
host = 211.137.160.5
alerts = rttdetect,lossdetect+++ yidong-sc
menu = 四川移动
title = 四川移动
host = 218.201.4.3
alerts = rttdetect,lossdetect+++ yidong-sh
menu = 上海移动
title = 上海移动
host = 117.131.19.23
alerts = rttdetect,lossdetect+++ yidong-gz
menu = 广东移动
title = 广东移动
host = 211.136.192.6
alerts = rttdetect,lossdetect

因为有中文,要使用 utf-8 格式

配置生效需要重启容器

如果是用默认的 GB18030 编码保存,中文会乱码

而正常显示应该是这样的

随着时间的推移,逐步会产生数据

当触发了设定的延迟( rttdetect )或者丢包( lossdetect )条件时,会收到邮件提醒

而如果邮件设置有问题,会在 config 目录中生成 dead.letter 文件,用于记录触发过的报警

下载之后打开文件内容是下面👇这样的

参考文档

oetiker/SmokePing: The Active Monitoring System
地址:https://github.com/oetiker/SmokePing

SmokePing - About SmokePing
地址:https://oss.oetiker.ch/smokeping/

How to install SmokePing – sleeplessbeastie’s notes
地址:https://sleeplessbeastie.eu/2020/06/19/how-to-install-smokeping/

Smokeping安装与配置-免费开源网络性能监控工具可视化主/从部署 - 挖站否-挖掘建站的乐趣
地址:https://wzfou.com/smokeping/

ssmtp-命令行发送邮件 | Hom
地址:https://gohom.win/2016/10/07/ssmtp/


http://chatgpt.dhexx.cn/article/0RH5va2O.shtml

相关文章

网络监控smokeping搭建配置(一)

网络监控smokeping搭建配置(一) 网络监控smokeping邮件告警(二) 注&#xff1a;本次smokeping搭建采用centos7编译安装 一、安装步骤 1、添加yum镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo2、安装Apache yum -y ins…

尚硅谷Java学习笔记Lecture1

/* 利用cmd窗口编译运行程序 1.编译&#xff1a;javac.exe 格式&#xff1a; javac 源文件名.java运行&#xff1a;java.exe 格式&#xff1a; java 类名 2.可以有多个类&#xff0c;但只能有一个类声明为public类型&#xff0c;声明为public类型的类的类名要和文件名相同 3…

Java学习笔记2——java的安装和配置

Java的安装&#xff1a; 下载地址&#xff1a;Java Downloads | Oracle安装时注意安装路径不能有中文或特殊符号等 bin目录下为java开发工具&#xff0c;jre为运行环境 Java的配置——配置环境变量path 1、为什么需要配置环境变量&#xff1f; 当输入指令后&#xff0c;W…

JAVA学习笔记- - - day 2

&#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望能和大家一起进步成长&#x1f495; 目录 &#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望…

JAVA学习笔记- - - day 1

&#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希望能和大家一起进步成长&#x1f495; 目录 &#x1f495;前言&#xff1a;作者是一名正在学习JAVA的初学者&#xff0c;每天分享自己的学习笔记&#xff0c;希…

Java学习笔记11

Object类是所有类、数组、枚举类的父类&#xff0c;是类层次结构的根类。每个类都使用Object作为超类。所有对象&#xff08;包括 数组&#xff09;都实现这个类的方法。 Object类实现了以下方法&#xff1a; 我们来看看在源码中registerNatives()方法&#xff1a; private st…

java 学习笔记之多参数传递

第一次写博客记录学习java遇到的问题&#xff0c;学习java学到方法的时候&#xff0c;在想见过c语言有类似多个参数传递的写法&#xff0c;java也应该有类似的写法&#xff0c;通过学习掌握的这种写法&#xff0c;如下 public class Test {public static void print(String ..…

韩顺平 零基础30天学会Java 学习笔记

学习记录 第一章 第二章 方法源码可以在jdk文件里面的src文件里面看。 注释&#xff1a; 1、多行注释里面不允许再加多行注释 2、javadoc文档注释 (/** * */) 3、javadoc -d 生成文档 4、类与方法要用javadoc文档注释 JDK,JRE,JVM关系 1、JDK JRE Java开发工具 2、JRE J…

java中预编译是啥意思_JAVA学习笔记预编译

JAVA学习笔记预编译 (2011-07-30 02:36:17) 标签&#xff1a; 杂谈 第顺次运行jsp时jsp将被改换成servlet(第顺次工夫较长&#xff0c;而尔后就会快许多) 搭配好的利用过程能够穿越设置jsp版面的URI照射&#xff0c;尔后只安装编译后的java类文件来告终安装(能够只将servlet类文…

Java学习笔记(一)

目录 一&#xff1a;java语言的发展史 二&#xff1a;java语言跨平台原理 三&#xff1a;JRE与JDK 四&#xff1a;JDK的下载和安装 五&#xff1a;常用DOS命令 六&#xff1a;path环境的配置 七&#xff1a;基础语法 一&#xff1a;java语言的发展史 1.1 java语言 …

Java学习笔记 --- IDEA

一、IDEA介绍 1、IDEA全称IntelliJ IDEA 2、在业界被公认为最好的Java开发工具 3、IDEA是JetBrains公司的产品&#xff0c;总部位于捷克的首都布拉格 4、除了支持Java开发&#xff0c;还支持HTML、CSS、PHP、MySQL、Python等 二、IDEA常用快捷键 1、删除当前行&#xff0…

Java 学习笔记(手写版)

Java 学习笔记(手写版) 文章目录 Java 学习笔记(手写版)变量控制流程包机制 & 用户交互 Scanner方法&#xff08;函数&#xff09; & 驼峰命名法递归 & 数组OOP & 构造器封装继承 &#xff08;super & this&#xff09;方法重写 静态方法 & 非静态方法…

Java学习笔记一

Java学习笔记一 1、Java语言的特点2、Java程序开发过程3、Java虚拟机JVM 学习方式&#xff1a; 书籍&#xff1a;《Java基础教程》 吴仁群 清华大学出版社 第1章&#xff1a;Java语言概述 1、Java语言的特点 一种面向对象且与平台无关的多线程动态语言 2、Java程序开发过程 文…

Java基础笔记(初学者适用)

目录 一、Java主函数解析 二、Java学习注意事项 三、JDK和JRE的区别 1、jdk--开发环境&#xff08;核心&#xff09; 2、jre--运行环境 3、JVM——转换环境 四、常见转义字符 五、变量 1.变量介绍 2.变量细节 3.作用域 4.数据类型 &#xff08;1&#xff09;Java数…

java学习笔记(详细)

java学习笔记 文章目录 java学习笔记1.基本的输入输出2.基本数据类型3.复合数据类型4.程序流程语句5.数组6.字符串7.面向对象* 类的基本知识* 封装性* 继承性* 多态性 1.基本的输入输出 java是纯面向对象的语言&#xff0c;连主函数都写在一个类中&#xff0c;java中没有指针ja…

Java学习笔记(完结)

java 快捷键 修改idea的快捷键的方法&#xff1a;点击file》setting》keymay&#xff0c;去里面搜索要改的东西&#xff0c;然后把原来的快捷键去除&#xff0c;键盘输入新的你要的快捷键&#xff0c;就可以啦&#xff1b;Ctrl d 删除本行&#xff1b;Ctrl alt 向下箭头 复…

Java基础知识笔记整理(零基础学Java)

文章目录 前言java语言特性java的编译与运行JDK、JRE、JVM字符编码数据类型数据类型取值范围数据类型默认转换 标识符命名方法数组一维数组二维数组数组排序算法数组查找算法数组工具类&#xff08;Arrays&#xff09; 逻辑运算符输入操作Java中的命名规则有符号数据表示法 面向…

图解LVS的工作原理

LVS详解 LVS简介LVS特点&#xff1a;LVS常见术语 LVS工作原理NAT模式DR模式内核参数详解arp_ignorearp_announce TUN工作模式full-nat模式 LVS调度算法介绍ipvsadm使用指南NAT和DR模式的实现NAT模式的实现DR模式的实现调度器配置WEB后端服务器配置实验测试 参考文献 LVS简介 I…

LVS集群

目录 一、集群和分布式 1.集群的含义 2.系统性能扩展方式 &#xff08;1&#xff09;Scale UP &#xff08;2&#xff09;Scale Out 3.集群的分类 &#xff08;1&#xff09;LB&#xff1a;&#xff08; Load Balancing&#xff09;负载均衡群集 &#xff08;2&#…