- 轻量级服务器状态播报、服务器状态获取探针、服务器自动监控告警工具。
- 一切信息完全由启动参数控制,如需重新更改模式,必须关闭进程之后重新使用新的参数启动。
- 编译部署后运行
如果没有对应平台的包的话,可以直接自己用代码编译一下二进制可执行程序,本程序不依赖于CGO库,直接build之后运行即可 - 直接运行二进制可执行程序或创建系统守护进程运行程序
如果需要创建Linux系统守护进程的话,可以先进入/etc/systemd/system文件夹下,新建一个echoes.service文件,并写入下面内容: [Unit] Description=Echoes service [Service] Type=forking ExecStart=/bin/bash -c "{你的回声程序所在路径} [启动参数] &" KillMode=process Restart=on-failure RestartSec=3s [Install] WantedBy=multi-user.target 之后执行systemctl start echoes即可
-
启动参数
参数名称 含义 -help 是否帮助模式(0/1) -server_name 服务器名称 -daily_time 每天自动通知的时间(24小时制) -interval_time 每次自检的时间间隔(秒) -loadavg_max_percent 负载率告警阈值最(百分比) -mem_used_percent 内存告警阈值(百分比) -cpu_used_percent CPU使用率告警阈值(百分比) -pin_enable 探针模式是否开启(1/0) -port 主动服务的端口 -notice_mod 通知方式(dingbot/mail/jiang) -token 通知dingbot的群钉钉机器人token / mail的smtp地址(host:port) / jiang的SendKey -secret0 通知dingbot的群钉钉机器人secret / mail的发件密码(或授权码) -smtp_user mail通知的发件账号(仅mail模式需要) -smtp_from mail通知的发件来源邮箱(仅mail模式需要) -smtp_to mail通知的收件邮箱(仅mail模式需要) -cache_ttl /info 接口缓存有效期(秒),0 表示与 interval_time 一致 -
参数默认值
参数名称 默认值 -help 0 -server_name echoes_server_{启动时间} -daily_time 09:30 -interval_time 30 -loadavg_max_percent 70 -mem_used_percent 90 -cpu_used_percent 90 -pin_enable 1 -port 9966 -notice_mod -token -secret0 -smtp_user -smtp_from -smtp_to -cache_ttl 0 -
注意
若启动时未开启探针模式也未指定通知模式,则程序会直接退出 若启用帮助模式,则作用仅限为查看帮助,程序会直接退出 dingbot 模式:token=access_token、secret0=secret mail 模式:token=host:port(如 smtp.qq.com:465)、secret0=发件密码/授权码、smtp_user/smtp_from/smtp_to 必填 jiang 模式:token=Server 酱 SendKey(https://sct.ftqq.com/ 获取) mail 会根据端口自动选择 SSL(465)/ 明文(25/587)发送 -
演示参数
dingbot 模式 ./echoes -server_name echoes_server -daily_time 09:30 -interval_time 30 -loadavg_max_percent 70 -mem_used_percent 90 -cpu_used_percent 90 -pin_enable 1 -port 9966 -notice_mod dingbot -token xxxx -secret0 xxxx mail 模式(QQ 邮箱 SSL 示例) ./echoes -server_name echoes_server -daily_time 09:30 -interval_time 30 -loadavg_max_percent 70 -mem_used_percent 90 -cpu_used_percent 90 -pin_enable 1 -port 9966 -notice_mod mail -token smtp.qq.com:465 -secret0 授权码 -smtp_user 123456@qq.com -smtp_from 123456@qq.com -smtp_to admin@example.com Server 酱模式 ./echoes -server_name echoes_server -daily_time 09:30 -interval_time 30 -loadavg_max_percent 70 -mem_used_percent 90 -cpu_used_percent 90 -pin_enable 1 -port 9966 -notice_mod jiang -token SCTxxxxxx -
通知形式
- PING - /ping
- 说明:检查服务器监控是否存活
- 请求方式:任意
- 返回示例:
{ "code": 0, "msg": "pong" }
- 服务器信息 - /info
- 说明:获取当前服务器信息。接口内部对状态采集结果做了内存缓存(默认 TTL =
-interval_time秒,可用-cache_ttl覆盖),缓存窗口内的并发请求直接返回同一份快照,避免 CPU 采样、磁盘 IO 等重型调用把机器打垮;缓存由后台 goroutine 周期预热,单次响应延迟在毫秒级。 - 请求方式:任意
- 返回示例:
{ "code": 0, "data": { "disk": { "path": "/", "fstype": "xfs", "total": 53660876800, "free": 42608521216, "used": 11052355584, "usedPercent": 20.596673485588664, "inodesTotal": 26214400, "inodesUsed": 385915, "inodesFree": 25828485, "inodesUsedPercent": 1.4721488952636719 }, "system": { "MemAll": 3743, "MemFree": 2086, "MemUsed": 1657, "MemUsedPercent": 44.27110833773341, "Days": 31, "Hours": 13, "Minutes": 57, "Seconds": 55, "CpuUsedPercent": 15.000000020372681, "OS": "linux", "Arch": "386", "CpuCores": 2 } }, "msg": "success" }
- 说明:获取当前服务器信息。接口内部对状态采集结果做了内存缓存(默认 TTL =
- 全平台设备探针和告警支持。
- 无需安装任何依赖,直接运行即可。
- 运行后无需任何操作,自动监控服务器状态。
- 探针、告警、通知一体,简单部署即可使用。
- /info 接口内置状态快照缓存,可承受高并发探针请求。
- 检查服务器是否存活(PING)
- 内存使用情况监控/告警
- CUP使用情况监控/告警
- 硬盘使用情况监控
- 操作系统信息获取
- 负载率过高告警
- 作为探针主动获得服务器状态
- 钉钉机器人群通知
- 邮箱通知
- Server酱通知
- 缓存信息以支持高并发请求

