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 <w...@1wt.eu>

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

Reply via email to