Comment analysez-vous les fichiers journaux des machines UNIX / Linux? Nous exécutons plusieurs centaines de serveurs qui génèrent tous leurs propres fichiers journaux, soit directement, soit via syslog. Je cherche une solution décente pour les agréger et sélectionner les événements importants. Ce problème se décompose en 3 composants:
1) Transport de messages
La méthode classique consiste à utiliser syslog pour consigner les messages sur un hôte distant. Cela fonctionne bien pour les applications qui se connectent à syslog mais moins utile pour les applications qui écrivent dans un fichier local. Les solutions pour cela peuvent inclure la connexion du journal des applications à un FIFO connecté à un programme pour envoyer le message à l'aide de syslog, ou en écrivant quelque chose qui accueillera les fichiers locaux et enverra la sortie à l'hôte syslog central. Cependant, si nous nous donnons la peine d'écrire des outils pour envoyer des messages dans syslog, serait-il préférable de remplacer le tout par quelque chose comme Scribe de Facebook qui offre plus de flexibilité et de fiabilité que syslog?
2) Agrégation de messages
Les entrées de journal semblent appartenir à l'un des deux types: par hôte et par service. Les messages par hôte sont ceux qui se produisent sur une machine; pensez aux pannes de disque ou aux connexions suspectes. Les messages par service se produisent sur la plupart ou la totalité des hôtes exécutant un service. Par exemple, nous voulons savoir quand Apache trouve une erreur SSI mais nous ne voulons pas la même erreur de 100 machines. Dans tous les cas, nous ne voulons voir qu'un seul de chaque type de message: nous ne voulons pas 10 messages indiquant que le même disque est en panne, et nous ne voulons pas de message chaque fois qu'un SSI cassé est atteint.
Une approche pour résoudre ce problème consiste à regrouper plusieurs messages du même type en un sur chaque hôte, à envoyer les messages à un serveur central, puis à regrouper les messages du même type en un événement global. SER peut le faire, mais il est difficile à utiliser. Même après quelques jours de tripotage, je n'avais que des agrégations rudimentaires et je devais constamment rechercher la logique utilisée par SER pour corréler les événements. C'est un truc puissant mais délicat: j'ai besoin de quelque chose que mes collègues peuvent ramasser et utiliser dans les plus brefs délais. Les règles SER ne répondent pas à cette exigence.
3) Génération d'alertes
Comment dire à nos administrateurs quand quelque chose d'intéressant se produit? Envoyer la boîte de réception du groupe? Injecter dans Nagios?
Alors, comment résolvez-vous ce problème? Je n'attends pas de réponse sur une assiette; Je peux travailler moi-même sur les détails, mais une discussion de haut niveau sur ce qui est sûrement un problème commun serait formidable. Pour le moment, nous utilisons un méli-mélo de tâches cron, syslog et qui sait quoi d'autre pour trouver des événements. Ce n'est pas extensible, maintenable ou flexible et en tant que tel, nous manquons beaucoup de choses que nous ne devrions pas.
Mise à jour: nous utilisons déjà Nagios pour la surveillance, ce qui est idéal pour les hôtes / services de test / etc détectés, mais moins utile pour supprimer les fichiers journaux. Je sais qu'il existe des plugins de journalisation pour Nagios, mais je suis intéressé par quelque chose de plus évolutif et hiérarchique que les alertes par hôte.
la source
Réponses:
J'ai utilisé trois systèmes différents pour centraliser les journaux:
Pour # 3, j'utilise généralement syslog-ng pour transférer les messages de chaque hôte directement dans Splunk. Il peut également analyser directement les fichiers journaux, mais cela peut être un peu pénible.
Splunk est assez génial pour rechercher et classer vos journaux. Je n'ai pas utilisé splunk pour les alertes de journal, mais je pense que c'est possible.
la source
Vous pouvez jeter un œil à OSSEC, un HIDS open source complet, il analyse les journaux et peut déclencher des actions ou envoyer des e-mails sur les alertes. Les alertes sont déclenchées par un ensemble de règles simples basées sur XML, de nombreuses règles prédéfinies pour différents formats de journaux sont incluses et vous pouvez ajouter vos propres règles
http://www.ossec.net/
la source
Jetez un oeil à Octopussy . Il est entièrement personnalisable et semble répondre à tous vos besoins ...
PS: je suis le développeur de cette solution.
la source
Vous devez examiner un système de surveillance, par exemple Zenoss Core . Entre autres choses, il est dit sur la page d'introduction:
Voir quel-outil-utilisez-vous-pour-surveiller-vos-serveurs .
la source