011287589436d25b3d91362459a3ef299db15af5
Parse sg_ses --page=0x02 output to surface enclosure-level health data including power supply status, fan RPMs, temperature sensors, and voltage rails. Failed/critical components are reflected in the overview totals and shown as status pills in the enclosure card header with an expandable detail panel.
JBOD Monitor
REST API for monitoring drive health in JBOD enclosures on Linux.
Auto-discovers SES enclosures via sysfs, maps drives to physical slots, and exposes SMART health data.
Prerequisites
- Linux with SAS/SATA JBODs connected via HBA
smartmontools— forsmartctl(SMART data)sg3-utils— forsg_ses(SES enclosure data)- Python 3.11+
# Debian/Ubuntu
apt install smartmontools sg3-utils
# RHEL/Fedora
dnf install smartmontools sg3_utils
Install
pip install -r requirements.txt
Run
The API needs root access for smartctl to query drives:
sudo uvicorn main:app --host 0.0.0.0 --port 8000
API Endpoints
| Endpoint | Description |
|---|---|
GET /api/health |
Service health + tool availability |
GET /api/enclosures |
List all discovered SES enclosures |
GET /api/enclosures/{id}/drives |
List drive slots for an enclosure |
GET /api/drives/{device} |
SMART detail for a block device |
GET /api/overview |
Aggregate enclosure + drive health |
GET /docs |
Interactive API docs (Swagger UI) |
Description
Languages
Python
50.1%
JavaScript
47.9%
Dockerfile
1%
Shell
0.6%
HTML
0.4%