Tüm POST gövdesini HAProxy ile günlüğe kaydetme?


12

Javascript istemcisinin bir uygulama sunucusuyla etkileşime girmesiyle ilgili bazı sorunları izlemeye çalışıyorum ve ileri ve geri aktarılan tüm http yükünü (başlıklar, gövde ve her şey) görmek istiyorum.

Uygulama sunucusunun önünde zaten bir haproxy sunucusu var, bu yüzden ilgili günlükleri sağlamak için haproxy kullanabilmeyi umuyordum. Açıkçası bu üretimde açmak kötü olurdu, ama bu hata ayıklamayı yaparken izole edilebilecek tüm ortamın bir klonuna sahibim.

Belirli bir arka uç sunucusuna giden POST istekleri için tüm http yükünü günlüğe kaydetmek için haproxy almanın bir yolu var mı?

Yanıtlar:


3

Haproxy'nin POST içeriğini veya HTTP gövdelerini günlüğe kaydetme olanağı yoktur.

Bunun yerine Wireshark kullanın.


Teşekkürler. Chrome'un geliştirici araçlarında POST'u görebildim.
Peter Groves

Artık durum böyle değil. Aşağıdaki hack_on'un gönderisine bakın.
PMV

18

Görünüşe göre 1.6.0 sürümünden (Ekim 2015) beri. Yeni bir direktif var:

option http-buffer-request

HAProxy'nin vücuda erişimini sağlamak için ön uca veya arka uca dahil ettiğiniz. Ve erişmek için req.body kullanın. İşte kullandığım yapılandırmanın bir özeti:

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
#   ...

Merhaba, bu req.body aynı varsayılan haproxy.log değil, farklı bir dosyaya günlüğe kaydetmenin bir yolu var mı?
Shoaib Khan

Selam. Bir istek ve yanıt gövdesi bir günlük dosyasına nasıl kaydedilir?
Yuriy Tigiev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.