Kula 是 一款Linux 服务器的监控工具,只有一个二进制文件,安装方便,使用方案,界面也好看

可以选择时间,查看历史监控数据,支持监控多个系统指标,具体如下

工作原理

存储引擎
数据以层级形式持久化存储在预先分配的环形缓冲区文件中。每个层级的文件都有一个固定的最大容量——当文件被填满时,新数据会覆盖最旧的条目。这样可以实现可预测的、有界定的磁盘使用量,无需进行清理。
- 第一层级— 原始 1 秒样本(默认 250 MB)
- 第二层级——1分钟指标聚合(平均值/最小值/最大值)(默认150 MB)
- 第三层级——5分钟指标聚合(平均值/最小值/最大值)(默认50 MB)
HTTP 服务器
后端 HTTP 服务器公开了 REST API 和用于实时流传输的 WebSocket 端点。身份验证是可选的——启用后,它会使用 Argon2id 哈希算法,并结合加密哈希和会话 cookie。
仪表板
前端是一个嵌入在二进制文件中的单页应用程序。它基于 Chart.js 构建,并带有自定义的 SVG 仪表盘,通过 WebSocket 连接进行实时更新,并在需要更长时间范围的数据时回退到历史 API。功能包括:
- 支持拖拽选择的交互式缩放(自动暂停直播)
- 专注模式仅显示您感兴趣的特定图表
- 可配置的Y轴边界(手动限制或自动检测)
- 每个设备均可选择网络、磁盘 I/O 和温度监控选项
- 网格/堆叠列表布局切换
- 时钟同步、低熵和系统过载警报系统
- 现代美学设计,支持浅色/深色主题
安装部署
Guided installation
KULA_INSTALL=$(mktemp)
curl -o ${KULA_INSTALL} -fsSL https://kula.ovh/install
echo "f0c064b20d23c948a4569a35cfe65589a36a497aa0d9037413c6e452471355dd ${KULA_INSTALL}" | sha256sum -c || rm -f ${KULA_INSTALL}
bash ${KULA_INSTALL}
rm -f ${KULA_INSTALL}
Quick
wget https://github.com/c0m4r/kula/releases/download/0.8.3/kula-0.8.3-amd64.tar.gz echo "f0e9c99b309d89414eec8e5a65792afbef7f1ee7c8353bfab4c72a4682979777 kula-0.8.3-amd64.tar.gz" | sha256sum -c || rm -f kula-0.8.3-amd64.tar.gz tar -xvf kula-0.8.3-amd64.tar.gz cd kula ./kula
Docker
Temporary, no persistent storage:
docker run --rm -it --name kula --pid host --network host -v /proc:/proc:ro c0m4r/kula:latest
With persistent storage:
docker run -d --name kula --pid host --network host -v /proc:/proc:ro -v kula_data:/app/data c0m4r/kula:latest docker logs -f kula
Debian / Ubuntu (.deb)
wget https://github.com/c0m4r/kula/releases/download/0.8.3/kula-0.8.3-amd64.deb echo "53ea1623dc85a57919baf1ade5fdc512022cd2630149a93a827616a02437ed60 kula-0.8.3-amd64.deb" | sha256sum -c || rm -f kula-0.8.3-amd64.deb sudo dpkg -i kula-0.8.3-amd64.deb systemctl status kula
RHEL / Fedora / CentOS / Rocky / Alma (.rpm)
wget https://github.com/c0m4r/kula/releases/download/0.8.3/kula-0.8.3-x86_64.rpm echo "9c3a4d3c53e11544a51b7161e9887b15fff7dcd334c6bb648e98f7ab8db80109 kula-0.8.3-x86_64.rpm" | sha256sum -c || rm -f kula-0.8.3-x86_64.rpm sudo rpm -i kula-0.8.3-x86_64.rpm systemctl status kula
Arch Linux / Manjaro (AUR)
wget https://github.com/c0m4r/kula/releases/download/0.8.3/kula-0.8.3-aur.tar.gz echo "85cb8c7aa7b637be82cdfcf1a9a06f91c7458bb37e00d7a00f605f0ee2590bca kula-0.8.3-aur.tar.gz" | sha256sum -c || rm -f kula-0.8.3-aur.tar.gz tar -xvf kula-0.8.3-aur.tar.gz cd kula-0.8.3-aur makepkg -si
Build from Source
git clone https://github.com/c0m4r/kula.git cd kula bash addons/build.sh
配置
cp config.example.yaml config.yaml
先复制出一个yaml配置文件,然后根据自己使用的IP进行修改,毕竟监控一般都是监控的远端服务器,而不是本地服务器,端口也按需修改。
加密 (安全意识是要有的,避免被扫到)
[root@localhost ~]# /usr/bin/kula hash-password
Enter password: *******
Password hash algorithm: Argon2id
Time: 1, Memory: 65536 KB, Threads: 4
Password hash: 01bfc7fecba8cae881699315390690
Salt: 09f278c633e889901fb82a285
Add these to your config.yaml under web.auth:
password_hash: "01bfc7fecba8072e3b8ba99315390690"
password_salt: "09f278c633e898ef22f9489901fb82a285"
argon2:
time: 1
memory: 65536
threads: 4
然后修改config.yaml 文件中的
# Authentication (optional)
auth:
enabled: false
将false修改为true
修改完了以后,重启服务 systemctl start kula
更多内容,可以到具体的github项目上查询最新更新