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 
PING拓扑 
全国延迟 
检测工具 
系统配置
下载安装
二进制安装
选择相应OS的二进制包(最新版本v0.8.0) 解压并运行程序- 解压压缩包。
- 使用命令(Windows使用CMD) cd 进入到刚刚创建的目录。
- 执行命令
- 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
源码编译
克隆或直接下载ZIP的源码包
git clone https://github.com/gy-games/smartping.git
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.cmdLinux
**<font style="color:rgb(34, 34, 34);">./control </font>**<font style="color:rgb(34, 34, 34);">build|run|start|stop|restart|status</font>
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>
配置说明
SmartPing从0.3.0版本开始,配置可以使用WEB界面修改。配置修改节点
- 保存配置,对于2,3,4上的操作修改完后均为暂存,需要在此输入密码后保存才可生效,可以在此切换至云模式
- 基础配置,分为基础、Ping拓扑、邮件报警、检测工具、授权管理几个大功能
- 基础 1. 接口超时(秒):本节点访问其他节点的Ajax超时时间 2. 页面刷新(分钟):页面的定时刷新时间(暂时只用在了Ping拓扑上,设计是除配置外所有页面,有需要可以在源码上修改一下) 3. 数据存数(天):正向Ping、拓扑报警、全国延迟的存档天数
- Ping拓扑
- 报警声音:触发报警规则时的报警声音
- 连线粗细:Ping拓扑的连线粗细
- 形状大小:Ping拓扑的形状大小
- 报警邮件
- 邮件服务器:发送邮件的服务器
- 发件邮箱:发送邮件的邮箱地址
- 发件邮箱密码:发送邮件的邮箱密码
- 收件邮箱列表:收信邮箱,多个以;隔开
- 检测工具
- 限定频率(秒):工具的CD时间(以源IP唯一计算)
- 授权管理
- 用户IP列表:设置后仅允许设置的IP访问,多个以逗号隔开
- Ping节点测试网络
- 添加节点,添加后默认开启正向Ping与Ping拓扑
- 正向Ping配置,可以自定义选择开启哪些正向Ping
- Ping拓扑,可以自定义选择开启哪些Ping拓扑以及设置报警规则
- 全国延迟测试网络
- 添加各省份电信、联通、移动的目标测试IP
备注
- 首次运行SmartPing时,SmartPing默认优先读取conf/config.json文件,若无此文件,则读取conf/config-base.json文件
- 若需要修改密码,需要手工修改conf/config.json或conf/config-base.json文件中的password字段,并重启SmartPing
修改配置
- 修改密码:进入安装目录下的conf目录,以文本方式打开config.json文件,修改最下方“Password”属性,保存重启服务即可修改密码;
- 修改端口:进入安装目录下的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 | 测试目标机器获取数据 |