ServerStatus
服务器探针
使用的源码地址
- ServerStatus中文版
- ServerStatus-HostLoc
其中客户端和web主要在ServerStatus-HostLoc
的基础上稍作修改,因为ServerStatus中文版
中有月流量统计功能,所以使用它做服务端
原理
整个系统共包括三个部分:
- 客户端
- 服务器
- web
客户端
这个是运行在想要监控的各个服务器上的,主要功能是采集各个客户端(服务器)上的。运行状态,将这些内容发送给服务端。
因为这两个版本略有差别,所以我将客户端ip连接数的key值,修改成了load_1(在服务端这个key值应该接收到的内容是1分钟内的平均负载),然后将ip连接数获取位置的tcp6改为tcp(ipv6 or ipv4 ?)
服务端
服务端运行在你想要部署你的网站的那台服务器上,主要功能是接受客户端发送来的数据,生成json格式的数据,然后把这些数据放到web网站的文件夹内。
一台主机既可以做服务端又可以当客户端
web
这个就是我们能看到的监控页面了,这个其实是个没有后端的静态的页面,主要的动态效果靠前端js实现,主要功能是使用前端js解析服务端生成的放到文件夹内的json数据,然后在前端页面上生成可视化页面
这里我主要使用的ServerStatus-HostLoc
的web页面,添加了个顶部图片,服务器信息只保留卡片的形式显示,在卡片上增加了月流量统计,
使用的时候将web服务器(nginx or caddy)的 root 设置为web文件夹的路径就好了,一般都放在 /home/wwwroot/xxx/
Telegram bot
自己主要加了自主获取服务器状态和内存占用超过90%自动给我发消息
库链接 python-telegram-bot
自主获取服务器状态
效果
1 | def get_table(i): |
定时报警
1 | def check_server_status(context: CallbackContext): |
最终效果 ServerStatus
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
GitalkValine