1 votes

Équilibrage de la charge de Syslog-ng

Je travaille à la mise en place d'un serveur syslog-ng pour accepter les journaux provenant de diverses sources. La configuration générale sera la suivante :

Device1
Device2                               Syslog1
Device3   -->   Load balancer   -->   Syslog2   -->   Shared SAN storage
Device4                               Syslog3
Device5

J'utilise 514/udp et avec cette configuration, je devrais facilement avoir HA et être capable de faire du round robin et de répartir la charge. Ce qui me préoccupe, c'est la façon dont le stockage va être partagé et écrit sur le backend. Idéalement, je voudrais que chaque appareil ait un fichier deviceX.log pour la journée. Que se passe-t-il si syslog1 reçoit un gros fichier journal de l'appareil1 et continue à écrire dans device1.log lorsque syslog2 reçoit un petit fichier journal de l'appareil1 et commence à essayer d'écrire dans le même fichier au même moment ?

J'ai lu que sous Linux, si vous ajoutez le fichier et ne l'ouvrez pas en mode "écriture", vous n'obtiendrez jamais l'erreur de protection en écriture. Je ne suis pas sûr de la manière dont syslog procède.

Mes questions sont donc les suivantes :

  1. Quel système de fichiers partagé recommanderiez-vous pour le SAN afin de partager les boîtes syslog ?
  2. Existe-t-il un meilleur moyen d'envoyer plusieurs serveurs syslog vers un seul fichier ? Si syslog se contente d'annexer, tout devrait bien se passer.

Toute recommandation serait grandement appréciée. Merci d'avance.

0voto

YLearn Points 1237

Je ne sais pas ce que vous utilisez comme équilibreur de charge, mais je vous recommande de configurer une sorte de "stickiness" sur votre équilibreur de charge afin que les journaux de Device1 soient toujours dirigés vers Syslog1, etc.

Cela répondrait à votre préoccupation concernant le fichier journal, mais cela permettrait également d'éviter ce que je considère comme un problème tout aussi grave.

Ce qui me préoccupe dans votre exemple, c'est que s'il y a beaucoup d'entrées de journal passées de Device1 à Syslog1, puis un plus petit nombre passé de Device1 à Syslog2, Syslog2 pourrait être capable d'insérer les messages syslog ultérieurs dans le désordre dans votre fichier journal.

0voto

dyt459 Points 11

J'ai constaté que n'importe quel système de fichiers en grappe, tel que GlusterFS, fonctionne parfaitement pour que plusieurs serveurs écrivent sur un seul fichier. Cependant, en raison de l'infrastructure SAN dont je dispose, cela n'était pas possible. J'ai donc fini par écrire un fichier par jour et par cluster syslog.

Syslog1 --> 2012-07-29-sys01.log
Syslog2 --> 2012-07-29-sys02.log

J'ai ensuite utilisé le logmerge script et un cronjob pour combiner les fichiers et les trier par heure correcte. Le job cron ci-dessous s'exécute le jour après que les fichiers aient fini d'être écrits.

/local/bin/logmerge -f /logs/ date -d yesterday +\%Y-\%m-\%d -sys*.log | gzip -9 -c > /logs/ date -d yesterday +\%Y-\%m-\%d .log.gz && rm -f /logs/ date -d yesterday +\%Y-\%m-\%d -sys*.log

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X