Log seluruh badan POST dengan HAProxy?


12

Saya mencoba melacak beberapa masalah dengan cara klien javascript berinteraksi dengan server aplikasi dan ingin melihat seluruh muatan http (tajuk, badan, dan semuanya) yang dilewatkan bolak-balik.

Kebetulan bahwa sudah ada server haproxy di depan server aplikasi, jadi saya berharap dapat menggunakan haproxy untuk menyediakan log yang relevan. Jelas ini akan menjadi buruk untuk dihidupkan dalam produksi, tetapi saya memiliki klon dari seluruh lingkungan yang dapat diisolasi sementara saya melakukan debugging ini.

Apakah ada cara untuk mendapatkan haproxy untuk mencatat seluruh muatan http untuk permintaan POST ke server backend tertentu?

Jawaban:


3

Haproxy tidak memiliki fasilitas untuk mencatat konten POST atau HTTP body.

Gunakan Wireshark sebagai gantinya.


Terima kasih. Saya akhirnya bisa melihat POST di alat pengembang chrome.
Peter Groves

Ini bukan lagi masalahnya. Lihat posting hack_on di bawah ini.
PMV

18

Rupanya sejak versi 1.6.0 (Oktober 2015) sekarang Anda bisa. Ada arahan baru:

option http-buffer-request

Yang Anda masukkan di front-end atau back-end untuk memberikan akses HAProxy ke tubuh. Dan Anda menggunakan req.body untuk mengaksesnya. Berikut ini ringkasan konfigurasi yang saya gunakan:

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

Hai, apakah ada cara untuk mencatat req.body ini ke file yang berbeda dan bukan haproxy.log default yang sama?
Shoaib Khan

Hai. Bagaimana cara mencatat badan permintaan dan tanggapan dalam satu file log?
Yuriy Tigiev
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.