Registrazione di tutto il corpo POST con HAProxy?


12

Sto cercando di rintracciare alcuni problemi con il modo in cui un client javascript interagisce con un server delle applicazioni e vorrei vedere l'intero payload http (intestazioni, corpo e tutto) che viene passato avanti e indietro.

Accade così che ci sia già un server haproxy davanti al server delle applicazioni, quindi speravo di poter usare haproxy per fornire i log pertinenti. Ovviamente questo sarebbe male da attivare in produzione, ma ho un clone dell'intero ambiente che può essere isolato mentre eseguo questo debug.

C'è un modo per ottenere haproxy per registrare l'intero payload http per le richieste POST che vanno a un particolare server back-end?

Risposte:


3

Haproxy non ha la possibilità di registrare contenuti POST o corpi HTTP.

Usa invece Wireshark.


Grazie. Ho finito per essere in grado di vedere il POST negli strumenti di sviluppo di Chrome.
Peter Groves,

Questo non è più il caso. Vedi il post di hack_on di seguito.
PMV,

18

Apparentemente dalla versione 1.6.0 (ottobre 2015) ora puoi farlo. C'è una nuova direttiva:

option http-buffer-request

Che includi nel front-end o nel back-end per dare accesso HAProxy al corpo. E usi req.body per accedervi. Ecco un riepilogo della configurazione che ho usato:

global
        log     127.0.0.1 local0
        debug
        maxconn 2048
        ulimit-n 8012
#        ...

defaults
    mode http
    option httplog
    log-format frontend:%f/%H/%fi:%fp\ GMT:%T\  body:%[capture.req.hdr(0)]\ request:%r
    option dontlognull
#   ...

frontend www-http
   log global
   option http-buffer-request
# id=0 to store body for logging
   declare capture request len 40000
   bind 7.7.7.7:8007 
   http-request capture req.body id 0

   default_backend www-backend

backend www-backend
    mode http
    option forwardfor
#   ...

Ciao, c'è un modo per registrare questo req.body in un file diverso e non lo stesso haproxy.log predefinito?
Shoaib Khan,

Ciao. Come registrare un corpo di richiesta e risposta in un file di registro?
Yuriy Tigiev il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.