LOG4SAS - SAS® 9.2 – LOGGING FACILITY – Mise en pratique
En complément de l'article LOG4SAS, nous vous proposons une mise en pratique de cette fonctionnalité.
Notre but est de créer des fichiers incrémentaux de log qui permettront de tracer toutes les modifications apportées au niveau des droits (ACT) sur un objet.
Il sera alors possible de savoir qui a modifié les droits d'un répertoire (Folder) ou d'une application stockée.
Pour y parvenir, nous allons utiliser une nouvelle fonctionnalité disponible avec la plateforme SAS® 9.2 : SAS Logging Facility
N.B. : Dans le cadre de cet article, l’exemple présenté concerne un environnement UNIX. Sous Windows et Z/Os, vous devrez modifier les chemins ainsi que les variables d’environnement.
Trois étapes
Voici les étapes qui vont être décrites :
- Préparation de l'arborescence qui contiendra nos fichiers générés.
- Modification du fichier logconfig.xml du serveur de métadonnées :
- Ajout de la description de nos nouveaux fichiers de log
- Ajout du contenu de ses fichiers ainsi que son contenu - Redémarrage du serveur de métadonnées pour prendre en compte les modifications.
Création du répertoire cible
Nos fichiers seront stockés sous « /mon_arborescence/ ».
Nous devons donc créer ce répertoire et veiller à ce que l'utilisateur qui exécute les scripts de démarrage du serveur ait les droits d'écriture sur cette arborescence (ici le user sas).
Modification du fichier logconfig.xml
|
Avant toutes modifications : - faites une sauvegarde de ce fichier - connectez-vous avec l'utilisateur à qui appartient ce fichier (ici le user sas) |
Logconfig.xml contient la description des sorties (logs) :
- La description de la structure de chaque log désirée (TAG Appender)
- Les différents événements à enregistrer dans ces fichiers (TAG Logger)
Ouvrez le fichier
Placez-vous juste avant la dernière balise
TAG Appender
Le TAG Appender va nous permettre de déclarer notre nouveau fichier incrémental monitoring_ACT.log. Il sera placé dans le répertoire que nous venons de créer.
Explications :
- TAG Appender : name="LOG_SURVEILLE_ACT" class="RollingFileAppender"
Name correspondant à un identifiant (LOG_SURVEILLE_ACT) qui nous servira plus tard. Ne pas confondre avec le nom du fichier qui sera généré.
Nous spécifions le type de log souhaité : class="RollingFileAppender" – c'est-à-dire un fichier plat. Nous aurions également pu demander d'envoyer ces informations dans les logs du système d'exploitation.
- Append = true
Permet d'écrire les lignes à la suite des autres. Evite le risque d'écraser un fichier déjà existant lors du redémarrage du serveur.
- ImmediateFlush = true
Indique qu'il faut écrire les lignes à la volée. Il est aussi possible d'utiliser un cache, ce qui améliorerait les performances dans le cas de log très volumineuses.
- TimeBasedRollingPolicy
TimeBasedRollingPolicy signifie que le nom du fichier utilisera la date courante. Nous aurions pu demander un nommage basé sur une incrémentation du nom. Par exemple, mon_fichier1.log, mon_fichier2.log, etc.
- fileNamePattern /mon_arborescence/Monitoring_ACT_%d_%S{pid}.log
fileNamePattern spécifie le nom de fichier en sortie. La log s’appelera « Monitoring_ACT_ » suivi de la date (%d) et du numéro du processus Unix (%S{pid}).
Par exemple : Monitoring_ACT_2010-05-17_32447.log
- Layout
Layout décrit le format des lignes enregistrées :
- HeaderPattern
Entête du fichier (première ligne) où vous pouvez faire apparaître du texte et des variables de votre choix. Ici, %S{hostname}, affichera le nom de votre machine.
- ConversionPattern
Format des lignes de la log :
%d Donne la date (2010-05-11 10 :24 :22 ,234)
%-5p Niveau de l’événement récupéré (limité à 5 caractères) : WARN, INFO…
%u L’utilisateur qui a fait la manipulation
%m Récupère le détail de l’événement
Nous avons terminé cette étape. Un fichier de log va être créé mais pour l’instant il sera vide car nous n’avons pas précisé son contenu.
TAG LOGGER
Les événements à enregistrer sont renseignés via la balise LOGGER
Il existe une multitude d’événements que nous pouvons récupérer : ceux concernant la performance des serveurs SAS, l’état des différentes applications SAS, l’administration de la plateforme, etc.
Nous nous intéressons ici aux événements de modifications des droits des objets SAS : Audit.Meta.Security.AccCtrlAdm
Nous allons donc rajouter ces informations juste après le TAG Appender précédemment créé :
Explications :
|
Il existe 6 niveaux de seuil qui permettent de filtrer les informations à enregistrer. Du plus haut au plus bas : • FATAL • ERROR • WARN • INFO • DEBUG • TRACE |
Nous déclarons vouloir récupérer les événements de type Audit.Meta.Security.AccCtrlAdm.
Ils sont enregistrés dans l'appender (fichier) que nous avons déclaré précédemment (identifiant = LOG_SURVEILLE_ACT)
Et nous voulons enregistrer tous les évenements jusqu’au seuil TRACE (voir encart).
Redémarrage des services
Une fois le fichier logconfig.xml modifié, nous le sauvegardons et redémarrons les services SAS.
A présent, si nous regardons dans le répertoire /mon_arboresence/ , il est apparu un nouveau fichier qui ne contient pour l’instant que notre entête.
Tester la modification
Pour nous assurer que tout fonctionne, ouvrons la console d'administration SAS (SMC) et modifions les droits d'un dossier SAS.
En temps réel, notre log a été mise à jour. On découvre deux événements :
- Une ligne de type INFO prévenant que des droits ont été mis à jour sur notre objet.
- Une ligne de type TRACE donnant le détail des droits mis en place
Il est alors aisé, via des applications tierces (IBM TIVOLI® par exemple) de récupérer l'information et de générer les alertes dont vous avez besoin.
Conclusion
Cet exemple ne représente qu'une infime partie du potentiel de LOG4SAS. Nous vous invitons à parcourir la documentation dédiée (cf. références). Vous découvrirez comment ajouter des filtres pour ne faire apparaître que certaines informations ou comment générer des alertes directement dans les journaux d'événements du système d'exploitation.
Références
SAS® 9.2 Logging :
Dan Guimbert
Consultant Support Clients - SAS France

