7. Structured Data IDs (IDs de données structurées)
Ce 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 notion du temps système. Ce SD-ID DEVRAIT être écrit 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. Ceci est une indication au collector ou au 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 être utilisé pour 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 n'est pas présent ou est défini sur "0", l'originator ne connaît pas son fuseau horaire. Si "1", la notion de décalage de fuseau horaire de l'originator est contenue dans le TIMESTAMP.
7.1.2. isSynced
Le paramètre "isSynced" PEUT être utilisé pour indiquer si l'horloge locale de l'originator est synchronisée avec une source de temps fiable, par exemple, via Network Time Protocol [RFC5905]. C'est une PARAM-VALUE contenant un seul caractère, soit "0" si non synchronisé, soit "1" si synchronisé. Si ce paramètre n'est pas présent, l'originator ne sait pas si son horloge locale est synchronisée.
7.1.3. syncAccuracy
Le paramètre "syncAccuracy" PEUT être utilisé pour indiquer la précision de la notion du temps système de l'originator. C'est une PARAM-VALUE contenant un entier décrivant le décalage maximum par rapport à la source de temps autoritaire, en microsecondes. Une valeur de "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érivé de la connaissance de la fréquence de synchronisation de l'horloge. Ceci est OPTIONNEL.
Si le paramètre n'est pas présent, la déviation maximale par rapport à la source de temps autoritaire est inconnue.
7.1.4. Examples (Exemples)
Exemple 1
[timeQuality tzKnown="1" isSynced="1" syncAccuracy="60000"]
Cette STRUCTURED-DATA montre que l'originator est synchronisé avec une source de temps autoritaire. L'originator croit que l'information de temps qu'il fournit est précise à 60 millisecondes près. L'originator 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 de temps autoritaire. Cependant, il connaît 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 de temps autoritaire, mais ne connaît pas son décalage de fuseau horaire.
7.2. origin
Le SD-ID "origin" PEUT être utilisé par un originator, relay ou collector pour indiquer son identité et les limites de l'enclave. Ce SD-ID est destiné à être chaîné, de sorte que chaque relay ou collector qui l'ajoute peut ajouter ses informations à celles déjà existantes.
Les paramètres de ce SD-ID sont:
7.2.1. ip
Le paramètre "ip" PEUT être utilisé pour identifier le périphérique qui a généré le message. La valeur est une adresse IP valide dans le format décrit dans la 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 également introduire un conflit avec d'autres périphériques qui ont été anonymisés de manière similaire. Si l'anonymisation est requise, le message devrait plutôt être anonymisé 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 sert à identifier le type d'originator. Les originators DEVRAIENT inclure ce paramètre.
Un relay DEVRAIT inclure ce paramètre s'il modifie de manière significative la signification du message. En particulier, les relays qui transforment des messages d'un protocole non-syslog en syslog DEVRAIENT inclure ce paramètre.
Lors de la lecture d'un message avec ce paramètre présent, un utilisateur humain peut rechercher l'organisation qui a créé le générateur de messages en consultant les informations d'enregistrement des "SMI Network Management Private Enterprise Codes" à l'IANA.
7.2.3. software
Le paramètre "software" est utilisé pour identifier le produit logiciel qui a généré le message. Cela 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. Example (Exemple)
[origin ip="192.0.2.1" enterpriseId="32473" software="su" swVersion="1.2.3"]
Dans cet exemple, le produit logiciel qui a généré le message est identifié comme "su", version "1.2.3", avec le numéro d'entreprise privé 32473. Le périphérique qui a généré le message a l'adresse IP 192.0.2.1.
7.3. meta
Le SD-ID "meta" PEUT être utilisé pour fournir des méta-informations sur le message. Cela peut être utilisé pour diverses fins, telles que les informations de qualité de service ou dans d'autres cas où il est souhaitable de classer ou d'enrichir le message.
Les paramètres de ce SD-ID sont:
7.3.1. sequenceId
Le paramètre "sequenceId" DEVRAIT être utilisé pour fournir un numéro de séquence unique pour identifier un message. Ce numéro de séquence peut être utilisé pour détecter les messages perdus ou pour assurer l'ordre. Le ID de séquence DEVRAIT être monotone croissant. L'algorithme exact pour cela est spécifique à l'implémentation. Cette PARAM-VALUE DEVRAIT être un ou plusieurs entiers décimaux. Elle PEUT se réinitialiser ou recommencer au début si un expéditeur redémarre.
7.3.2. sysUpTime
Le paramètre "sysUpTime" PEUT être utilisé pour fournir des informations sur la durée de fonctionnement du système. Si l'expéditeur redémarre, cela DEVRAIT être réinitialisé à zéro. Cela peut être utile pour associer des séquences de messages avec des exécutions particulières de périphériques. La valeur de ce paramètre est un entier décimal comptant le nombre de secondes depuis le démarrage du système.
7.3.3. language
Le paramètre "language" est utilisé pour spécifier la langue utilisée dans la partie MSG. Cette PARAM-VALUE DOIT être une balise de langue telle que définie par [RFC5646].
Si la langue du MSG n'est pas connue ou ne peut pas être identifiée, ce paramètre NE DEVRAIT PAS être utilisé.