Jump to content
Калькуляторы

Детальное логгирование веб-сервера

Иногда нужно просмотреть взаимодействие между клиентом и сервером на уровне протокола, увидеть сырые передаваемые и принимаемые данные.

Посоветуйте, чем это можно сделать?

tcpdump подходит далеко не всегда — во-первых речь часто идет о vhost и не всегда интересующего клиента можно посадить на выделенный IP, а во-вторых порой нужно бывает посмотреть внутрь https.

Проксирование тоже не так уж просто и удобно бывает использовать, особенно если нужно проксировать https.

В Apache можно настроить логгирование:

    SetEnv flag-debug
    LogFormat "* %{%FT%T}t%{%z}t %Dus %h %H %f\n\t%m %U%q (len %I, \"%{Accept}i\")\n\tHost: %{Host}i\n\tReferer: %{Referer}i\n\tUA: %{User-Agent}i\n\tOther: MAC \"%{Mac-Address}i\"\n\tResponse: %X #%>s (len %O, \"%{Content-Type}o\")\n" debug
    CustomLog "${APACHE_VHOST_DIR}/log/debug.log" debug env=flag-debug

В какой-то степени это помогает, но не всегда заранее известно, какие данные нужно логгировать.

Идеальным для меня было бы сохранять в лог полный набор заголовков http-запроса (опционально с телом запроса) и полный набор заголовков http-ответа (также опционально с телом ответа).

Еще в Apache есть модуль log_forensic. Он сохраняет полный набор заголовков, но только для запросов и в неудобном формате.

Share this post


Link to post
Share on other sites

Если нет шифрования, можно использовать tshark в режиме сохранения в json-файл, который потом грузить в elasticsearch

Либо переделывать https на отдельный прокси и перехватывать трафик между.

Share this post


Link to post
Share on other sites

Nginx умеет сохранять много-много информации из запроса.

Share this post


Link to post
Share on other sites

10 часов назад, alibek сказал:

А сам апач нельзя научить сохранять запросы/ответы как есть?

Post-запросы сохранять?

Share this post


Link to post
Share on other sites

В 22.06.2019 в 13:29, alibek сказал:

Иногда нужно просмотреть взаимодействие между клиентом и сервером на уровне протокола, увидеть сырые передаваемые и принимаемые данные.

Консоль браузера тебе в помощь.

Share this post


Link to post
Share on other sites

А причем тут браузер?

Вся сложность в том, когда клиентами являются устройства. И не всегда в контролируемой сети.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.