Ghi nhật ký toàn bộ cơ thể POST bằng HAProxy?


12

Tôi đang cố gắng theo dõi một số vấn đề với cách ứng dụng khách javascript tương tác với máy chủ ứng dụng và muốn xem toàn bộ tải trọng http (tiêu đề, nội dung và mọi thứ) đang được truyền qua lại.

Điều đó xảy ra rằng đã có một máy chủ haproxy trước máy chủ ứng dụng, vì vậy tôi đã hy vọng có thể sử dụng haproxy để cung cấp các bản ghi liên quan. Rõ ràng điều này sẽ rất tệ khi bật sản xuất, nhưng tôi có một bản sao của toàn bộ môi trường có thể bị cô lập trong khi tôi thực hiện việc sửa lỗi này.

Có cách nào để có được haproxy để ghi lại toàn bộ tải trọng http cho các yêu cầu POST đến một máy chủ phụ trợ cụ thể không?

Câu trả lời:


3

Haproxy không có phương tiện để ghi nội dung POST hoặc nội dung HTTP.

Sử dụng Wireshark thay thế.


Cảm ơn. Cuối cùng tôi đã có thể thấy POST trong các công cụ dành cho nhà phát triển của chrome.
Peter Groves

Đây không còn là trường hợp. Xem bài viết của hack_on bên dưới.
PMV

18

Rõ ràng kể từ phiên bản 1.6.0 (tháng 10 năm 2015) bây giờ bạn có thể. Có một chỉ thị mới:

option http-buffer-request

Rằng bạn bao gồm trong front-end hoặc back-end để cấp quyền truy cập HAProxy vào cơ thể. Và bạn sử dụng req.body để truy cập nó. Dưới đây là tóm tắt về cấu hình tôi đã sử dụng:

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

Xin chào, có cách nào để đăng nhập req.body này vào một tệp khác và không phải là haproxy.log mặc định không?
Shoaib Khan

Chào. Làm thế nào để đăng nhập một yêu cầu và cơ quan phản hồi trong một tệp nhật ký?
Yuriy Tigiev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.