147 lines
6.9 KiB
Markdown
147 lines
6.9 KiB
Markdown
---
|
|
title: Scrutiny
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, monitoring, hdd, smart, nas, go, ssd]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/AnalogJ/scrutiny]
|
|
---
|
|
# 📊 Scrutiny
|
|
|
|
> **Le médecin de vos disques durs et SSD** : interface web moderne pour les données SMART, avec alerting avant panne. La référence pour surveiller la santé de votre NAS ou serveur de fichiers.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [github.com/AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny) |
|
|
| **GitHub** | [AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny) |
|
|
| **License** | MIT |
|
|
| **Langage** | Go + TypeScript (Svelte) |
|
|
| **Étoiles GitHub** | 7 858 ⭐ |
|
|
| **Dernière MAJ** | 2026-06-06 |
|
|
| **Catégorie** | [[cat-monitoring|Monitoring]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Scrutiny** est un **dashboard de monitoring de disques durs et SSD** qui collecte, historise et alerte sur les **données SMART** de tous vos périphériques de stockage. C'est l'outil qu'il vous faut si vous gérez un **NAS, un serveur de fichiers, ou un homelab avec plusieurs disques**.
|
|
|
|
Les données SMART (Self-Monitoring, Analysis, and Reporting Technology) sont des métriques internes remontées par chaque disque : température, heures de fonctionnement, secteurs réalloués, erreurs CRC, etc. Ces infos sont cruciales pour **prédire une panne avant qu'elle ne survienne**. Le problème : les outils natifs (`smartctl`) ne sont qu'en CLI, et il n'existait pas de bonne UI moderne pour suivre l'évolution dans le temps. C'est précisément ce que Scrutiny résout.
|
|
|
|
Contrairement à [[app-netdata]] ou [[app-uptime-kuma]] qui surveillent l'uptime, Scrutiny est **verticalisé sur le stockage** : il ne monitore pas le CPU, mais il est imbattable pour la santé disque.
|
|
|
|
- ✅ **Collecte SMART** : température, heures de fonctionnement, reallocated sectors, pending sectors, UDMA CRC errors
|
|
- ✅ **Web UI moderne** : Svelte, responsive, dark mode natif
|
|
- ✅ **Historique** : InfluxDB en backend, graphs de tendances sur la durée de vie du disque
|
|
- ✅ **Alertes** : seuils dynamiques, notifications (Discord, Slack, Telegram, Email, Gotify, Pushover, ntfy, Pushbullet)
|
|
- ✅ **Multi-hôtes** : un seul dashboard peut monitorer N serveurs (via agents locaux)
|
|
- ✅ **Auto-détection** : trouve tous les disques (SATA, NVMe, SAS)
|
|
- ✅ **Vendor-specific attributes** : gère les attributs propriétaires (WD, Seagate, Samsung, etc.)
|
|
- ✅ **Collecteur en Go** : binaire statique, faible empreinte
|
|
- ✅ **Docker** : OCI + Docker Compose
|
|
|
|
**Public cible** : toute personne avec un **serveur à disques multiples** (NAS, médiaserver, infra Proxmox, TrueNAS bare-metal). Si vous avez juste un VPS avec 1 SSD, Scrutiny est overkill — partez sur [[app-uptime-kuma]].
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (stand-alone)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
scrutiny:
|
|
image: ghcr.io/analogj/scrutiny:master-omnibus
|
|
container_name: scrutiny
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080" # Web UI
|
|
volumes:
|
|
- /run/udev:/run/udev:ro
|
|
- /dev/disk:/dev/disk:ro
|
|
- scrutiny-config:/opt/scrutiny/config
|
|
- scrutiny-influxdb:/opt/scrutiny/influxdb
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.scrutiny.rule=Host(`scrutiny.example.com`)"
|
|
- "traefik.http.routers.scrutiny.entrypoints=websecure"
|
|
- "traefik.http.routers.scrutiny.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.scrutiny.loadbalancer.server.port=8080"
|
|
|
|
volumes:
|
|
scrutiny-config:
|
|
scrutiny-influxdb:
|
|
```
|
|
|
|
> ⚠️ Sur **Synology, TrueNAS, Unraid**, le conteneur doit être lancé en **privileged** ou avec les bons device mappings. Voir la doc.
|
|
|
|
### Option 2 : Binaire natif (collector sur hôte distant)
|
|
|
|
```bash
|
|
# Sur la machine à monitorer (envoyée par SSH)
|
|
wget https://github.com/AnalogJ/scrutiny/releases/latest/download/scrutiny-collector-linux-amd64
|
|
chmod +x scrutiny-collector-linux-amd64
|
|
sudo ./scrutiny-collector-linux-amd64 run --api-endpoint http://scrutiny.example.com:8080
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Accéder à l'UI** : `https://scrutiny.example.com` (via [[app-traefik]])
|
|
2. **Vérifier la détection** : la page « Devices » liste tous les disques du serveur
|
|
3. **Lancer un scan manuel** : `docker compose exec scrutiny /opt/scrutiny/bin/scrutiny-collector-metrics run`
|
|
4. **Configurer les notifications** : Settings > Notifications (Discord/Slack/Email)
|
|
5. **Définir la fréquence** : par défaut 1h ; cron possible (`*/30 * * * *`)
|
|
6. **Pour monitorer d'autres hôtes** : installer le collector sur chaque machine, pointer vers l'API centrale
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- **smartd** (smartmontools) — Le daemon SMART natif Linux, mais CLI et notifications mail basiques
|
|
- **Grafana + Telegraf + InfluxDB** — DIY possible mais lourd pour juste le SMART
|
|
- **NAS vendors built-in** (Synology, QNAP) — Limité au NAS lui-même
|
|
- **Zabbix** — Peut faire SMART via scripts, mais bien plus complexe
|
|
|
|
### Comparaison Scrutiny vs autres
|
|
|
|
| Critère | Scrutiny | smartd natif | Zabbix | Telegraf+Influx |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| Self-hosted | ✅ | ✅ | ✅ | ✅ |
|
|
| Web UI moderne | ✅ | ❌ | ✅ | ⚠️ (Grafana) |
|
|
| Historique long terme | ✅ InfluxDB | ⚠️ logs | ✅ | ✅ |
|
|
| Alertes | ✅ | ⚠️ mail | ✅✅ | ⚠️ (Alerta) |
|
|
| Setup | 5 min | 10 min | 1h+ | 1h+ |
|
|
| Multi-host | ✅ | ❌ | ✅ | ✅ |
|
|
| Cible | Disques | Disques | Tout infra | Tout infra |
|
|
|
|
**Verdict** : Scrutiny est **le seul outil qui fait JUSTE le SMART, BIEN, et avec une UI moderne**. Si vous voulez surveiller la santé disque en complément d'[[app-uptime-kuma]] ou [[app-netdata]], c'est l'addition parfaite.
|
|
|
|
### Propriétaires (ce que Scrutiny remplace)
|
|
- **CrystalDiskInfo** — Windows only, pas de remote
|
|
- **Hard Disk Sentinel** — Windows only, payant
|
|
- **Backblaze Personal Drive Stats** — Public, mais pas self-host
|
|
- **Datadog Disk Monitoring** — Inclus dans Datadog (cher)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Auth intégrée** depuis 2023 : login/password (bcrypt) en cookie de session
|
|
- **HTTPS obligatoire** via [[app-traefik]] (l'API expose l'historique disque)
|
|
- **Pas d'API publique** : le collector est l'unique client qui push les métriques
|
|
- **Permissions devices** : `/dev/disk` et `/run/udev` en lecture seule dans le conteneur
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny)
|
|
- [Wiki / FAQ](https://github.com/AnalogJ/scrutiny/wiki)
|
|
- [Release notes](https://github.com/AnalogJ/scrutiny/releases)
|
|
- [Docker Hub](https://hub.docker.com/r/analogj/scrutiny)
|
|
|
|
## Pages Liées
|
|
- [[cat-monitoring]] — Catégorie Monitoring
|
|
- [[app-uptime-kuma]] — Monitoring uptime
|
|
- [[app-netdata]] — Métriques système
|
|
- [[app-traefik]] — Reverse proxy HTTPS
|
|
- [[observabilite]] — Concept d'observabilité
|
|
- [[checklist-monitoring-minimal]] — Checklist de démarrage
|