Standards:SMIRK LOG1106
Statut de ce document discussion
Cette demande de commentaires (SMIRK pour SepaMail Internal Request for Komment) spécifie les règles communes de journalisation. Ce SMIRK est un standard de la communauté SEPAmail, spécifié et maintenu par le scheme SEPAmail.
Ce document est en statut discussion.
Introduction
La journalisation consiste à inscrire des informations permettant d'externaliser des fonctions de :
- supervision de l'exploitation
- vérification du fonctionnement protocolaire de SEPAmail
- réalisation de piste d'audit
- contrôle de la fraude interne
- authentification des échanges par contrôle d'huissier de justice
Cette journalisation doit permettre ces fonctions externes dans le respect des exigences fonctionnelles de l'exploitation SEPAmail, notamment en terme de sécurité, qualité de service et confidentialité.
Ce document spécifie les règles à mettre en œuvre dans le cadre énoncé ci-dessus.
Les principes
Les principes retenus pour la journalisation sont :
- l'agrégation possible avec la syslog du système d'exploitation
- le confinement personnalisé
- pas d'écriture possible si ce n'est à la fin du fichier
- la séparation possible des journaux sur paramétrage
- des niveaux
- un utilisateur dédié avec des droits restreints
- une rotation des journaux après archivage
- une piste sobre et claire, en anglais, complète permettant d'agréger des journaux sans confusion de doublons ou de perte d'information.
- un horodatage « Date Heure Format GMT »
- des bonnes pratiques conformes à la RFC 5424[1]
Les niveaux
On utilise la facilité et la sévérité de la RFC 5424, soit : 2 (mail system) pour la facilité et les sévérités résumées dans le tableau ci-dessous :
| Sévérité | Description |
|---|---|
| 0 | Emergency: system is unusable |
| 1 | Alert: action must be taken immediately |
| 2 | Critical: critical conditions |
| 3 | Error: error conditions |
| 4 | Warning: warning conditions |
| 5 | Notice: normal but significant condition |
| 6 | Informational: informational messages |
| 7 | Debug: debug-level messages |
Les niveaux 0 à 4 sont essentiellement utilisés pour prévenir l'exploitation de SEPAmail.
Les niveaux 5 et 6 sont utilisés respectivement pour les traces signifiantes autour du protocole d'échange SEPAmail (réception de missive, émission de missive etc...).
Le niveau 7 sert exclusivement à la recherche et la réparation d'anomalie.
La structure de l'information
L'information est structurée selon la RFC 5424 avec les éléments suivants.
The syslog message has the following ABNF [RFC5234] definition:
SYSLOG-MSG = HEADER SP STRUCTURED-DATA [SP MSG]
HEADER = PRI VERSION SP TIMESTAMP SP HOSTNAME
SP APP-NAME SP PROCID SP MSGID
PRI = "<" PRIVAL ">"
PRIVAL = 1*3DIGIT ; range 0 .. 191
VERSION = NONZERO-DIGIT 0*2DIGIT
HOSTNAME = NILVALUE / 1*255PRINTUSASCII
APP-NAME = NILVALUE / 1*48PRINTUSASCII
PROCID = NILVALUE / 1*128PRINTUSASCII
MSGID = NILVALUE / 1*32PRINTUSASCII
TIMESTAMP = NILVALUE / FULL-DATE "T" FULL-TIME
FULL-DATE = DATE-FULLYEAR "-" DATE-MONTH "-" DATE-MDAY
DATE-FULLYEAR = 4DIGIT
DATE-MONTH = 2DIGIT ; 01-12
DATE-MDAY = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
; month/year
FULL-TIME = PARTIAL-TIME TIME-OFFSET
PARTIAL-TIME = TIME-HOUR ":" TIME-MINUTE ":" TIME-SECOND
[TIME-SECFRAC]
TIME-HOUR = 2DIGIT ; 00-23
TIME-MINUTE = 2DIGIT ; 00-59
TIME-SECOND = 2DIGIT ; 00-59
TIME-SECFRAC = "." 1*6DIGIT
TIME-OFFSET = "Z" / TIME-NUMOFFSET
TIME-NUMOFFSET = ("+" / "-") TIME-HOUR ":" TIME-MINUTE
STRUCTURED-DATA = NILVALUE / 1*SD-ELEMENT
SD-ELEMENT = "[" SD-ID *(SP SD-PARAM) "]"
SD-PARAM = PARAM-NAME "=" %d34 PARAM-VALUE %d34
SD-ID = SD-NAME
PARAM-NAME = SD-NAME
PARAM-VALUE = UTF-8-STRING ; characters '"', '\' and
; ']' MUST be escaped.
SD-NAME = 1*32PRINTUSASCII
; except '=', SP, ']', %d34 (")
MSG = MSG-ANY / MSG-UTF8
MSG-ANY = *OCTET ; not starting with BOM
MSG-UTF8 = BOM UTF-8-STRING
BOM = %xEF.BB.BF
APP-NAME
Le nom de l'application est celui du composant logiciel SEPAmail qui génère la piste de journalisation :
- SMART
- SMILE
- RUBIS
- GEMME
- SAPPhire
PROCID
Remarque : reprendre la fonctionnalité de reprise en cas de reboot avec l'identifiant de l'id du processus ?
MSGID
Remarque : lister les différents types de messagepossibles : MsvNomIN, MsvNomOut, MsvAckIn etc...
STRUCTURED-DATA
Remarque : il faut spécifier les normes communes.
On y retrouve au moins l'information suivante, selon les cas :
- condensat de la missive
- signature de la missive
- champ to et from de l'enveloppe SMTP
- code erreur avec description succincte en anglais
- MsvRcv et MsvSnd (smart et smile)
- MsgRcv et MsgSbd (rubis, gemme et sapphire)