这回是我写的。之前用php写了个类似的工具。但是php一旦线程满了,一切就都结束了。而且php挺吃内存的。。。还有脚本最大运行时间限制。
总之,就是很不好用,连我自己都弃坑了。于是我换了个语言写了个新的。
这回是用go语言写的轻量级程序,实测同时监控八台服务器,占用内存22Mb左右(应该包括程序本体占用的内存)。并且如果不出大问题的话,我想在未来版本加入独立的报表前端程序。
可以结合这篇文章说的QQ机器人使用。
正文开始
启动程序
先从Github下载相应架构的程序并解压,以下以linux为例。
Github release地址↓
下载解压后,会得到一个名为vbk的文件。先增加运行权限:
chmod +x vbk
然后用screen挂进后台
#安装screen
#centos
yum install screen -y
#ubuntu/debian
apt install screen -y
#挂进后台
screen -S vbk
./vbk -url https://demo.mx/api -p 123 #需自行根据下表增加参数
#此时已进入screen,完事按ctrl然后分别按下a和d即可退出screen挂进后台
v1.1启动后不报错就是成功。
启动参数说明:
说明 | 示例 | 默认 | |
-p | 程序监听的端口。记得在防火墙放行 | 233 | 233 |
-path | 心跳请求的路径,必须以/ 开头 | /hb | / |
-url | 消息上报地址 | https://demo.mx/api | |
-log | 宕机日志开关,日志存在log 文件夹,仅宕机恢复触发写日志。 | true + false | false |
探针配置
请求参数说明:
说明 | 示例 | 必要性 | |
time | 设置这一次心跳到下一次心跳的超时时间(秒)。建议比请求频率稍大些。 | 120 | 必须 |
name | 设置服务器别名。 | 北京母鸡 | 必须 |
sign | 设置鉴别服务器的方式。 | name + ip | 必须 |
backend | 心跳超时后的正向请求地址。 内容必须为数字 1 | https://demo.mx/a.txt | 可选 |
每一个参数都是在每一次请求都可以产生变更。
消息上报
上报形式为GET请求,使用GET参数传递数据,参数内容如下:
参数 | 说明 |
msg | 完整警报内容 |
name | 相关主机别名 |
time | 宕机恢复则为宕机时间,否则为0 |
type | 消息类型,包括down 宕机、up 宕机恢复、new 新主机 |
ip | 相关主机ip地址 |
Thank you!!1