Hi,
I wanted to add the uniq-id logging to the http-log format, I just
copied the format
string from src/log.c but I got different log entries. (see below)
I also needed to capture more then 63 bytes so I have build HAProxy
like this
make TARGET=linux26 USE_LINUX_SPLICE=1 USE_STATIC_PCRE=1 # and added
SMALL_OPTS = -DCAPTURE_LEN=256
After rebuild I still get the warning that the I can only capture 63
bytes.
I have change include/common/defaults.h to
###
// reserved buffer space for header capture
#ifndef CAPTURE_LEN
#define CAPTURE_LEN 64
#endif
###
and rebuild it.
default format %Ci:%Cp [%t] %f %b/%s %Tq/%Tw/%Tc/%Tr/%Tt %st %B
%cc %cs %tsc
%ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs %{+Q}r
my log-format %Ci:%Cp\ [%t]\ %f\ %b/%s\ %Tq/%Tw/%Tc/%Tr/%Tt\ %st\ %B\
%cc\ %cs\ %tsc\
%ac/%fc/%bc/%sc/%rc\ %ID\ %sq/%bq\ %hr\ %hs\ %{+Q}r
Output of default with original CAPTURE_LEN
Aug 8 15:54:00 localhost.localdomain haproxy[7295]:
188.165.15.140:49534 [08/Aug/2012:15:53:58.819]
fe_panomax delivery/nginx 0/0/0/1563/1563 200 214 - - ---- 2/2/0/0/0 32
0/0 {Mozilla/4.0 (compatible;)}
"POST REQUEST HTTP/1.1"
Output of my log-format with new CAPTURE_LEN
Aug 8 16:03:55 localhost.localdomain haproxy[9810]:
188.165.15.140:42660 [08/Aug/2012:16:03:54.455]
fe_panomax delivery/- 0/0/0/1344/+1344 200 +128 - - ---- 5/5/1/0/0 143
0/0 "POST REQUEST HTTP/1.1"
now original with new CAPTURE_LEN
Aug 8 16:11:42 localhost.localdomain haproxy[15396]:
188.165.15.140:56583 [08/Aug/2012:16:11:42.199]
fe_panomax delivery/- 0/0/0/716/+716 200 +128 - - ---- 4/4/1/0/0 0/0
"POST REQUEST HTTP/1.1"
now original with original CAPTURE_LEN <= currently running
Aug 8 16:24:52 localhost.localdomain haproxy[22350]:
188.165.15.140:49382 [08/Aug/2012:16:24:50.269]
fe_panomax delivery/- 0/0/0/2690/+2690 200 +128 - - ---- 5/5/1/0/0 0/0
"POST REQUEST HTTP/1.1"
Currently running
haproxy-1.5-dev11# ./haproxy -vv
HA-Proxy version 1.5-dev11 2012/06/04
Copyright 2000-2012 Willy Tarreau <[email protected]>
Build options :
TARGET = linux26
CPU = generic
CC = gcc
CFLAGS = -O2 -g -fno-strict-aliasing
OPTIONS = USE_LINUX_SPLICE=1 USE_STATIC_PCRE=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents =
200
Encrypted password support via crypt(3): yes
Available polling systems :
sepoll : pref=400, test result OK
epoll : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 4 (4 usable), will use sepoll.
my config:
grep -v '^(#|$)' /home/al/download/haproxy/panomax.cfg
global
daemon
pidfile /var/run/haproxy.pid
maxconn 60000 # warning: this has to be 3 times the expected
value!
log 127.0.0.1 local0
ulimit-n 120022
defaults
mode http
balance roundrobin
option dontlognull
option httplog
option http-server-close
option redispatch
option forwardfor
option http-no-delay
option httpchk GET /favicon.ico HTTP/1.0
unique-id-format %{+X}o\ %Ci:%Cp_%Ts_%rt
unique-id-header X-Unique-ID
balance source
retries 1
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend fe_panomax
bind <IP>:80
option forwardfor # add 'X-Forwarded-For: IP'
log global
capture request header User-Agent len 128
capture cookie PHPSESSID len 128
rspdel ^X-Powered-By:.*
acl stat_request url_beg /haproxy_stats
use_backend stats_backend if stat_request
acl fpm_request url_beg /fpm_status
use_backend default if fpm_request
acl host_delivery hdr_beg(host) -i delivery
use_backend delivery if host_delivery
acl host_admin hdr_beg(host) -i admin
use_backend admin if host_admin
acl host_static hdr_beg(host) -i static
use_backend static if host_static
acl host_panodata hdr_beg(host) -i panodata
use_backend panodata if host_panodata
# send everything to next stage
default_backend default
backend default
log 127.0.0.1 local1
option httplog
option httpchk GET /favicon.ico HTTP/1.0
server nginx <IP>:81 maxconn 500 check inter 5s fall 3
backend panodata
#127.0.0.3:8002
log global
option httplog
option httpchk GET /crossdomain.xml HTTP/1.0
server nginx <IP>:80 check inter 5s fall 3
backend delivery
#127.0.0.3:8002
log global
option httplog
option httpchk GET /crossdomain.xml HTTP/1.0
server nginx <IP>:81 check inter 5s fall 3
backend static
#127.0.0.3:8002
log global
option httplog
option httpchk GET /crossdomain.xml HTTP/1.0
server nginx <IP>:80 check inter 5s fall 3
backend admin
#127.0.0.3:8002
log global
option httplog
option httpchk GET /img/css-nav.gif HTTP/1.0
server nginx <IP>:81 check inter 5s fall 3
backend stats_backend
mode http
balance
timeout connect 4000
timeout server 30000
stats uri /haproxy_stats
...
####
As you can see I have not 'option logasap' but get the '+'-sign?!
Please can anybody help me to find the error, thanks.
Best regards
Aleks