官网:https://smartping.org/

SmartPing开源地址:https://github.com/smartping/smartping

官方文档及下载地址:https://docs.smartping.org/install

网络监控常用开源软件例如zabbix、Prometheus等。由于以上软件安装复杂、配置麻烦,对于新人小白、简单网络监测并不友好。如果项目上只需要对内部地址进行ping质量监测,推荐一个优秀的软件:smartping 安装包只有8M。

介绍

SmartPing是一个综合性网络质量(PING)检测工具,支持正/反向PING绘图、互PING拓扑绘图与报警、全国PING延迟地图与在线检测工具等功能。

功能

  • 正向PING,反向Ping绘图
  • 互PING间机器的状态拓扑,自定义延迟、丢包阈值报警(声音报警与邮件报警),报警时MTR检测
  • 全国PING延迟地图(各省份可分电信、联通、移动三条线路)
  • 检测工具,支持使用SmartPing各节点进行网络相关检测

设计思路

本系统的定位为轻量级工具,即使组多点成互Ping网络可以遵守无中心化原则,所有的数据均存储自身节点中,每个节点提供出方向的数据,从任意节点查询数据均会通过Ajax请求关联节点的API接口获取并组装全部数据。
  • 数据去中心化
  • 存储数据结构
  • 集中配置管理(云模式)

功能截图

正/反向PING SmartPing 一个开源高质量的网络质量监控工具 - 图5

PING拓扑 SmartPing 一个开源高质量的网络质量监控工具 - 图6

全国延迟 SmartPing 一个开源高质量的网络质量监控工具 - 图7

检测工具 SmartPing 一个开源高质量的网络质量监控工具 - 图8

系统配置

SmartPing 一个开源高质量的网络质量监控工具 - 图9

下载安装

二进制安装

选择相应OS的二进制包(最新版本v0.8.0) 解压并运行程序
  1. 解压压缩包。
  2. 使用命令(Windows使用CMD) cd 进入到刚刚创建的目录。
  3. 执行命令
  • Linux:<font style="color:rgb(34, 34, 34);">./control start</font>
  • Windows:双击 <font style="color:rgb(34, 34, 34);">control.cmd</font>

SmartPing默认WEB服务端口为8899,管理界面默认密码为:smartping,若需要修改请修改conf/config.json或conf/config-base.json

源码安装

基本依赖

  • Go 语言:版本 >= 1.6
安装GO语言(如果系统已经安装要求版本的 Go 语言,可以跳过

源码编译

克隆或直接下载ZIP的源码包
  1. git clone https://github.com/gy-games/smartping.git
  2. cd smartping
  • Linux:<font style="color:rgb(34, 34, 34);">./control build</font>
  • Windows:<font style="color:rgb(34, 34, 34);">control.cmd build</font>

运行程序

  • Linux:<font style="color:rgb(34, 34, 34);">./control start</font>
  • Windows:<font style="color:rgb(34, 34, 34);">control.cmd start</font>

SmartPing默认WEB服务端口为8899,管理界面默认密码为:smartping,若需要修改请修改conf/config.json或conf/config-base.json

脚本参数

smartping采用脚本调用方式运行,Linux使用 ./control , Windows使用 control.cmd

Linux

**<font style="color:rgb(34, 34, 34);">./control </font>**<font style="color:rgb(34, 34, 34);">build|run|start|stop|restart|status</font>

build:源码编译,最终构建成至 bin run:直接启动smartping start:以nohup(deamon)形式启动smartping stop:关闭smartping restart:执行 stop & start status:查看smartping的运行状态 version:查看当前smartping版本 pack:执行Build并进行二进制包制作

Windows

**<font style="color:rgb(34, 34, 34);">control.cmd </font>**<font style="color:rgb(34, 34, 34);">build|run|install|start|stop|restart|version</font>

build:源码编译,最终构建成至 bin run:直接启动smartping install:使用nssm将smartping安装为服务 start:启动smartping服务 stop:关闭smartping服务 restart:执行 stop & start version:显示当前smartping版本

配置说明

SmartPing从0.3.0版本开始,配置可以使用WEB界面修改。

配置修改节点

SmartPing 一个开源高质量的网络质量监控工具 - 图10

配置修改节点分为4个大部分
  1. 保存配置,对于2,3,4上的操作修改完后均为暂存,需要在此输入密码后保存才可生效,可以在此切换至云模式
  2. 基础配置,分为基础、Ping拓扑、邮件报警、检测工具、授权管理几个大功能
  3. 基础 1. 接口超时(秒):本节点访问其他节点的Ajax超时时间 2. 页面刷新(分钟):页面的定时刷新时间(暂时只用在了Ping拓扑上,设计是除配置外所有页面,有需要可以在源码上修改一下) 3. 数据存数(天):正向Ping、拓扑报警、全国延迟的存档天数
  4. Ping拓扑
  5. 报警声音:触发报警规则时的报警声音
  6. 连线粗细:Ping拓扑的连线粗细
  7. 形状大小:Ping拓扑的形状大小
  8. 报警邮件
  9. 邮件服务器:发送邮件的服务器
  10. 发件邮箱:发送邮件的邮箱地址
  11. 发件邮箱密码:发送邮件的邮箱密码
  12. 收件邮箱列表:收信邮箱,多个以;隔开
  13. 检测工具
  14. 限定频率(秒):工具的CD时间(以源IP唯一计算)
  15. 授权管理
  16. 用户IP列表:设置后仅允许设置的IP访问,多个以逗号隔开
  17. Ping节点测试网络
  18. 添加节点,添加后默认开启正向Ping与Ping拓扑
  19. 正向Ping配置,可以自定义选择开启哪些正向Ping
  20. Ping拓扑,可以自定义选择开启哪些Ping拓扑以及设置报警规则
  21. 全国延迟测试网络
  22. 添加各省份电信、联通、移动的目标测试IP

备注

  • 首次运行SmartPing时,SmartPing默认优先读取conf/config.json文件,若无此文件,则读取conf/config-base.json文件
  • 若需要修改密码,需要手工修改conf/config.json或conf/config-base.json文件中的password字段,并重启SmartPing

修改配置

  1. 修改密码:进入安装目录下的conf目录,以文本方式打开config.json文件,修改最下方“Password”属性,保存重启服务即可修改密码;
  2. 修改端口:进入安装目录下的conf目录,以文本方式打开config.json文件,修改最上方“Port”属性,保存重启服务即可;

配置备份

如果需要在其他电脑运行Smart Ping,且配置同步,只需要将当前conf文件夹下config.json文件复制一份,替换新安装包内同名文件即可。

API文档

SmartPing所有的数据均可以通过各点的程序通过HTTP方式获取(SmartPing Dashbord数据的展示同样调用以上接口获取),SmartPing的API接口均以打开<font style="color:rgb(34, 34, 34);">Access-Control-Allow-Origin:*</font>支持跨域。
名称 METHOD URI 介绍
当前节点配置信息 GET /api/config.json 获取当前节点的配置信息
PING目标机器数据 GET /api/ping.json 获取当前节点对外的PING数据
PING目标机器状态 GET /api/topology.json 获取当前节点PING外部的状态数据(用于拓扑)
PING目标机器报警数据 GET /api/alert.json 获取当前的报警数据
PING全国延迟 GET /api/mapping.json 获取当前机器全国延迟数据
PING工具 GET /api/tools.json 测试目标机器获取数据