网络监控常用开源软件例如zabbix、Prometheus等。由于以上软件安装复杂、配置麻烦,对于新人小白、简单网络监测并不友好。如果项目上只需要对内部地址进行ping质量监测,推荐一个优秀的软件:smartping 安装包只有8M。
zabbix
介绍
SmartPing是一个综合性网络质量(PING)检测工具,支持正/反向PING绘图、互PING拓扑绘图与报警、全国PING延迟地图与在线检测工具等功能。
功能
- 正向PING,反向Ping绘图
- 互PING间机器的状态拓扑,自定义延迟、丢包阈值报警(声音报警与邮件报警),报警时MTR检测
- 全国PING延迟地图(各省份可分电信、联通、移动三条线路)
- 检测工具,支持使用SmartPing各节点进行网络相关检测
设计思路
本系统的定位为轻量级工具,即使组多点成互Ping网络可以遵守无中心化原则,所有的数据均存储自身节点中,每个节点提供出方向的数据,从任意节点查询数据均会通过Ajax请求关联节点的API接口获取并组装全部数据。
- 数据去中心化
- 存储数据结构
- 集中配置管理(云模式)
功能截图
正/反向Ping
Ping拓扑及报警
延迟地图
检测工具
系统配置
下载安装
二进制安装
选择相应OS的二进制包(最新版本v0.8.0)
- Linux: Github 百度云(提取码:gbcg)
- Windows:Github 百度云(提取码:gbcg)
- All Release:Github 百度云(提取码:gbcg)
解压并运行程序
- 解压压缩包。
- 使用命令(Windows使用CMD) cd 进入到刚刚创建的目录。
- 执行命令
- Linux: ./control start
- Windows: 双击 control.cmd
- SmartPing默认WEB服务端口为8899,管理界面默认密码为:smartping,若需要修改请修改conf/config.json或conf/config-base.json
源码安装
基本依赖
- Go 语言:版本 >= 1.6
安装GO语言
如果您的系统已经安装要求版本的 Go 语言,可以跳过。
安装参考:https://studygolang.com/dl
源码编译
克隆或直接下载ZIP的源码包
- git clone https://github.com/gy-games/smartping.git
- cd smartping
- Linux: ./control build
- Windows: control.cmd build
运行程序
- Linux: ./control start
- Windows: control.cmd start
SmartPing默认WEB服务端口为8899,管理界面默认密码为:smartping,若需要修改请修改conf/config.json或conf/config-base.json
配置说明
SmartPing从0.3.0版本开始,配置可以使用WEB界面修改。
配置修改节点
配置修改节点分为4个大部分
- 1.保存配置,对于2,3,4上的操作修改完后均为暂存,需要在此输入密码后保存才可生效,可以在此切换至云模式
- 2.基础配置,分为基础、Ping拓扑、邮件报警、检测工具、授权管理几个大功能
- 基础
- 接口超时(秒):本节点访问其他节点的Ajax超时时间
- 页面刷新(分钟):页面的定时刷新时间(暂时只用在了Ping拓扑上,设计是除配置外所有页面,有需要可以在源码上修改一下)
- 数据存数(天):正向Ping、拓扑报警、全国延迟的存档天数
- Ping拓扑
- 报警声音:触发报警规则时的报警声音
- 连线粗细:Ping拓扑的连线粗细
- 形状大小:Ping拓扑的形状大小
- 报警邮件
- 邮件服务器:发送邮件的服务器
- 发件邮箱:发送邮件的邮箱地址
- 发件邮箱密码:发送邮件的邮箱密码
- 收件邮箱列表:收信邮箱,多个以;隔开
- 检测工具
- 限定频率(秒):工具的CD时间(以源IP唯一计算)
- 5.授权管理
- 用户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
脚本参数
smartping采用脚本调用方式运行,Linux使用 ./control , Windows使用 control.cmd
Linux
./control
build|run|start|stop|restart|status
build : 源码编译,最终构建成至 bin
run : 直接启动smartping
start : 以nohup(deamon)形式启动smartping
stop : 关闭smartping
restart : 执行 stop & start
status : 查看smartping的运行状态
version : 查看当前smartping版本
pack : 执行Build并进行二进制包制作
Windows
control.cmd
build|run|install|start|stop|restart|version
build : 源码编译,最终构建成至 bin
run : 直接启动smartping
install : 使用nssm将smartping安装为服务
start : 启动smartping服务
stop : 关闭smartping服务
restart : 执行 stop & start
version : 显示当前smartping版本
API文档
SmartPing所有的数据均可以通过各点的程序通过HTTP方式获取(SmartPing Dashbord数据的展示同样调用以上接口获取),SmartPing的API接口均以打开Access-Control-Allow-Origin:*支持跨域。
名称
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
测试目标机器获取数据
备注
一、修改配置
- 修改密码:
进入安装目录下的conf目录,以文本方式打开config.json文件,修改最下方“Password”属性,保存重启服务即可修改密码;
- 修改端口
进入安装目录下的conf目录,以文本方式打开config.json文件,修改最上方“Port”属性,保存重启服务即可;
二、配置备份
如果需要在其他电脑运行Smart Ping,且配置同步,只需要将当前conf文件夹下config.json文件复制一份,替换新安装包内同名文件即可
此开发团队官网: http://smartping.org/