一个基于NodeJS的服务检测工具 可以添加配置文件来展示服务状态和通过WebHook或邮件来提醒
git clone https://github.com/Srar/ServiceStatus.git
cd ServiceStatus
npm install && npm run build && npm run start
当控制台输出
Listening port: 3000
时说明服务已经成功启动 访问http://ip:3000即可访问
build/targets文件夹内添加json文件, 添加并编辑完毕后重启服务即可.
Icon: 网页上标识的图标 请访问 http://fontawesome.io/icons/ 查询
Name: 网页上标识出的监控名
Service: 使用那个服务监控
Target: 任意Object由Service加载 一般为传递给Service的配置
NormalMessage(可选): 当服务正常时的输出 {} 为Service输出变量 请参照Service源码
WarningMessage(可选): 当服务不稳定时的输出 {} 为Service输出变量 请参照Service源码
ErrorMessage(可选): 当服务错误时的输出 {} 为Service输出变量 请参照Service源码
WarningLimit: 监控项超过WarningLimit时触发Warning
ErrorLimit: 监控项超过WarningLimit时触发Warning
CheckTimer: 监控间隔 单位秒
OtherSettings(可选): 服务插件调用的配置信息
{
"Icon": "paper-plane",
"Name": "Shadowsocks",
"Service": "HttpProxy",
"Target": {
"host": "192.168.0.250",
"port": 9257
},
"NormalMessage": "{time}ms",
"WarningMessage": "",
"ErrorMessage": "",
"WarningLimit": 5,
"ErrorLimit": 10,
"CheckTimer": 1,
"OtherSettings": {
}
}
- Ping4
输出变量: {time} {error}
"Target": {
"host": "192.168.0.210"
},
- HttpProxy
输出变量: {time} {error}
"Target": {
"host": "192.168.0.250",
"port": 9257
},
- TcpConnect
输出变量: {time} {error}
"Target": {
"host": "192.168.0.210",
"port": 3306
},
- HttpGet
输出变量: {time} {error}
"Target": {
"url": "https://github.com"
},
在服务配置文件OtherSettings
中加入
"WebHook": {
"method": "GET",
"url": "http://192.168.0.113:3001/webhook",
"data": {
"t1": "test01",
"t2": "test02"
}
}
- method:GET POST.
- url: WebHook调用的URL地址.
- data:当使用POST时传输的POST内容.
将email.config.default.json更名为email.config.json
ReportEmail 需要发送服务异常的邮箱
EmailHost SMTP服务器
EmailAccount SMTP帐号
EmailPassword SMTP密码
在需要异常报告服务target中OtherSettings中加入
"ReportEmail": false
邮件服务使用我本人架设的 HTTPPostman 您可以clone源码自行架设
- 实现IService接口
- _Services loadServices方法种加入您的服务
- 服务名为服务的类名
- 项目使用 Flow 类型检测