7. Identifiants de Structured Data
Le présent document définit trois SD-ID : timeQuality, origin et meta. D'autres SD-ID peuvent être définis par d'autres documents.
7.1. timeQuality
Le SD-ID "timeQuality" PEUT être utilisé par l'originator pour décrire sa propre notion de l'heure système. Ce SD-ID DEVRAIT être inscrit si l'originator n'est pas correctement synchronisé avec une source de temps externe fiable, ou s'il ne sait pas si son décalage de fuseau horaire est correct. C'est une indication, à destination du collector ou du relay, que le TIMESTAMP pourrait ne pas être correct.
Les paramètres de ce SD-ID sont :
7.1.1. tzKnown
Le paramètre "tzKnown" PEUT servir à indiquer si l'originator connaît son fuseau horaire. C'est une PARAM-VALUE contenant un seul caractère, soit "0" si l'information de fuseau horaire est inconnue, soit "1" si elle est connue. Si ce paramètre est absent ou vaut "0", l'originator ne connaît pas son fuseau horaire. S'il vaut "1", la notion d'offset de fuseau horaire de l'originator est incluse dans le TIMESTAMP.
7.1.2. isSynced
Le paramètre "isSynced" PEUT servir à indiquer si l'horloge locale de l'originator est synchronisée avec une source horaire fiable, par exemple via NTP [RFC5905]. C'est une PARAM-VALUE contenant un seul caractère, soit "0" si non synchronisée, soit "1" si synchronisée. Si ce paramètre est absent, l'originator ne sait pas si son horloge locale est synchronisée.
7.1.3. syncAccuracy
Le paramètre "syncAccuracy" PEUT servir à indiquer la précision de la notion de l'heure système de l'originator. C'est une PARAM-VALUE contenant un entier décrivant l'écart maximal par rapport à la source horaire faisant autorité, en microsecondes. La valeur "60000000" indiquerait une précision d'une minute, tandis que "2000" indique 2 millisecondes. Ce nombre représente l'erreur maximale attendue. Il peut être déduit de la connaissance de la fréquence de synchronisation de l'horloge. Ce paramètre est OPTIONNEL.
S'il est absent, l'écart maximal par rapport à la source faisant autorité est inconnu.
7.1.4. Exemples
Exemple 1
[timeQuality tzKnown="1" isSynced="1" syncAccuracy="60000"]
Cette STRUCTURED-DATA montre que l'originator est synchronisé avec une source horaire faisant autorité. Il estime que l'information temporelle qu'il fournit est précise à 60 millisecondes près. Il connaît son fuseau horaire.
Exemple 2
[timeQuality tzKnown="1" isSynced="0"]
Cette STRUCTURED-DATA montre que l'originator n'est pas synchronisé avec une source horaire faisant autorité. Il connaît néanmoins son décalage de fuseau horaire.
Exemple 3
[timeQuality tzKnown="0" isSynced="1" syncAccuracy="60000"]
Cette STRUCTURED-DATA montre que l'originator est synchronisé avec une source horaire faisant autorité, mais ne connaît pas son décalage de fuseau horaire.
7.2. origin
Le SD-ID "origin" PEUT être utilisé par un originator, un relay ou un collector pour indiquer son identité et les frontières d'enclave. Ce SD-ID est conçu pour être chaîné, de sorte que chaque relay ou collector qui l'ajoute puisse compléter l'information existante.
Les paramètres de ce SD-ID sont :
7.2.1. ip
Le paramètre "ip" PEUT servir à identifier le périphérique qui a émis initialement le message. La valeur est une adresse IP valide au format décrit en section 6.2.4. Les adresses anonymisées NE DEVRAIENT PAS être envoyées, car elles ne fournissent pas d'informations de dépannage utiles. Cela peut aussi entrer en conflit avec d'autres périphériques anonymisés de la même manière. Si une anonymisation est requise, elle devrait plutôt être effectuée au niveau d'un relay ou d'un collector.
7.2.2. enterpriseId
Le paramètre "enterpriseId" DOIT être un « SMI Network Management Private Enterprise Code », maintenu par l'IANA, dont le préfixe est iso.org.dod.internet.private.enterprise (1.3.6.1.4.1). Le numéro qui suit DOIT être unique et DOIT être enregistré auprès de l'IANA conformément à [RFC5226]. La présence de ce paramètre permet d'identifier le type d'originator. Les originators DEVRAIENT inclure ce paramètre.
Un relay DEVRAIT inclure ce paramètre s'il modifie significativement le sens du message. En particulier, les relays qui transforment des messages d'un protocole non syslog vers syslog DEVRAIENT inclure ce paramètre.
À la lecture d'un message comportant ce paramètre, un opérateur humain peut consulter les informations d'enregistrement des « SMI Network Management Private Enterprise Codes » à l'IANA pour identifier l'organisation à l'origine du générateur de messages.
7.2.3. software
Le paramètre "software" est utilisé pour identifier le produit logiciel qui a généré le message. Il DEVRAIT contenir le nom du produit, mais PEUT contenir d'autres informations. Un relay NE DEVRAIT PAS modifier ce paramètre.
7.2.4. swVersion
Le paramètre "swVersion" est utilisé pour identifier la version du produit logiciel qui a généré le message. Un relay NE DEVRAIT PAS modifier ce paramètre.
7.2.5. Exemple
[origin ip="192.0.2.1" enterpriseId="32473" software="su" swVersion="1.2.3"]
Dans cet exemple, le produit logiciel à l'origine du message est identifié comme "su" version "1.2.3", avec le numéro privé d'entreprise 32473. Le périphérique qui a émis le message a pour adresse IP 192.0.2.1.
7.3. meta
Le SD-ID "meta" PEUT servir à fournir des méta-informations sur le message, à diverses fins (qualité de service, classification ou enrichissement, etc.).
Les paramètres de ce SD-ID sont :
7.3.1. sequenceId
Le paramètre "sequenceId" DEVRAIT servir à fournir un numéro de séquence unique permettant d'identifier un message. Il peut être utilisé pour détecter des messages perdus ou pour garantir un ordre. L'identifiant de séquence DEVRAIT être strictement croissant. L'algorithme exact est laissé à l'implémentation. Cette PARAM-VALUE DEVRAIT être un ou plusieurs entiers décimaux. Elle PEUT boucler ou repartir à zéro si l'émetteur redémarre.
7.3.2. sysUpTime
Le paramètre "sysUpTime" PEUT fournir l'information de durée d'activité du système. Si l'émetteur redémarre, cette valeur DEVRAIT être remise à zéro. Cela peut être utile pour associer des séquences de messages à des cycles d'exécution particuliers du périphérique. La valeur de ce paramètre est un entier décimal donnant le nombre de secondes écoulées depuis le démarrage du système.
7.3.3. language
Le paramètre "language" est utilisé pour spécifier la langue de la partie MSG. Cette PARAM-VALUE DOIT être une étiquette de langue conforme à [RFC5646].
Si la langue de la MSG n'est pas connue ou ne peut être identifiée, ce paramètre NE DEVRAIT PAS être utilisé.