HAProxyでPOST本体全体を記録しますか?


12

javascriptクライアントがアプリケーションサーバーとやり取りする方法に関するいくつかの問題を追跡しようとしており、前後に渡されるhttpペイロード全体(ヘッダー、ボディ、およびすべて)を確認したいと考えています。

アプリケーションサーバーの前に既にhaproxyサーバーが存在しているので、関連するログを提供するためにhaproxyを使用できることを望んでいました。実稼働環境でこれをオンにするのは明らかに悪いことですが、このデバッグを行っている間に分離できる環境全体のクローンがあります。

特定のバックエンドサーバーに送信されるPOSTリクエストのhttpペイロード全体をhaproxyに記録させる方法はありますか?

回答:


3

Haproxyには、POSTコンテンツまたはHTTP本文を記録する機能がありません。

代わりにWiresharkを使用してください。


ありがとう。最終的に、Chromeの開発者ツールでPOSTを見ることができました。
ピーターグローブス

これはもはや事実ではありません。以下のhack_onの投稿を参照してください。
PMV

18

どうやらバージョン1.6.0(2015年10月)以降、できるようになりました。新しいディレクティブがあります:

option http-buffer-request

フロントエンドまたはバックエンドに含めて、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カーン

こんにちは。1つのログファイルに要求と応答の本文を記録する方法は?
ユリティギエフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.