
最近看到有网友分享的一个开源的服务器监控软件(C语言编写),同时也放上了相关的Demo,看着还不错。最近准备安装在自己的闲置VPS测试一下。关于LTStats,下面是Github上的介绍:
LTStats 是一个轻量级的资源监控系统,专为Linux系统设计,采用Agent-Server架构,具有低资源消耗、易于部署等特点。
Demo:https://status.0lt.de/
主要特性
- 轻量级设计:后端代码少于3000行C语言,前端少于2000行JavaScript
- 低资源占用:Agent端仅需约250KB存储空间和300KB内存,Server端约150KB存储和500KB内存
- 无需特殊权限:Agent和Server都以非特权用户运行,无需特殊端口
- 本地数据缓存:当服务器不可达时,数据会保存在本地内存中
- 安全设计:所有安装脚本都会验证二进制文件校验和,确保安全性
系统架构
LTStats 分为两个主要组件:
- Agent组件:运行在待监控系统上,收集各种数据点包括:
- 内核信息、处理器信息、CPU核心数
- 系统运行时间、CPU使用率、CPU等待时间、CPU窃取时间
- 内存总量和使用量、交换空间总量和使用量
- 磁盘总量和使用量、网络流量、磁盘IO
- 将数据上传到服务器
- Server组件:只运行在一台服务器上,具有三大功能:
- 保存数据
- 发送通知
- 显示Web界面
监控数据存储
- 每个监控点的数据存储约为40字节
- 默认设置下,每个监控点每分钟采集一次数据
- 每个监控点每年的存储空间约为20MB
Web界面功能
- 状态页面:显示系统状态概览
- 监控详情:包含历史数据的图表
- 管理界面:用于配置和管理监控系统
- 响应式设计:支持桌面和移动设备
- 主题切换:支持亮色和暗色模式
通知功能
- 支持上下线通知
- 支持资源阈值告警
- 可自定义通知脚本和程序
- 内置msmtp邮件通知支持
部署要求
- 操作系统:目前仅支持Linux系统(x86_64架构)
- 内核要求:近十年内编译的内核均可支持
- 文件系统:Agent需要/proc文件系统,建议同时挂载/sys文件系统
- 时间同步:服务器和Agent端都需要准确的时间(偏差小于5秒最优)
安装方式
提供自动化安装脚本,支持systemd系统。也支持手动安装和Docker部署(但不推荐Docker方式)。
注意事项
- 目前仅支持x86_64架构,ARM支持正在计划中
- 大规模自动化部署Agent的功能有限
- 需要TLS反向代理进行HTTPS访问
- 相比其他解决方案,监控项相对有限