support clients /

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 /Lev1/SASMeta/MetadataServer/logconfig.xml  
représente le répertoire d'installation des fichiers de configuration SAS

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