6 个用于监控服务器的自托管轻量级工具

服务器监控的重要性

对于任何企业而言,确保其各种系统稳定运行至关重要,而服务器监控是实现这一目标的关键。随着业务的不断扩张,企业的资源、人员、服务、系统以及 IT 基础设施也随之增长。因此,一个有效的性能监控解决方案对于实时掌握服务器的健康状况、活动情况以及整体运行状态至关重要。

本文将深入探讨几款轻量级且免费的服务器监控工具,这些工具可以帮助 IT 管理员应对日常挑战,如服务器崩溃、应用程序响应缓慢、意外停机、配置依赖问题以及内存泄漏等问题。这些挑战都需要借助专门的 IT 监控软件或应用程序来解决。

虽然诸如 Nagios 和 Zabbix 等监控工具因其能够全面监控整个基础设施而广受欢迎,但对于基础设施规模较小或仅需关注服务器性能的企业而言,一些轻量级的自托管软件可能更为合适。这些工具专注于核心指标,避免了端到端工具的复杂性。

值得注意的是,如果您使用的是 Linux 系统,则可以使用内置命令来监控 CPU、内存和进程等关键资源的使用情况。

Ward

Ward 提供最精简且重要的服务器信息,它兼容各种主流操作系统。Ward 利用 OSHI 这个免费的 Java 库来获取操作系统和硬件信息。它可以展示操作系统版本、内存使用情况、处理器信息、磁盘和分区、CPU 使用率等关键指标。

其仪表板主要分为五个部分:

  • 处理器:显示处理器名称、利用率百分比、核心数、位数以及频率。
  • 机器:展示操作系统及其版本、内存占用百分比、RAM 总量、RAM 类型以及当前进程数。
  • 存储:列出存储名称、使用百分比、存储总大小、磁盘数量以及虚拟内存使用情况。
  • % Utilization:以可视化方式展示过去 20 秒内处理器、内存和存储的使用情况。
  • Ward:在 Linux 系统上显示自上次启动后的运行时间,在 Windows 系统上显示硬重置时间。

要运行 Ward,你可以创建该项目的 jar 文件并执行它,或者下载最新版本的 jar 文件并运行。另外,也可以在 Docker 容器内启动 Ward。

Netdata

Netdata 是一款免费的开源软件,用于实时监控系统和应用程序。 它可以在 Linux、FreeBSD、macOS、Docker 容器以及物联网设备上运行。只需在系统、应用程序或容器上安装 Netdata 代理,即可实时获取所有性能和健康信息。

通过在图表上拖动来选择需要关注的区域,然后使用 SHIFT + 鼠标滚轮进行放大或缩小,以查看详细信息。 Netdata 能够轻松地与其他工具集成,例如 Prometheus、AWS Kinesis、Graphite 和 MongoDB 等。

Netdata 的主要特点包括:

  • 安装快速且简单。
  • 实时提供数据。
  • 每个节点可以监控多达 1000 个指标。
  • 每台服务器能够自动收集高达 10000 个指标。
  • 存储每一秒的历史数据。
  • 仪表板的展示直观易懂。
  • 使用现代指标可视化工具,能快速发现异常情况。
  • 运行 Netdata 不需要占用大量系统资源。

Prometheus + Grafana

Prometheus 是一个开源的系统指标监控工具,而 Grafana 是一个开源的可视化平台。Prometheus 和 Grafana 的组合为服务器监控提供了一个强大而有效的环境。Prometheus 服务器周期性地收集数据,然后作为 Grafana 的数据源,Grafana 将所有指标以仪表板的形式呈现。

用户还可以在 Grafana 中选择要查询和可视化的特定指标。 这是一个值得尝试的强大组合!

Glances

Glances 是一个用 Python 编写的跨平台监控工具,它支持 Python 2.7 或 Python >= 3.4 版本。 Glances 使用 Python 库 (psutil) 来收集系统信息。根据界面大小,例如移动设备、Web UI 或终端,UI 上显示的信息会动态变化。

Glances 的功能包括:

  • 可以通过终端、Web UI 或 API(XML-RPC 服务器和 RESTful JSON)进行远程监控。
  • 可以导出统计信息到文件或数据库中。
  • 安装非常简单,只需一个命令:pip install glances
  • 提供适用于 Glances 的 Docker 容器。

如果需要更强大的可视化功能,可以将 Glances 的数据导出到 InfluxDB,然后在 Grafana 上进行可视化。

Linux Dash

Linux Dash 是一个用于 Linux 系统的 Web 仪表板。Linux Dash 的 UI 基于 Angular 构建,其服务器端支持多种编程语言。系统状态选项卡会显示 RAM 使用情况、CPU 平均负载、CPU 利用率、CPU 和 RAM 进程、磁盘分区、Swap 使用情况、CPU 温度以及 Docker 进程等信息。

Linux Dash 还提供网络级别、账户级别以及应用程序级别的相关信息。

Linux Dash 的主要特点:

  • 支持 WebSocket,可以提供实时系统数据的可视化。
  • 具有拖放用户界面。
  • 仪表板上的屏幕可以自定义(最小化、展开、调整)。
  • 服务器端的实现可以使用多种语言 (Node.js、Python、Go、PHP)。

Conky

Conky 最初是一个为 X 窗口系统编写的系统监视器,目前已支持许多不同的平台。它可以在 X、Linux、Mac OS (使用 X quartz) 以及大多数 BSD 系统上运行。Conky 使用简单的文本、进度条以及使用不同字体和颜色的图形小部件来显示信息。

Conky 的主要特点:

  • 具有 300 多个内置对象,用于显示系统状态。
  • 用户界面非常简单。
  • 支持 Audacious、MPD 等音乐播放器。
  • 支持 POP3 和 IMAP。
  • 可以使用脚本和外部程序来显示任何信息。

总结

监控服务器性能至关重要。如果管理不当,可能会导致性能和正常运行时间问题,从而阻碍业务发展。使用监控软件解决方案能有效确保服务器平稳运行。此外,您也可以考虑基于云的服务器监控解决方案,从而省去安装和管理监控软件的步骤。