⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 极客之家 「丛林」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

今天在GitHub上闲逛时,我偶然发现了一个名为 Kula 的开源项目。它不是什么大公司出品的神器,但却精准地戳中了一个运维“老炮”的痛点——简单到极致的服务器监控。

简介

Kula是一款轻量级、独立的 Linux 服务器监控工具。

在如今这个各种监控系统功能堆叠、架构复杂的时代,Kula 的设计理念显得格外清新。它的目标很纯粹:通过单个二进制文件提供所有功能。

它把“监控”这件事的所有环节都打包进了一个小巧的二进制包里。你不需要在服务器上折腾各种依赖包,也不用配置复杂的环境,只需把它上传到服务器,运行起来,监控就开始了。

功能一览

它提供了两种主要的监控方式:

  • 直观的 Web 界面: 这是大部分用户会首先接触到的部分。一个清晰的仪表盘,能够展示服务器关键的实时状态信息。
  • 高效的终端监控: 对于更偏爱命令行、或者需要通过脚本集成的场景,Kula 还提供了一个用于终端监控的交互式界面。这意味着你完全可以通过 SSH 连接,在终端里直接查看监控数据,高效且节省资源。

Kula 每秒直接从系统数据中读取系统指标,并将它们存储在内置的分层环形缓冲区存储引擎中,通过实时 Web UI 仪表板和终端 TUI 提供这些指标。

监控指标 采集内容
CPU 总使用率(含用户态、内核态、IO等待、硬中断、软中断、虚拟化窃取时间)+ CPU核心数
GPU 负载、功耗、显存占用
系统负载 1/5/15分钟平均负载、运行中任务数、总任务数
内存 总容量、空闲容量、可用容量、已用容量、缓冲区、缓存、共享内存
交换区 总容量、空闲容量、已用容量
网络 单网卡吞吐量(单位Mbps)、包速率(包/秒)、错误数、丢包数;TCP错误率(错误/秒)、TCP复位速率(复位/秒)、已建立连接数、套接字总数
磁盘 单设备IO指标:读写速率(字节/秒)、读操作速率(次/秒)、写操作速率(次/秒)、IOPS;以及文件系统空间使用率
系统 运行时长、系统熵值、时钟同步状态、主机名、当前登录用户数
进程 运行中、睡眠、阻塞、僵尸进程的数量
程序自身 Kula 自身CPU占比、RSS常驻内存占用、打开文件描述符数量
温度 CPU、GPU 及磁盘温度

部署

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

文章目录
  1. 1. 简介
  2. 2. 功能一览
  3. 3. 部署
  4. 4. UI截图
  5. 5. 开源地址