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

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

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

modsecurity умеет сохранять запросы и ответы

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this