Scrutiny项目手动安装指南:构建智能硬盘健康监控系统
前言
Scrutiny是一款开源的智能硬盘(S.M.A.R.T)监控解决方案,能够帮助用户实时监控硬盘健康状况,预测潜在故障风险。本文将详细介绍如何手动安装部署Scrutiny系统的各个组件,包括InfluxDB数据库、Web应用/API以及数据收集器。
系统架构概述
Scrutiny采用模块化设计,主要由三个核心组件构成:
- InfluxDB:负责存储所有收集到的硬盘健康数据
- Web应用/API:提供可视化界面和数据处理接口
- Collector(收集器):定期采集硬盘S.M.A.R.T数据并发送至API
这种架构设计使得系统具备良好的扩展性和灵活性,各组件可以独立部署或升级。
环境准备
在开始安装前,请确保您的系统满足以下基本要求:
- Linux操作系统(推荐Ubuntu 22.04或CentOS 8)
- 至少2GB可用内存
- 1GB以上磁盘空间
- 网络连接(用于下载安装包)
第一部分:InfluxDB安装
InfluxDB作为Scrutiny的数据存储后端,需要优先安装配置。
安装步骤
- 根据您的操作系统类型,参考InfluxDB官方文档安装v2.2.0或更高版本
- 安装完成后,确保InfluxDB服务已启动并正常运行
- 默认情况下,InfluxDB会监听8086端口
专业提示:对于生产环境,建议配置InfluxDB的持久化存储和数据备份策略。
第二部分:Web应用/API部署
依赖检查
Web组件是预编译的二进制文件,主要依赖glibc
库,大多数Linux发行版已默认包含。
目录结构创建
执行以下命令创建标准目录结构:
mkdir -p /opt/scrutiny/{config,web,bin}
配置文件准备
创建/opt/scrutiny/config/scrutiny.yaml
文件,内容如下:
version: 1
web:
database:
location: /opt/scrutiny/config/scrutiny.db
src:
frontend:
path: /opt/scrutiny/web
influxdb:
host: localhost
port: 8086
配置说明:如果InfluxDB部署在其他主机或使用云服务,需要相应调整host和port参数。
文件下载与部署
- 获取最新版本的Scrutiny Web组件二进制文件,保存至
/opt/scrutiny/bin
- 下载前端资源包,保存至
/opt/scrutiny/web
文件处理
chmod +x /opt/scrutiny/bin/scrutiny-web-linux-amd64
cd /opt/scrutiny/web
tar xvzf scrutiny-web-frontend.tar.gz --strip-components 1 -C .
rm -rf scrutiny-web-frontend.tar.gz
启动Web服务
/opt/scrutiny/bin/scrutiny-web-linux-amd64 start --config /opt/scrutiny/config/scrutiny.yaml
服务默认监听8080端口,可通过浏览器访问http://服务器IP:8080
验证。
第三部分:Collector部署
依赖安装
收集器需要以下依赖:
smartctl
(v7+版本)cron
(或其他任务调度工具)
各系统安装smartmontools(v7+)命令:
- Ubuntu 22.04:
apt-get install -y smartmontools
- CentOS 8:
dnf install https://extras.getpagespeed.com/release-el8-latest.rpm dnf install smartmontools
- FreeBSD:
pkg install smartmontools
二进制文件部署
- 下载收集器二进制文件至
/opt/scrutiny/bin
- 添加执行权限:
chmod +x /opt/scrutiny/bin/scrutiny-collector-metrics-linux-amd64
初始数据收集
执行首次数据收集:
/opt/scrutiny/bin/scrutiny-collector-metrics-linux-amd64 run --api-endpoint "http://localhost:8080"
配置定时任务
设置每15分钟自动收集数据:
crontab -e
添加以下内容:
*/15 * * * * . /etc/profile; /opt/scrutiny/bin/scrutiny-collector-metrics-linux-amd64 run --api-endpoint "http://localhost:8080"
系统验证与使用
完成所有组件安装后:
- 访问Web界面(http://服务器IP:8080)
- 确认硬盘列表和健康状态显示正常
- 检查历史数据是否随时间更新
常见问题处理
-
Web界面无法访问:
- 检查8080端口是否开放
- 确认Web服务进程正常运行
- 查看日志
/opt/scrutiny/config/scrutiny.log
-
数据收集失败:
- 验证smartctl版本是否为v7+
- 确保收集器有权限访问硬盘设备
- 检查API端点地址是否正确
-
数据库连接问题:
- 确认InfluxDB服务状态
- 检查网络连通性(特别是跨主机部署时)
- 验证端口8086是否可访问
性能优化建议
- 对于大量硬盘(10+)的环境,可调整收集频率至30分钟一次
- 考虑为InfluxDB配置独立的高性能存储
- 在Web前端使用Nginx反向代理,提高并发处理能力
- 定期清理过期监控数据,控制数据库增长
结语
通过本文详细的手动安装指南,您应该已经成功部署了一套完整的Scrutiny硬盘监控系统。这种手动安装方式虽然步骤较多,但提供了更高的灵活性和控制力,适合对系统有定制化需求的用户。系统运行后,您将能够实时掌握硬盘健康状况,及时预防潜在的数据风险。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考