Avec l'application répandue des systèmes Linux dans les principaux serveurs, les administrateurs système s'appuient de plus en plus sur la surveillance des journaux pour assurer le fonctionnement stable du système. Les modifications des fichiers journaux peuvent contenir des informations d'erreur critiques ou des avertissements système, et la surveillance et l'analyse en temps opportun peuvent éviter efficacement les défaillances potentielles. En tant que langage de script léger, PHP fournit un moyen pratique d'implémenter la surveillance des journaux.
Tout d'abord, nous devons créer un fichier de script PHP dans le système Linux, qui sera utilisé pour surveiller le fichier journal spécifié.
Créez un fichier PHP vierge avec le nom "log_monitor.php" à l'aide d'un éditeur de ligne de commande (tel que vi) et entrez le code suivant:
<?php // Spécifiez le fichier journal à surveiller $logFile = '/var/log/syslog'; // Vous pouvez modifier ce chemin en fonction des conditions réelles // Obtenez la taille initiale du fichier $fileSize = filesize($logFile); // Surveiller en continu les modifications des fichiers journaux while (true) { clearstatcache(); // Effacer le cache d'état du fichier // Obtenez la taille actuelle du fichier $currentSize = filesize($logFile); // Déterminez si le fichier journal a changé if ($currentSize > $ file size) { // Le fichier journal modifie, sortit le dernier contenu $ handle = fopen ($ logfile, 'r'); fseek ($ manche, $ fileSize); // Définissez la position du pointeur de fichier sur la taille initiale $ Content = Fread ($ manche, $ CurrentSize - $ fileSize); // Lire le contenu de journal nouvellement ajouté Fclose ($ manche); // Traiter le contenu du journal, tel que la sortie de la console ou l'écriture dans le fichier journal Echo $ contenu; } // La taille initiale du fichier de mise à jour est la taille actuelle $ fileSize = $ CurrentSize; // Dormez pendant une période de temps pour éviter de lire le sommeil du fichier (1); } ?>
Explication du code:
Après avoir enregistré le code ci-dessus et quitté l'éditeur, exécutez le script PHP dans le système Linux via la commande suivante:
php log_monitor.php
Après l'exécution, le script surveillera en continu le fichier journal spécifié et sortira le nouveau contenu du journal lorsque le fichier change.
Remarque: Avant d'exécuter le script, assurez-vous que PHP est installé correctement et ajoutez son chemin aux variables d'environnement du système afin que le script puisse être exécuté en douceur.
L'exemple de code ci-dessus n'est qu'un script de surveillance de journal de base que vous pouvez personnaliser et optimiser en fonction de vos besoins.
Par exemple, vous pouvez utiliser des expressions régulières pour faire correspondre le contenu du journal spécifique, tel que les journaux d'erreur ou les messages d'avertissement spécifiques, déclenchant ainsi des alarmes ou d'autres mécanismes de traitement. De plus, vous pouvez enregistrer des informations de journal dans la base de données ou les envoyer au système de surveillance à distance.
De plus, pour faire face aux besoins de gestion des journaux plus complexes, vous pouvez envisager d'utiliser des outils d'analyse de journaux professionnels tels que Elasticsearch, Logstash et Kibana, qui peuvent fournir des capacités d'agrégation, de recherche et d'analyse de données plus puissantes.
En utilisant des scripts PHP pour la surveillance des journaux, les administrateurs système peuvent surveiller les fichiers journaux dans le système Linux en temps réel et découvrir et résoudre les problèmes potentiels en temps opportun. Cet article décrit comment rédiger des scripts de surveillance des journaux simples et fournit des suggestions d'extension et d'optimisation, dans l'espoir de vous aider à mieux gérer et analyser les journaux système.