Table of Contents
Windows - Log file / Fichier de log
Le contrôle Windows - Log file (ou Windows - Fichier de log en français) peut partir en timeout lors de l'analyse de fichiers de plus de 80MB. Il n'est pas possible de faire de recherche de mots clés avec et sans espaces en même temps car il n'y a pas de séparateur de mot clés.
J'ai écrit un petit programme qui permet de faire des recherche dans des fichiers de logs sans les limitations du contrôle de base. Vous pouvez le télécharger ici. Ajouter le lien
Syntaxe
MyWindowsLogFile.exe /F Filename /K Filename [/E Encoding] [/I] [/H] [/M Mode]
/F FileName
Spécifie le fichier de log à analyser
/K Filename
Spécifie un fichier contenant la liste des mots clés à rechercher dans le fichier de log. C'est un fichier à créer avec le bloc-notes, avec un mot clé par ligne. A titre d'exemple voici le contenu du fichier Oracle.Warning:
- Oracle.Warning
ORA-01149 ORA-01555 ORA-01562 Checkpoint not complete
[/E Encoding]
Spécifie l'encodage du fichier de log. La valeur de Encoding peut avoir une des valeurs suivantes:
ANSI | Encodage par défaut sous Windows |
---|---|
ASCII | Encodage par défaut sous DOS |
Default | Idem à ANSI |
BigEndianUnicode | UTF-16 avec l'ordre d'octets “big-endian” |
Unicode | UTF-16 avec l'ordre d'octets “little-endian” |
UTF7 | UTF-7 |
UTF8 | UTF-8 |
Ce paramètre est optionnel, il ne faut l'ajouter uniquement si vous rencontrez une erreur du genre:
EEncodingError: No mapping for the Unicode character exists in the target multi-byte code page
Dans ce cas, commencer par utiliser /E ANSI (par défaut le programme va utiliser Unicode pour les les fichiers)
[/I]
Si ce paramètre est présent, la recherche des mots clés s'effectue sans tenir compte de la casse (MAJUSCULES/minuscules).
[/H]
Si ce paramètre est présent, n'affiche pas les statistiques a la fin de l'analyse.
Voici un exemple de statistiques affichées
Analyzed file .......................... : ..\..\Sample\alertgwd.log Keyword file ........................... : ..\..\Sample\Oracle.Warning Last line number of the analyzed file .. : 767820 Number of keywords found ............... : 0 Date of last run ....................... : 04.09.2023 22:10:42 Running time ........................... : 00:00:00 MyWindowsLogFile 1.0.3 (c)2023 by Stephane Claus
[/M Mode]
Pour le moment, il n'y a qu'un seul mode qui est pris en compte:
ORAALERT | Oracle Alert Log file |
---|
Lorsque l'option Mode est active, tout le bloc d'erreur est affiché, depuis la date de début jusqu'à la ligne contenant le mot clé.
Si cette option n'est pas active, seule la ligne avec le mot clé recherché est affiché.
Pour la prise en compte avancée d'autres fichiers de log, contactez-moi.
Fonctionnement du programme
Lors de la 1ère analyse du fichier de log, aucun mot clé n'est recherché. Le fichier de log est juste parcouru afin d'en trouver la dernière ligne. Pour un fichier de 80MB, cela prends moins de 2 secondes.
La date de modification du fichier de log ainsi que la no de la dernière ligne sont sauvegardé dans un fichier ini:
[cd066a38c477d67a960c15a9ae98fcfe - 0775d969fef0f6e3bc6a723c7a2dcdfd] File=..\..\Sample\alertgwd.log KeyWord=..\..\Sample\Oracle.Critical LastRun=04.09.2023 22:10:42 Index=767820 FileSize=45778335 FileAge=01.09.2023 15:42:54
- La section est une concaténation d'un hash MD5 du nom du fichier de log ainsi que du hash MD5 du fichier de mots clés
- File + KeyWord → Le nom des fichiers “en clair” sont stocké dans le fichier (valeurs informatives, pas utilisée par le programme)
- LastRun → Date de dernière analyse du fichier de log (valeur informative, pas utilisée par le programme)
- Index → No de la dernière ligne du fichier de log
- FileSize → Taille du fichier de log
- FileAge → Date de dernière modification du fichier de log
Lors de l'exécution suivante du programme (sur le même fichier de log / avec le même fichier de mots clés), il y a une première vérification qui est réalisée: Est-ce que le fichier de log a changé (soit taille ou date de modification différente de ce qui se trouve dans le fichier INI) ?
Si le fichier n'a pas été changé, aucune analyse n'est effectuée et le message suivant s'affiche:
None of the specified keywords were found in the file. The file has not been modified since the last analysis, no verification done.
Dans le cas contraire, le fichier est analyse depuis la dernière ligne lue jusqu'à la fin du fichier. Là il y a deux possibilités:
- 1 aucun mot clé trouvé dans le fichier de log et le message suivant s'affiche
None of the specified keywords were found in the file.
- 2 un des mots clés a été trouvé, dans ce cas il y a un message de ce style qui est affiché
Keyword "Checkpoint not complete" found on line 1508514 2023-08-31T08:10:56.546161+02:00 Checkpoint not complete
Utilisation dans Cockpit ITSM
Dans Cockpit ITSM; il faut créer un contrôle de type Windows - Custom command - Output (Windows - Commande spécifique - Sortie standard) et faire un appel du programme
- Faire un appel du programme avec les bons paramètres
- Le résultat du contrôle doit être inversé
- Changer le sujet pour qu'il soit plus parlant
- Déclencher une alerte si la chaîne de caractères None of the specified keywords were found in the file. est trouvée
- Ce n'est pas une expression régulière