UGREEN [docker/Scrutiny] Erreur de configuration des paramètres des volumes

  • Vague de SPAM

    Suite à une vague de spam sur le forum, les inscriptions sont temporairement limitées.

    Après votre inscription, un membre de l'équipe devra valider votre compte avant qu'il ne soit activé. Nous sommes désolés pour la gêne occasionnée et vous remercions de votre patience.
Bonsoir

J'ai vérifié ta config. pour apporter quelques modifications.

Scrutiny devrait collecter les données SMART et les afficher dans l’interface web.

Tente ceci pour voir?

===== ===== ===== ===== =====

1/docker-compose.yml

version: '3.8'

services:
scrutiny:
container_name: scrutiny
image: ghcr.io/analogj/scrutiny:master-omnibus
privileged: true
cap_add:
- SYS_RAWIO
- SYS_ADMIN
ports:
- "6070:8080" # Interface Web Scrutiny
- "8086:8086" # InfluxDB Admin
volumes:
- /run/udev:/run/udev:ro
- /volume1/docker/scrutiny:/opt/scrutiny/config
- /volume1/docker/scrutiny/influxdb:/opt/scrutiny/influxdb
devices:
- /dev/nvme0:/dev/nvme0
- /dev/nvme1:/dev/nvme1
- /dev/sda:/dev/sda
- /dev/sdb:/dev/sdb
environment:
- SCRUTINY_WEB_INFLUXDB_INIT_USERNAME=admin
- SCRUTINY_WEB_INFLUXDB_INIT_PASSWORD=admin
- TIMEZONE=Europe/Paris
restart: unless-stopped

===== ===== ===== ===== =====

2/collector.yaml

version: 1
host:
id: "Ugreen-DPX2800"
devices:
- device: /dev/nvme0
type: nvme
- device: /dev/nvme1
type: nvme
- device: /dev/sda
type: sat
- device: /dev/sdb
type: sat

===== ===== ===== ===== =====

Devices corrigés/
tu dois utilisr plutôt: /dev/nvme0 et /dev/nvme1 (les disques bruts), pas les partitions n1.

InfluxDB configuré/
identifiant et mot de passe définis (admin/admin) pour que Scrutiny puisse stocker les données.

Collector.yaml/
doit être placé dans /volume1/docker/scrutiny/ et nommé exactement collector.yaml.

Droits/
assure-toi que le fichier est lisible par le conteneur (chmod 644 collector.yaml).

Avec cette correction, tu devrais voir apparaître les disques dans l’interface web Scrutiny (http://IP_DU_NAS:6070)

Tiens moi au⚡
Bonsoir,
merci pour cette réponse rapide.
Je viens d'essayer mais j'arrive à déployer le container mais après dans le journal "ça boucle" il me semble voir un moment "api not ready" mais ça défile trop vite :D et donc là, je ne sais plus me connecter du tout sur l'interface web.

Pour ce qui est des corrections:
Mon dossier Docker est sur le volume 2 (SSD) c'est pour cela que j'avais volume 2 dans la config sinon ça ne fonctionne pas.
Le fichier collector.yaml est bien dans le dossier Scrutiny qui se trouve dans le dossier Docker.

J'avais bien un user et mdp (je les avais effacé ici) , j'ai enlevé la ligne pour le Token par contre.

je creuse toujours

edit: pour le bouclage c'était le mot de passe qui était trop court, j'vais laissé "Admin" ^^

Donc je reviens au même stage, l'interface vide.
Pour les droits je sais voir ça comment?
:p
 
J'ai été voir dans les permission du fichier collector.yaml et j'ai mis lecture et écriture pour mon nom d'utilisateur c'est bien ça?
Quand je déploie le projet j'ai ça:
1765746761312.png
1765746798900.png
 
Bonjour;)

Nous avons le même NAS UGREEN DXP2800 mais pas la même configuration ni le même montage.

Pour rappel, mon montage est :
- RAID1 logiciel avec 2 SSD Patriot P400 Lite 2000GB (PCIe M2 Gen4 x4)
visibles : /dev/nvme0 et /dev/nvme1
- BASIC pour le HDD1 Seagate BarraCuda ST5000LM000, 5 To, SATA 6 Gbit/s
visible : /dev/sdb
- BASIC pour le HDD2 Seagate BarraCuda ST8000DM004, 8 To, SATA 6 Gbit/s
visible : /dev/sda

Je n’ai pas partitionné mes disques durs magnétiques, configuration simple.

URL1/représente le dashboard (interface utilisateur)
Mon écran de contrôle Scrutiny est visible ici :
http://192.168.?.???:6070/web/dashboard

window2.png

http://192.168.?.???:8086/signin
(InfluxDB v2.2.0 – Server: a2f8538 / Frontend: cc65325)
window3.png

URL2/ sert à accéder directement à l’interface web d’InfluxDB, la base de données que Scrutiny utilise pour stocker les mesures SMART de tes disques
Scrutiny collecte les données SMART (température, cycles, erreurs, etc.) de tes disques, ces données sont envoyées et stockées dans InfluxDB. L’interface web Scrutiny (port 6070) va ensuite lire dans InfluxDB pour afficher les graphiques et tableaux.

L’URL http://IP_DU_NAS:8086/signin te permet d’ouvrir directement InfluxDB pour :
-vérifier que la base est bien initialisée.
-te connecter avec l’utilisateur/mot de passe que tu as défini dans docker-compose.yml.
-créer ou gérer des tokens d’accès (si besoin).
-voir si les données arrivent bien dans la base.

Ton problème est par ici :
-’ça boucle / api not ready’
dans les logs Scrutiny, ça apparaît quand l’interface web essaie de se connecter à InfluxDB mais que la base n’est pas encore prête ou que les identifiants ne passent pas. Comme tu avais mis un mot de passe trop court, InfluxDB refusait de démarrer correctement, d’où ce message en boucle.
-'mon dossier Docker est sur le volume 2' tu as dû adapter le chemin (/volume2/docker/scrutiny) parce que ton NAS est organisé différemment du mien. Ce n’est pas une erreur, juste une différence de montage.
-’j’avais bien un user et mdp, j’ai enlevé la ligne pour le Token’ tu avais bien configuré un utilisateur/mot de passe, mais ensuite t'as supprimé la variable SCRUTINY_WEB_INFLUXDB_TOKEN (qui est optionnelle).
-’edit: mot de passe trop court’ tu as découvert que le problème de boucle venait de là : InfluxDB impose un mot de passe d’au moins 8 caractères. Avec admin, ça ne passait pas!
-’donc je reviens au même stage, l’interface vide’ une fois InfluxDB lancé, Scrutiny démarre mais il ne voit toujours pas de données, probablement parce que les devices ne sont pas correctement collectés ou que le fichier collector.yaml n’est pas lu.
-’pour les droits je sais voir ça comment’ tu as juste mis lecture/écriture mais Docker tourne en root dans le conteneur. Il faut que le fichier soit lisible par tout le monde (chmod 644 collector.yaml), pas seulement par son compte.

La commande chmod 644 collector.yaml sert à définir les permissions d’accès du fichier collector.yaml sous Linux

Tu dois vérifier que : chmod 644 collector.yaml

va dans Docker/Conteneur/scrutiny/ [Ajouter] /bin/bash

Tu dois ouvrir le Terminal du conteneur pour vérifier la présence des fichiers :
collector.yml config.yaml influxd.bolt collector.zip engine influxd.sqlite

Ces fichiers sont ceux de InfluxDB :
influxd.bolt et influxd.sqlite : bases internes d’InfluxDB (métadonnées et stockage).
engine/ cest le moteur de stockage des séries temporelles.
config.yaml : cest la configuration interne d’InfluxDB.
collector.yml / collector.zip (jai zippé mon fichier par securité!) fichiers générés ou utilisés par Scrutiny pour envoyer les données vers InfluxDB.

Copier/coller de mon visuel Terminal (dans le conteneur!)
root@119d306faa27:/opt/scrutiny/web# chmod 644 /opt/scrutiny/influxdb/collector.ymlroot@119d306faa27:/opt/scrutiny/web# ls -l /opt/scrutiny/influxdb/collector.yml-rw-r--r-- 1 root root 211 Aug 19 08:28 /opt/scrutiny/influxdb/collector.ymlroot@119d306faa27:/opt/scrutiny/web#

EN CLAIR
rw- /le propriétaire (root) peut lire et écrire.
r-- /le groupe peut lire.
r-- /les autres peuvent lire

le mode 644 est recommandé : ton fichier est lisible par tous les processus du conteneur, même si un jour Scrutiny ne tourne pas en root

Tu dois revoir ta config. simplifier si possible? eventuellement repartir de 0. Liste moi tes HDD, NVMe, si RAID lequel ou? etc... toute info utile pour que je puisse t'aider!

Egalement copie au format texte ton journal entier Scrutiny pour que je le compare au mien!

Bye Tien moi au ⚡🍎
 

Pièces jointes

  • window6.png
    window6.png
    56.8 KB · Affichages: 3
  • window5.png
    window5.png
    81.3 KB · Affichages: 3
  • window4.png
    window4.png
    40.5 KB · Affichages: 3
  • window1.png
    window1.png
    234.5 KB · Affichages: 3
Dernière édition:
Bonjour, @reinett Encore merci pour ton aide :)

Alors voici:
J'ai 1 HDD en Basic (Volume1) et 1 SSD en Basic également (Volume2).
Docker est installé sur le SSD donc Volume 2


Voici le journal:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/01-timezone
cont-init: info: /etc/cont-init.d/01-timezone exited 0
cont-init: info: running /etc/cont-init.d/50-cron-config
cont-init: info: /etc/cont-init.d/50-cron-config exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun collector-once (no readiness notification)
services-up: info: copying legacy longrun cron (no readiness notification)
services-up: info: copying legacy longrun influxdb (no readiness notification)
services-up: info: copying legacy longrun scrutiny (no readiness notification)
s6-rc: info: service legacy-services successfully started
waiting for influxdb
starting cron
influxdb config file already exists. skipping.
starting influxdb
INFO: custom init already performed
influxdb not ready
ts=2025-12-15T09:35:47.886823Z lvl=info msg="Welcome to InfluxDB" log_id=0~pLhOgW000 version=v2.2.0 commit=a2f8538837 build_date=2022-04-06T17:36:40Z
ts=2025-12-15T09:35:47.887495Z lvl=info msg="Resources opened" log_id=0~pLhOgW000 service=bolt path=/opt/scrutiny/influxdb/influxd.bolt
ts=2025-12-15T09:35:47.887562Z lvl=info msg="Resources opened" log_id=0~pLhOgW000 service=sqlite path=/opt/scrutiny/influxdb/influxd.sqlite
ts=2025-12-15T09:35:47.889562Z lvl=info msg="Checking InfluxDB metadata for prior version." log_id=0~pLhOgW000 bolt_path=/opt/scrutiny/influxdb/influxd.bolt
ts=2025-12-15T09:35:47.889655Z lvl=info msg="Using data dir" log_id=0~pLhOgW000 service=storage-engine service=store path=/opt/scrutiny/influxdb/engine/data
ts=2025-12-15T09:35:47.889682Z lvl=info msg="Compaction settings" log_id=0~pLhOgW000 service=storage-engine service=store max_concurrent_compactions=2 throughput_bytes_per_second=50331648 throughput_bytes_per_second_burst=50331648
ts=2025-12-15T09:35:47.889695Z lvl=info msg="Open store (start)" log_id=0~pLhOgW000 service=storage-engine service=store op_name=tsdb_open op_event=start
ts=2025-12-15T09:35:47.889751Z lvl=info msg="Open store (end)" log_id=0~pLhOgW000 service=storage-engine service=store op_name=tsdb_open op_event=end op_elapsed=0.057ms
ts=2025-12-15T09:35:47.889787Z lvl=info msg="Starting retention policy enforcement service" log_id=0~pLhOgW000 service=retention check_interval=30m
ts=2025-12-15T09:35:47.889805Z lvl=info msg="Starting precreation service" log_id=0~pLhOgW000 service=shard-precreation check_interval=10m advance_period=30m
ts=2025-12-15T09:35:47.890413Z lvl=info msg="Starting query controller" log_id=0~pLhOgW000 service=storage-reads concurrency_quota=1024 initial_memory_bytes_quota_per_query=9223372036854775807 memory_bytes_quota_per_query=9223372036854775807 max_memory_bytes=0 queue_size=1024
ts=2025-12-15T09:35:47.893152Z lvl=info msg="Configuring InfluxQL statement executor (zeros indicate unlimited)." log_id=0~pLhOgW000 max_select_point=0 max_select_series=0 max_select_buckets=0
ts=2025-12-15T09:35:47.896492Z lvl=info msg=Listening log_id=0~pLhOgW000 service=tcp-listener transport=http addr=:8086 port=8086
starting scrutiny
2025/12/15 09:35:52 No configuration file found at /opt/scrutiny/config/scrutiny.yaml. Using Defaults.
___ ___ ____ __ __ ____ ____ _ _ _ _
/ __) / __)( _ \( )( )(_ _)(_ _)( \( )( \/ )
\__ \( (__ ) / )(__)( )( _)(_ ) ( \ /
(___/ \___)(_)\_)(______) (__) (____)(_)\_) (__)
github.com/AnalogJ/scrutiny dev-0.8.1
Start the scrutiny server
time="2025-12-15T09:35:52Z" level=info msg="Trying to connect to scrutiny sqlite db: /opt/scrutiny/config/scrutiny.db\n" type=web
time="2025-12-15T09:35:52Z" level=info msg="Successfully connected to scrutiny sqlite db: /opt/scrutiny/config/scrutiny.db\n" type=web
time="2025-12-15T09:35:52Z" level=info msg="InfluxDB certificate verification: true\n" type=web
time="2025-12-15T09:35:52Z" level=info msg="Database migration starting. Please wait, this process may take a long time...." type=web
time="2025-12-15T09:35:52Z" level=info msg="Database migration completed successfully" type=web
time="2025-12-15T09:35:52Z" level=info msg="SQLite global configuration migrations starting. Please wait...." type=web
time="2025-12-15T09:35:52Z" level=info msg="SQLite global configuration migrations completed successfully" type=web

=>> quand je me connecte à l'interface web, ceci se rajoute dans le journal:

scrutiny | time="2025-12-15T09:47:10Z" level=info msg="172.28.0.1 - 69f126f82bd5 [15/Dec/2025:09:47:10 +0000] \"GET /web/dashboard\" 200 7467 \"\" \"Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0\" (1ms)" clientIP=172.28.0.1 hostname=69f126f82bd5 latency=1 method=GET path=/web/dashboard referer= respLength=7467 statusCode=200 type=web userAgent="Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.
0"
scrutiny | time="2025-12-15T09:47:11Z" level=error msg="An error occurred while retrieving device summary not found: failed to initialize execute state: could not find bucket \"metrics\"" type=web
scrutiny | time="2025-12-15T09:47:11Z" level=error msg="172.28.0.1 - 69f126f82bd5 [15/Dec/2025:09:47:11 +0000] \"GET /api/summary\" 500 17 \"http://192.168.0.253:6070/web/dashboard\" \"Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0\" (26ms)" clientIP=172.28.0.1 hostname=69f126f82bd5 latency=26 method=GET path=/api/summary referer="http://192.168.0.253:6070/web/dashboard" respLength=17 statusCode=500 type=web userAgent="Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0"


Je pense que tu as vu juste au niveau des droits. J'ai essayé (je ne suis pas doué dans un terminal) de faire les commandes comme sur tes screenshot:



Capture d'écran 2025-12-15 104121.pngCapture d'écran 2025-12-15 103232.pngCapture d'écran 2025-12-15 102815.png

As-tu besoin d'autres infos?