Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Niveau de log et diagnostic

Changer le niveau a chaud

[log]
level = "debug"

Enregistrer le fichier suffit : le niveau change en quelques instants, sans redemarrage, comme pour les fichiers d’utilisateurs et de roles. Sous Unix, kill -HUP applique l’edition sans attendre la surveillance du fichier.

levelEffet
trace, debugplus de detail, pour CraftFileGate seul ; les dependances (russh, hyper, le SDK AWS) restent a info
info (defaut)le fonctionnement normal
warn, error, offmoins de lignes, pour tout le processus, dependances comprises

level prend une seule valeur, pas une chaine de directives. La piste d’audit n’en depend pas : elle reste a info.

Dans [log], seuls level, audit et les refusal_summary_* s’appliquent a chaud ; le reste attend un redemarrage (voir Rechargement).

Qui decide du niveau

SourcePrioriteA chaud
RUST_LOGla plus forte : remplace tout le filtrenon : le niveau reste le sien pour la vie du processus
CRAFT_FILE_GATE_LOG_LEVELpasse avant le fichierle fichier n’est plus suivi tant qu’elle est posee
[log] levelle defautoui

La premiere ligne du journal dit le filtre en vigueur et sa source :

INFO log filter in force  filter="info,craft_file_gate=info,audit=info,opentelemetry_sdk=off" source="config [log] level"

RUST_LOG, pour aller plus loin

RUST_LOG donne le detail d’une dependance, par exemple le trace de russh. Il remplace la chaine entiere, y compris le audit=info que le serveur ajoute toujours : ecrivez-le vous-meme.

RUST_LOG=warn,russh=trace,audit=info
DirectiveCible
craft_file_gate=debugle serveur (le nom du crate, avec des _)
audit=infola piste d’audit ; audit=warn n’en garde que les refus et les erreurs
russh=tracele protocole SSH

Comprendre un refus d’authentification

La ligne d’audit d’un mot de passe refuse ne dit pas pourquoi : distinguer « utilisateur inconnu » de « mot de passe faux » revelerait quels comptes existent, et les journaux voyagent loin. Le detail est au niveau debug, pour l’exploitant seul.

DEBUG local password authentication rejected  username=alice reason="password does not match the stored hash"
DEBUG local password authentication rejected  username=bob reason="no such user in the users file"

debug donne aussi les comptes charges (local user store contents, champ usernames) ; info n’en dit que le nombre (local user store loaded).

Pour verifier un hash sans serveur :

echo -n "mot-de-passe" | craft-file-gate verify-password '$argon2id$v=19$...'

Revenez a info une fois le diagnostic fait. Les autres refus portent leur cause dans reason : Depannage.

Un changement a chaud ecrit INFO log level reloaded (level, source, filter). Sous level = "warn" ou plus severe, ces annonces partent sur stderr, prefixees craft-file-gate: : l’annonce d’un filtre n’est jamais etouffee par lui.