Je viens d'installer haproxy sur mon serveur de test.
Existe-t-il un moyen de lui faire écrire ses journaux dans un fichier local, plutôt que syslog?
C'est uniquement pour les tests, donc je ne veux pas commencer à ouvrir les ports / encombrer syslog avec toutes mes données de test.
Malheureusement, les seules informations que je peux trouver tournent autour de la connexion à un serveur syslog.
J'ai essayé d'utiliser:
log /home/user/ha.log local0
dans ma config. Mais cela m'a dit:
[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)
Quand j'ai redémarré. J'ai donc créé le fichier avec touch /home/user/ha.log
et redémarré à quel point j'ai obtenu:
[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)
Est-ce possible, ou vais-je devoir configurer syslog, etc. pour voir mes données de test?
Réponses:
Haproxy ne prend tout simplement pas en charge la journalisation dans des fichiers. Comme indiqué dans la documentation ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), l'instruction "log" prend comme premier paramètre une adresse. Si c'est un fichier, c'est un socket Unix et HAProxy parlera au format syslog à ce socket. Haproxy est conçu comme ceci car sa responsabilité est de traiter les requêtes par proxy, pas d'écrire des fichiers, il délègue l'écriture des fichiers journaux à syslog. Si vous ne voulez pas jouer avec votre machine, vous pouvez par exemple installer logstash et exécuter:
logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }'
et ajouter:log /tmp/haprxoy_log.sock
dans votre haproxy.cfg pour le tester.la source
Vous pouvez modifier le fichier de configuration du journal haproxy sous
/etc/rsyslog.d/
pour pointer le fichier vers le chemin que vous souhaitez. Pas sûr de l'autre distribution. Pour moi, j'utilise Debian. J'ai changé/etc/rsyslog.d/49-haproxy.conf
pour pointer vers/var/log/haproxy/haproxy.log
,Vous devez également mettre à jour le chemin d'accès
/etc/logrotate.d/haproxy
au nouveau chemin d'accès. Pour qu'il tourne et comprime le fichier journal dans le chemin nouvellement configuré à l'aide degzip
.Redémarrez ensuite rsyslog.service.
Le
haproxy.log.*
fichier sera maintenant dans le/var/log/haproxy/
répertoire.la source
Vous avez essayé de configurer dans le répertoire de base de l'utilisateur, haproxy n'a pas l'autorisation d'accéder au répertoire de base de l'utilisateur, ce qui cause un problème.
Essayez à la place dans un autre emplacement, créez un répertoire dans
/var/<directory>
la source
sudo touch /var/log/ha.log
et ajoutélog /var/log/ha.log local0
à ma configuration, mais j'ai eu la même erreur que ci-dessusconnection refused
.'log' expects <address> and <facility> as arguments.
besoin de quelque chose. Selon les instructions<facility> must be one of the 24 standard syslog facilities
(qui, je pense, peuvent faire partie du problème)