linux-dash 介绍与选型指南

linux-dash 轻量级 Linux 服务器 Web 监控面板的认知与选型篇:介绍三层架构与 29 个监控模块,量化对比 Netdata/glances/Cockpit 并给出选型建议,全部事实联网溯源(查询日期 2026-10-23)。

linux-dashLinux系统监控自托管2026/10/23

linux-dash 介绍与选型指南

目标:面向需要为 Linux 服务器挑选一款轻量级 Web 监控面板的读者,完整介绍 linux-dash 的定位、架构、功能模块与社区现状,并与 Netdata、glances、Cockpit 做量化对比,给出「什么场景该选它、什么场景该绕开它」的明确结论。本文所有事实均来自官方仓库与官方徽章服务的联网取证,查询日期为 2026-10-23。

一、环境信息

本文为认知与选型篇,全部数据通过联网溯源获得,未做本地实测。取证来源与查询日期如下:

取证项来源查询日期
项目主页与 READMEGitHub 仓库 tariqbuilds/linux-dash(原 afaqurk/linux-dash,现已转移)2026-10-23
版本发布历史GitHub Releases 页(tags:0.5 / 1.0 / 1.5 / 2.0)2026-10-23
社区活跃度GitHub 仓库页内嵌统计(stargazerCount / forksCount)与提交历史页2026-10-23
对比组件星数shields.io GitHub Stars 徽章 JSON 接口2026-10-23
模块清单仓库 app/server/linux_json_api.sh 源码2026-10-23

💡 说明:linux-dash 的仓库已从原作者 afaqurk 账号转移至 tariqbuilds 账号(同一作者 Afaq Tariq 的另一账号),访问旧地址会 301 跳转到新地址,package.json 中的 repository 字段仍写着旧地址,属于历史遗留,不影响使用。

二、软件概述

linux-dash 是一个「简单、低开销」的 Linux 服务器 Web 监控面板:在一台 Linux 服务器上部署后,浏览器打开一个网页,就能看到 CPU、内存、磁盘、网络、进程、账户、常见应用等实时状态,界面是一块可拖拽排列的模块化仪表盘。它的自我定位摘自官方 README(查询日期 2026-10-23):

"A simple & low-overhead web dashboard for linux systems" —— 官方仓库 README,v2.0 介绍语

官方给出的三个核心卖点是 小、简单、易用:整个项目(去掉 .git)磁盘占用不到 400KB;前端是一个 AngularJS 单页应用,后端可以在 Node.js、Go、Python、PHP 四种运行时里任选其一,甚至 PHP 模式只是把源码目录挂到 Apache/Nginx 下即可;部署只需 git clone 加一条启动命令。

关键身份信息一览(查询日期 2026-10-23):

项目内容
当前仓库地址https://github.com/tariqbuilds/linux-dash (原 afaqurk/linux-dash)
作者Afaq Tariq(tariqbuilds)
开源许可MIT
最新版本2.0(2017-05-14 发布)
最后一次代码提交2020-03-22(Merge pull request #486)
社区热度10,580 stars / 1,184 forks(仓库页内嵌统计,shields.io 徽章显示 11k)
技术栈AngularJS 1.3 前端 + Bash 数据采集脚本 + Node/Go/Python/PHP 任一后端

⚠️ 注意:从 2020-03-22 至今(2026-10-23)仓库没有新的代码提交,项目处于停滞维护状态(仓库未被官方标记为 Archived,但已无实质更新)。选型时必须把「不会再有新版本」当作既定前提。

三、核心架构

linux-dash 采用「静态前端 + 轻后端 + Bash 数据源」三层结构,这也是它资源开销极低的根本原因——后端不做任何数据加工,只负责把 Bash 脚本的输出透传给浏览器。

浏览器(AngularJS 单页应用 app/linuxDash.min.js,约 226KB)
        │  ①静态资源加载        ②数据通道(二选一/自动降级)
        ▼
Web 层(四选一):Node.js / Go / Python / PHP(挂到 Apache/Nginx)
        │  调用
        ▼
app/server/linux_json_api.sh(Bash 脚本,29 个模块函数)
        │  读取
        ▼
/proc、/etc/passwd、ps、lscpu、df、netstat 等系统原生数据

三层各自的职责:

  1. 前端:app/ 目录下的预构建产物(linuxDash.min.js + linuxDash.min.css + index.html),AngularJS 1.3 单页应用。页面按 5 个页签(系统状态、基本信息、网络、账户、应用)组织,每个监控项是一个可拖拽的「插件」(plugin)小部件。源码在 src/js/,改前端需要用 Gulp 重新构建。
  2. Web 层:app/server/ 目录提供了四个等价的服务器实现——index.js(Node.js)、index.go(Go)、index.py(Python)、index.php(PHP)。任何一个都只做两件事:托管 app/ 静态目录,以及把「模块名」转发给数据源脚本。
  3. 数据源:app/server/linux_json_api.sh 是一个纯 Bash 脚本,内含 29 个模块函数(cpu_info、current_ram、disk_partitions 等),函数名即模块名。Web 层以「函数名」为参数调用它,它读取 /proc、执行 ps/df/lscpu 等系统命令后输出 JSON 片段。

💡 技术拓展:linux-dash 的前端到后端有两条数据通道,这也是它与其他监控面板的差异点之一。常见取数模式对比:

模式原理特点
REST 轮询浏览器定时请求 GET /server/?module=<模块名>实现简单、兼容一切反代,有请求间隔延迟
WebSocket 推送页面加载时建立 WS 长连接,按需发送模块名、服务端推 JSON延迟低、无重复握手,要求代理支持 Upgrade 头

linux-dash 前端默认优先 WebSocket(Node 后端支持),探测失败则自动降级为 REST 轮询;本方案实际两条通道并存,REST 通道 GET /server/?module=<模块名> 是最稳定的取数接口。

Web 层的 HTTP 接口非常精简(以 Node 实现为据,源码 app/server/index.js,查询日期 2026-10-23):

接口方法作用
/GET返回仪表盘首页(静态 app/index.html)
/websocketGET返回 {"websocket_support":true},供前端探测 WS 支持
/server/?module=<名称>GET执行对应模块函数,返回 JSON
/websocket(Upgrade)WSWebSocket 数据通道,消息体即模块名

四、功能特性

4.1 监控模块总表(29 个服务端模块,5 个页面页签)

以下清单取自仓库源码 app/server/linux_json_api.sh 与前端路由 src/js/core/routes.js(查询日期 2026-10-23):

页签模块(Bash 函数名)展示内容
系统状态ram-chart / cpu-avg-load-chart / cpu-utilization-chart / cpu-temp内存占用曲线、平均负载、CPU 利用率、CPU 温度(需 lm-sensors)
系统状态ram_intensive_processes / cpu_intensive_processes内存/CPU 占用最高的进程 TOP 15
系统状态disk_partitions / swap / docker_processes磁盘分区用量、Swap、Docker 容器内进程(需本机有 docker 命令)
基本信息general_info / memory_info / cpu_info主机名、系统版本、运行时长;/proc/meminfo 全量;lscpu 全量
基本信息scheduled_crons / cron_history / io_stats全部用户定时任务、cron 执行历史(依赖 /var/log/syslog)、磁盘 IO 统计
网络upload/download-transfer-rate、ip_addresses各网卡实时上/下行速率、IP 地址清单(含外网 IP,依赖 dig+resolver1.opendns.com)
网络network_connections / arp_cache / ping / bandwidth当前 TCP 连接分布、ARP 缓存、ping_hosts 配置文件中主机的延迟、各网卡累计流量
账户user_accounts / logged_in_users / recent_account_logins系统账户清单、当前登录用户、一年内最近登录记录(依赖 lastlog)
应用common_applications检测 php/node/mysql/mongo/vim/python/ruby/java/apache2/nginx/openssl/vsftpd/make 是否安装及路径
应用memcached / redis / pm2_statsMemcached stats(需本机 11211 端口)、Redis INFO 关键指标(需 redis-cli)、PM2 进程列表(需 pm2)

💡 说明:前端 5 个页签里出现的图表型插件(ram-chart 等)与表格型插件最终都落到同一份 Bash 模块函数上取数;ping 模块的主机清单来自可编辑配置文件 app/server/config/ping_hosts,默认内容为 google.com、yahoo.com、twitter.com 三行,这是 linux-dash 少数几个「可配置项」之一。

4.2 特性小结

  • 体积极小:官方 README 声称去掉 .git 后全项目不到 400KB(查询日期 2026-10-23);预构建前端 JS 226KB、CSS 5KB,无需 npm 构建即可使用。
  • 后端自由:Node.js(官方推荐)、Go、Python、PHP 四种实现并存,选择完全取决于服务器上已有什么运行时。
  • 零依赖数据库:不落盘、不存历史,所有数据现取现读,天然没有存储扩容和备份负担。
  • 无任何认证机制:官方 README 明确写了 "Linux Dash does not provide any security or authentication features",并强烈建议部署者自行加一层防护(HTTP Basic 认证、反代访问控制等)。
  • 单机视角:只能看部署它的那台服务器,没有跨节点聚合能力。

五、快速开始(官方最小可用示例)

以下步骤逐字取自官方仓库 README(查询日期 2026-10-23,Node.js 为官方推荐路径):

## 1. clone the repo
git clone --depth 1 https://github.com/afaqurk/linux-dash.git

## 2. go to the cloned directory
cd linux-dash/app/server

## 3. install dependencies
npm install --production

## 4. start linux-dash (on port 80 by default; may require sudo)
node index.js

启动后浏览器访问 http://<服务器IP>/ 即可看到仪表盘。README 同时说明:端口可用环境变量 LINUX_DASH_SERVER_PORT 或 --port 参数修改,监听地址默认 0.0.0.0、可用 LINUX_DASH_SERVER_HOST 修改。其余三种后端的启动命令(Go:go run index.go;Python:python index.py;PHP:把 Web 服务器根目录指向 app/ 目录)同样写在 README 中。

⚠️ 注意:上面是官方 README 的原始步骤,直接在 80 端口启动需要 root 权限,且不加认证就把系统信息暴露在公网上非常危险。面向 Ubuntu 22.04 的完整安装(含非特权端口、HTTP Basic 认证、systemd 托管与两种路径的排障实录)见本专栏《Ubuntu 22.04 安装 linux-dash 指南》。

六、适用场景与限制

6.1 适合的场景

  1. 个人 VPS / 家庭服务器的快速巡检页:一台低配机器上跑个常驻面板,偶尔打开看一眼负载、内存、磁盘,部署成本几乎为零。
  2. 低资源占用的常驻监控:Node 后端常驻内存约 50MB 上下(pm2 实测 31–53MB 量级,见专栏 CLI 篇),比任何带时序数据库的监控栈低两个数量级。
  3. 内网/受信环境的简易仪表盘:配合反代 Basic 认证,给团队提供一个「一眼看服务器状态」的轻入口。
  4. 教学与二开:Bash 模块函数 + AngularJS 插件的结构极其直白,读懂 linux_json_api.sh 就能自定义数据模块。

6.2 明确的限制

  1. 项目停滞:最后提交 2020-03-22,最后发布 2.0(2017-05-14),不再有安全更新;新系统上的兼容性问题(如新版 PHP、新版 awk)不会有官方修复。
  2. 无认证、无告警、无历史:三者都要靠外围组件补齐(反代认证、外部告警系统、外部采集),linux-dash 本体只做「看当下」。
  3. 单机视角:没有节点聚合,多台服务器需要各部署一套,没有统一入口。
  4. 数据实时性依赖页面打开:无后台采集进程,页面不开就没有数据,不能做事后追溯。

七、同类选型对比

面向「Linux 服务器监控」这一需求,选取社区内最常被拿来对比的三款工具做量化对比。星数取自 shields.io GitHub Stars 徽章接口(查询日期 2026-10-23):netdata 81k、glances 34k、Cockpit 15k、linux-dash 11k。

维度linux-dash 2.0NetdataglancesCockpit
定位轻量 Web 仪表盘全功能实时性能监控终端优先的跨平台监控服务器管理 Web 控制台
GitHub Stars(2026-10-23)11k(精确 10,580)81k34k15k
主语言Bash + AngularJS + Node/Go/Python/PHPC + Node.jsPythonC + JavaScript
数据存储无(现取现读)内置时序库,可存历史可选输出到 InfluxDB 等无持久监控历史(依赖 systemd 日志)
告警能力无内置(健康检查引擎)依托 Python API 二开无内置
多节点聚合无有(流复制/父节点)有(glances -s/-c 主从模式)无(单机管理)
额外能力无每秒级千余指标、APM 集成GPU/传感器/容器/进程深度视图存储管理、网络配置、终端、软件更新、容器管理
运行开销极低(约几十 MB)低到中等(官方宣称常驻约 1–2% 单核 + 百 MB 级内存)低(Python 进程)中等(systemd 常驻多组件)
维护状态停滞(最后提交 2020-03)活跃活跃活跃(Red Hat 主导)
部署复杂度git clone 即用脚本一键安装pip/apt 安装多数发行版自带或 apt 安装

7.1 如何选型

  • 只想要一个「打开网页看一眼」的轻面板、且接受它不再更新 → linux-dash,部署成本最低、界面最简。
  • 要逐秒指标、历史曲线、告警、多机聚合 → Netdata,监控能力是四个中最强的,代价是常驻资源与学习成本都更高。
  • 习惯在终端里看监控、又要跨平台(含 BSD/macOS) → glances,Web 模式只是它的附加形态;其深度对比可参考本专栏姊妹篇 《glances 介绍与选型指南》。
  • 要直接在网页里管理服务器(改配置、管存储、开终端)而不只是看监控 → Cockpit,它是管理控制台,监控只是其一。
  • 生产环境、有合规或长期维护要求 → 不建议 linux-dash:无认证、无更新这两个硬伤必须靠大量外围工作弥补,此时 Netdata/Cockpit 更稳。

💡 说明:glances 与 linux-dash 的安装、配置、命令实操在本专栏与 glances 专栏都有完整覆盖,可点击互链跳转:《Ubuntu 24.04 安装 glances 4.5.8 指南》、《glances 4.5.8 配置参数详解》。

八、参考链接

  1. 官方仓库(当前地址):https://github.com/tariqbuilds/linux-dash (查询日期 2026-10-23)
  2. 官方 Wiki:https://github.com/tariqbuilds/linux-dash/wiki (查询日期 2026-10-23)
  3. 在线 Demo:https://afaqurk.github.io/linux-dash (查询日期 2026-10-23)
  4. 版本发布页:https://github.com/tariqbuilds/linux-dash/releases (查询日期 2026-10-23)
  5. 对比组件仓库:https://github.com/netdata/netdata 、https://github.com/nicolargo/glances 、https://github.com/cockpit-project/cockpit (星数经 shields.io 徽章接口取证,查询日期 2026-10-23)