Le format ULM est un format qui permet de fixer le sens de chaque
information présente dans une ligne de journalisation. Le format est
en cours de normalisation. Sa version la plus à jour au 1er février 1997
(<draft-abela-ulm-01.txt>) est donnée en annexe.
Le pricipe du format ULM est simple: toute information est précédée
d'un mot-clé qui précise son type. Un nombre tout seul n'a pas
de sens, mais PS=3652 indique quel processus est concerné.
De même, le nom gandalf peut correspondre à n'importe quoi,
alors que SRC.USR=gandalf désigne un utilisateur,
PRG=gandalf un programme, et DOC=gandalf un nom
de fichier.
Chaque ligne d'ULM est une suite de couples nom=valeur,
où nom est un mot-clé court et normalisé qui décrit le type de
valeur. Par exemple, PRG=ftpd LVL=Usage PS=10359 CMD=RETR
DOC=x11.tar.gz décrit une utilisation du serveur ftp, processus
10359, pour télécharger le fichier x11.tar.gz.
Si une valeur contient des espaces, elle doit être mise
entre guillemets ("").
Une trentaine de champs sont prédéfinis, dont 4 obligatoires. Voici une description succinte de quelques champs très utilisés:
LVL (obligatoire). Indique le niveau (LeVeL) d'importance
de la ligne. Les différents niveaux possibles sont:
Emergency. Cas de panique, à afficher sur les
écrans de tous les utilisateurs.Alert. Problème à corriger immédiatement.Error. Problème non urgent qui a surgit dans le
déroulement d'un programme système.Warning. Problème qui a surgit dans le fonctionnement
interne d'un programme.Auth. Une authentification a eu lieu. Si le champ
STAT (statut) ne donne pas plus d'informations, c'est que cette
authentification a échoué.Security. Le système a utilisé une règle de protection
de base, dont le résultat est donné dans STAT.Usage. Un programme a été utilisé, de façon normale.
Ce message décrit une utilisation complète, en précisant la durée
si l'utilisation n'est pas instantanée. Un messages qui n'indique
que le début ou la fin d'une utilisation est plutôt du niveau
Debug.System. Un programme a été utilisé, mais pas le
système. Aucun utilisateur (sauf, indirectement, l'administrateur),
n'est à l'origine de cette utilisation.Important. Un évènement, à priori sans conséquence
immédiate, a eu lieu. Cet évènement pourrait s'avérer être
important dans le futur, comme le changement de configuration
d'un routeur, par exemple.Debug. Message sans importance dans le déroulement
normal des choses.HOST (obligatoire). Indique le nom du
matériel à l'origine du message.
DATE (obligatoire). Moment instantanné de l'évènement.
Si l'évènement dure dans le temps, plusieurs ULM doivent être
générés à différentes dates, ou le champ DUR doit être utilisé.
PRG (obligatoire). Indique le nom du logiciel à
l'origine du message. S'il s'agit d'un élément particulier
d'une suite logicielle, le nom doit être indiqué de façon
hiérarchique: suite.logiciel.sous-logiciel.
DUR. Durée (en secondes) de l'évènement qui s'est
terminé à DATE. Ce champ est obligatoire si l'ULM annonce la fin
d'un évènement commencé plus tôt.
PS. Numéro du processus à l'origine de l'ULM. Sur
certains système, ce numéro n'est pas unique, mais si DUR est
précisé, PS est unique sur cette durée.
CNT. Nombre d'occurence. 1 par défaut.
VOL. Volume en octets.
CMD. Commande lancée.
PROT. Protocole utilisé.
DOC. Document utilisateur concerné (nom de fichier,
URL, Message-ID).
MSG. Ce champ peut contenir toute information qui
n'a pas sa place ailleurs.