J'ai configuré la journalisation haproxy via rsyslogd en utilisant les conseils de cet article , et tout semble bien fonctionner. Les fichiers journaux reçoivent les messages du journal.
Cependant, chaque message de journal de haproxy apparaît également à /var/log/syslog
. Cela signifie qu'une fois le serveur mis en ligne, le syslog sera tout à fait inutile, car il sera écrasé avec des messages de journal haproxy.
Je voudrais filtrer ces messages /var/log/syslog
. Après avoir parcouru la documentation de rsyslogd, j'ai essayé de changer le fichier /etc/rsyslog.d/50-default.conf
ainsi:
*.*;auth,authpriv.none;haproxy.none -/var/log/syslog
J'ai simplement ajouté la ;haproxy.none
partie. Après avoir redémarré rsyslogd, il a cessé de fonctionner complètement jusqu'à ce que je revienne sur mes modifications.
Qu'est-ce que je fais mal?
rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
& stop
au lieu de& ~
: rsyslog.com/doc/v8-stable/compatibility/v7compatibility.html .L'utilisation de a
& ~
été déconseillée dans la version 7 de rsyslogd, et vous êtes encouragé à l'utiliser à la& stop
place. Vous pouvez en savoir plus à ce sujet dans cette section de la page de compatibilité v7 .Donc pour HAProxy quelque chose comme ça à la place:
Quant à la façon dont cela fonctionne, le
& stop
dit à rsyslogd de rejeter tout message supplémentaire qui correspondait aux règles précédemment mises en correspondance jusqu'à ce point. Pour garantir que cette règle est détectée très tôt, vous pouvez changer le nom du fichier de/etc/rsyslog.d/haproxy.conf
à/etc/rsyslog.d/00-haproxy.conf
.la source
Ok, je l'ai compris. Voici à quoi je
/etc/rsyslog.d/20-haproxy.conf
ressemble:J'ai changé la ligne en
50-default.conf
:Et maintenant, il semble faire ce que je veux.
la source
Il existe une meilleure solution pour la journalisation haproxy.
/dev/log
Selon le manuel officiel, rsyslog doit être configuré pour écouter la prise réseau:
Mais vous ne pouvez utiliser que des sockets rsyslog pour cela:
rsyslog.d / haproxy.conf:
haproxy.cfg:
la source
Je préfère ne pas jouer avec la commande du fichier, alors à la place, j'ajoute un local0.none au . entrée de ligne. La configuration ressemble à:
(Testé sur CentOS 7)
J'espère que ça t'as aidé!
la source