การบันทึกเนื้อหาของ POST ทั้งหมดด้วย HAProxy?


12

ฉันกำลังพยายามติดตามปัญหาบางอย่างเกี่ยวกับวิธีที่ไคลเอ็นต์ javascript โต้ตอบกับแอปพลิเคชันเซิร์ฟเวอร์และต้องการที่จะดูส่วนของ http ทั้งหมด (ส่วนหัวเนื้อหาและทุกอย่าง) ที่ถูกส่งกลับไปมา

มันเกิดขึ้นว่ามีเซิร์ฟเวอร์ haproxy ต่อหน้าแอ็พพลิเคชันเซิร์ฟเวอร์แล้วดังนั้นฉันจึงหวังว่าจะสามารถใช้ haproxy เพื่อจัดทำบันทึกที่เกี่ยวข้อง เห็นได้ชัดว่านี่จะไม่ดีในการผลิต แต่ฉันมีโคลนของสภาพแวดล้อมทั้งหมดที่สามารถแยกได้ในขณะที่ฉันทำการดีบัก

มีวิธีรับ haproxy เพื่อบันทึก http payload ทั้งหมดสำหรับคำขอ POST ไปที่เซิร์ฟเวอร์ backend เฉพาะหรือไม่

คำตอบ:


3

Haproxy ไม่มีเครื่องมืออำนวยความสะดวกในการบันทึกเนื้อหา POST หรือเนื้อหา HTTP

ใช้ Wireshark แทน


ขอบคุณ ในที่สุดฉันก็สามารถเห็น POST ในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Chrome
Peter Groves

นี่ไม่ใช่กรณีอีกต่อไป ดูโพสต์ของ hack_on ด้านล่าง
PMV

18

เห็นได้ชัดว่าเป็นรุ่น 1.6.0 (ตุลาคม 2558) คุณสามารถทำได้ มีคำสั่งใหม่:

option http-buffer-request

ที่คุณรวมไว้ใน front-end หรือ back-end เพื่อให้ HAProxy เข้าถึงร่างกาย และคุณใช้ req.body เพื่อเข้าถึงมัน นี่เป็นบทสรุปของการกำหนดค่าที่ฉันใช้:

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

สวัสดีมีวิธีบันทึก req.body นี้เป็นไฟล์อื่นไม่ใช่ haproxy.log เริ่มต้นเดียวกันหรือไม่
Shoaib Khan

สวัสดี วิธีบันทึกคำขอและเนื้อหาตอบกลับในไฟล์บันทึกเดียว
Yuriy Tigiev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.