haproxylogging到系统日志

我在ubuntu 14.04上通过apt-get安装haproxy 1.5,通过ppa:vbernat/haproxy-1.5 http://haproxy.debian.net/

问题是它logging到/var/log/syslog而不是/var/log/haproxy.log

设置基本上是默认的:

/etc/haproxy/haproxy.cfg

 global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon # Default SSL material locations ca-base /etc/ssl/certs crt-base /etc/ssl/private # Default ciphers to use on SSL-enabled listening sockets. # For more information, see ciphers(1SSL). ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL ssl-default-bind-options no-sslv3 defaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http 

/etc/rsyslog.d

 # Create an additional socket in haproxy's chroot in order to allow logging via # /dev/log to chroot'ed HAProxy processes $AddUnixListenSocket /var/lib/haproxy/dev/log # Send HAProxy messages to a dedicated logfile if $programname startswith 'haproxy' then /var/log/haproxy.log &~ 

默认的haproxy.conf文件在全局设置 – global下提供了清晰的说明。 在这里,我复制粘贴它给你 –

 #------------------------------------------------- --------------------
 # 全局设置
 #------------------------------------------------- --------------------
全球
     #将这些消息放在/var/log/haproxy.log中
     # 需要:
     #
     #1)configurationsyslog接受networking日志事件。 这个做完了
     #join'-r'选项到SYSLOGD_OPTIONS中
     #/ etc / sysconfig / syslog
     #
     #2)configurationlocal2事件去到/var/log/haproxy.log
     #文件。 可以添加如下所示的行
     #/ etc / sysconfig / syslog
     #
     #

以我的情况为例,我在CentOS 6.6中运行haproxy,使用相同的syslogd服务器,必须执行以下操作才能login到/var/log/haproxy.log:

  1. 将下面的行添加到/etc/rsyslog.d/haproxy.conf

      local2。* /var/log/haproxy.log 
  2. 在服务器上启用syslogd日志logging –

 #提供UDP系统日志接收
 $ ModLoad imudp
 $ UDPServerRun 514
 $ UDPServerAddress 127.0.0.1

非常棘手。 :-)这里是答案:

注意/etc/rsyslog.d的文件它说要将haproxylogging到/var/log/haproxy.log但是,如果不重新启动rsyslog,这将不会生效:

 service rsyslog restart 

/etc/rsyslog.d注释掉这一行

 # Send HAProxy messages to a dedicated logfile if $programname startswith 'haproxy' then /var/log/haproxy.log 

主要的问题是chroot haproxy将无法访问/dev/log ,为了避免这个问题,你可以:

  • 按照其他消息中的描述,启用系统日志侦听UDP套接字(通常在端口514上)
  • 创build目录/var/lib/haproxy/dev并将/dev绑定选项挂载到/var/lib/haproxy/dev

它以任何方式工作。