1. 首页
  2. 系统运维
  3. Linux

HAProxy日志重复记录messages和错误输出到终端的优化

前一篇文章介绍了haproxy日志配置的方法,但是使用过程碰到两个问题。第一个日志会重复记录到/var/log/messages和/var/log/haproxy.log两个文件,第二个haproxy打开check检查,后端服务器关闭后会有错误日志输出到终端。

例如:

“Message from syslogd@zhangn.com at Jul 9 14:39:18 ... haproxy[4403]: backend server1 has no server available!”。

一开始博主一直在haproxy中找相关文档的配置,但其实这两个问题都是rsyslog错误配置引起的。

日志重复记录

打开/var/log/messages日志,发现大量haproxy的info级别日志被重复记录。打开rsyslog的配置文件 /etc/rsyslog.conf,发现类似如下行:

*.info;mail.none;authpriv.none;cron.none        /var/log/messages

*.info:表示所有设备的info级别日志都会记录到messages,所以就难怪会重复记录haproxy日志了。那么可以通过修改这条规则来排除haproxy设备的记录。

*.info;mail.none;authpriv.none;cron.none;local3.!info        /var/log/messages

假设haproxy日志设备名是local3,那么local3.!info就会把haproxy的日志排除。重复记录的问题解决。

错误日志输出到终端

这个问题其实很影响使用体验,你可能好好的在终端输入命令,突然跳出一句“Message from syslogd@zhangn.com at Jul 9 14:39:18 … haproxy[4403]: backend server1 has no server available!”,只能ctrl+c了。那么应该如何关闭haproxy错误日志输出到console终端呢?其实还是rsyslog的配置。

依然打开 /etc/rsyslog.conf,找到

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

omusrmsg会通知紧急消息给所有用户,参考:https://www.rsyslog.com/doc/v8-stable/configuration/modules/omusrmsg.html,所以当haproxy后端server无法访问的时候,就会通过emerg紧急级别通知到终端用户。

如果你和我一样不想这样被打开,那么可以把错误日志写入到messages中,例如:

# Everybody gets emergency messages
#*.emerg                                                 :omusrmsg:*
*.emerg                                                 /var/log/messages

最后,修改完两处配置后,重启rsyslog服务后即可生效。

haproxy日志开启配置:http://blog.nbqykj.cn/?p=3256.html

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code