今天在GitHub上闲逛时,我偶然发现了一个名为 Kula 的开源项目。它不是什么大公司出品的神器,但却精准地戳中了一个运维“老炮”的痛点——简单到极致的服务器监控。
简介
Kula是一款轻量级、独立的 Linux 服务器监控工具。
在如今这个各种监控系统功能堆叠、架构复杂的时代,Kula 的设计理念显得格外清新。它的目标很纯粹:通过单个二进制文件提供所有功能。
它把“监控”这件事的所有环节都打包进了一个小巧的二进制包里。你不需要在服务器上折腾各种依赖包,也不用配置复杂的环境,只需把它上传到服务器,运行起来,监控就开始了。
功能一览
它提供了两种主要的监控方式:
- 直观的 Web 界面: 这是大部分用户会首先接触到的部分。一个清晰的仪表盘,能够展示服务器关键的实时状态信息。
- 高效的终端监控: 对于更偏爱命令行、或者需要通过脚本集成的场景,Kula 还提供了一个用于终端监控的交互式界面。这意味着你完全可以通过 SSH 连接,在终端里直接查看监控数据,高效且节省资源。
Kula 每秒直接从系统数据中读取系统指标,并将它们存储在内置的分层环形缓冲区存储引擎中,通过实时 Web UI 仪表板和终端 TUI 提供这些指标。
| |
|---|
| 总使用率(含用户态、内核态、IO等待、硬中断、软中断、虚拟化窃取时间)+ CPU核心数 |
| |
| |
| 总容量、空闲容量、可用容量、已用容量、缓冲区、缓存、共享内存 |
| |
| 单网卡吞吐量(单位Mbps)、包速率(包/秒)、错误数、丢包数;TCP错误率(错误/秒)、TCP复位速率(复位/秒)、已建立连接数、套接字总数 |
| 单设备IO指标:读写速率(字节/秒)、读操作速率(次/秒)、写操作速率(次/秒)、IOPS;以及文件系统空间使用率 |
| 运行时长、系统熵值、时钟同步状态、主机名、当前登录用户数 |
| |
| Kula 自身CPU占比、RSS常驻内存占用、打开文件描述符数量 |
| |
部署
Kula的部署可以说是我见过最舒服的,连 Docker 都不用装。
如果你用的是最常见的 x86_64 架构的 Linux 机器,直接拉取编译好的二进制文件就行了:
# 下载单文件二进制包
wget https://github.com/c0m4r/kula/releases/download/0.9.1/kula-0.9.1-amd64.tar.gz
# 解压
tar -xvf kula-0.9.1-amd64.tar.gz
cd kula
# 直接运行!
nohup ./kula &;
运行后,打开浏览器访问这台机器的 27960 端口,你就能看到那个极其优美的监控面板了。
UI截图

开源地址
https://github.com/c0m4r/kula