轻量化服务器和硬盘监控系统Vigil

简介

什么是 Vigil?

Vigil 是一个现代、轻量级、开源的服务器监控系统,提供对硬盘和 SSD 的实时 S.M.A.R.T. 健康状况跟踪。它为速度和简单性而设计,通过现代化的 Web 仪表盘和预测性健康分析提供对基础设施的即时可见性,以防止硬件故障。它适用于任何 Linux 系统,包括那些配备了 LSI/Broadcom HBA 控制器的系统。

主要特点

  • 🔥轻量级代理:单个 Go 二进制文件,零依赖,可快速部署在任何服务器上。
  • 🐳Docker 服务端 :中央监控中心已容器化,便于使用 Docker 或 Docker Compose 轻松部署。
  • ⚡快速的 Web 仪表盘 :现代化的 HTML5/JS 界面,提供即时加载和实时更新。
  • 🔍深度分析 :允许查看原始 S.M.A.R.T. 属性、温度历史和详细的驱动器信息。
  • 🤖预测性检查:通过高级分析来判断一个驱动器是即将发生故障还是仅仅是老化。
  • 📊持续监控:可配置的报告间隔,并具备自动重新连接能力。
  • 🔐身份验证:内置登录系统,保障会话安全。
  • 🏷️驱动器别名:用户可以为驱动器设置自定义名称(例如,"Plex Media"、"备份驱动器"),以便于识别。
  • 🔧HBA 支持 :自动检测连接在 SAS HBA 控制器(如 LSI SAS3224)后的 SATA 驱动器。

应用场景

  • 主动式服务器与硬盘监控 :利用 S.M.A.R.T. 数据监控硬盘和 SSD 的健康状况,以预测和防止硬件故障。
  • 基础设施可视化 :提供一个集中的 Web 仪表盘,用于实时了解多个服务器及其存储设备的状态。
  • 家庭实验室与小型服务器环境 :其轻量级代理和便捷的 Docker 部署使其非常适合个人服务器、家庭实验室或运行在 Linux 上的中小型团队基础设施。
  • 支持 HBA 控制器的系统 :专为通过 SAS HBA 控制器连接的 SATA 驱动器而设计,这对于其他监控解决方案可能是一个挑战。

Vigil 提供了一个强大而灵活的平台,以便在各种场景中监控和管理服务器和驱动器的健康状态,确保用户不遗漏任何关键的硬件故障。

安装

在群晖上以 Docker 方式安装。

分为 服务端

和 采集端 两个镜像

推荐使用 docker cli 进行安装

服务端

首先要安装一个服务端,作为监控系统的核心,处理来自各个采集端的报告,并提供现代化的网页界面,用户可以实时查看服务器和驱动器的健康状况

bash 复制代码
# 新建文件夹 vigil 和 子目录
mkdir -p /volume1/docker/vigil/data

# 进入 vigil 目录
cd /volume1/docker/vigil

# 一键启动服务端
docker run -d \
  --name vigil-server \
  --restart unless-stopped \
  -p 9080:9080 \
  -v $(pwd)/data:/data \
  -e ADMIN_PASS=your-secure-password \
  ghcr.io/pineappledr/vigil:latest
  
# 示例
docker run -d \
  --name vigil-server \
  --restart unless-stopped \
  -p 9080:9080 \
  -v vigil_data:/data \
  -e ADMIN_PASS=laosu123 \
  ghcr.io/pineappledr/vigil:latest

环境变量 ADMIN_PASS 值设为 your-secure-password。用于配置容器应用程序的管理密码信息

采集端

采集端负责从被监控的机器上收集 S.M.A.R.T. 数据和健康状态报告,并将其传输至服务端

采集端可以和服务端在安装在同一台主机,也可以不是

bash 复制代码
# 一键启动采集端
docker run -d \
  --name vigil-agent \
  --net=host \
  --privileged \
  --restart unless-stopped \
  -v /dev:/dev \
  ghcr.io/pineappledr/vigil-agent:latest \
  --server http://YOUR_SERVER_IP:9080 \
  --interval 60

# 示例
docker run -d \
  --name vigil-agent \
  --net=host \
  --privileged \
  --restart unless-stopped \
  -v /dev:/dev \
  ghcr.io/pineappledr/vigil-agent:latest \
  --server http://192.168.0.197:9080 \
  --interval 60
  • --net=host:使用主机网络模式,这意味着容器将能够访问主机的所有网络接口;
  • --privileged:给予容器更高的权限,允许容器访问主机的设备,且可以执行一些特权操作;
  • -v /dev:/dev:将宿主机的 /dev 目录映射到容器的 /dev 目录。这允许容器访问宿主机上的设备文件,从而能够与硬件进行交互;
  • --server http://192.168.0.197:9080:这是传递给容器应用程序的命令行参数,指定 --server ,也就是服务器的地址。容器将与此服务器进行通信;
  • --interval 60:也是传递给容器应用程序的命令行参数,指定 --interval 参数,设置为 60 秒。用于定义信息采集操作的时间间隔;

运行

在浏览器中输入 http://<群晖IP>:9080 就能看到登录界面。使用 admin 和您设置的 ADMIN_PASS 登录。

登录成功后,很快就能看到主机信息

更详细的信息

参考文档

pineappledr/vigil: Vigil is a modern, lightweight, and open-source server monitoring system, that provides real-time S.M.A.R.T. health tracking.

地址:https://github.com/pineappledr/vigil

相关推荐
牢姐与蒯4 分钟前
一点小碎片——每个线程独有的东西——上下文+栈
linux·运维·服务器
Elastic 中国社区官方博客28 分钟前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
迪康coolmu29 分钟前
屏幕水印与防拍照落地:从水印类型到泄密溯源的完整配置
运维·网络·安全·网络安全·数据安全
0+11133 分钟前
Linux --进程间关系和守护进程
linux·运维·服务器
weixin_403810131 小时前
EasyClick iOS 免越狱自动化脚本怎么写:从环境判断到跑通第一个脚本
运维·ios·自动化
程序猿老A1 小时前
GPU云服务器怎么安装AI
运维·服务器·人工智能
小白的码BUG之路1 小时前
Docker -- No space left on device
运维·docker·容器
Ruiery1 小时前
Linux 6.6内核 CPU 深度解析(八):percpu 变量 — 每个 CPU 一份数据,无锁访问
linux·运维·服务器
程序猿老A2 小时前
云服务器怎么配置视频存储?
运维·服务器·音视频
程序员老陆2 小时前
Docker 命令全景指南:从镜像构建到生产运维
运维·docker·容器