Обычно журнал доступа к веб-серверу содержит следующие типы информации:
Дата и время: Дата и время доступа к сайту/странице, которые могут быть в формате UTC или по местному времени веб-сервера.
Исходный IP-адрес: IP-адрес клиентского компьютера.
IP-адрес назначения: IP-адрес веб-сервера.
Полное доменное имя назначения: Полное доменное имя веб-сервера.
Порт назначения: Запрошенный порт на веб-сервере. Обычно это 80 (по умолчанию для HTTP) или 443 (по умолчанию для HTTPS), но может быть любым, в зависимости от того, какой порт работает на веб-сайте.
Протокол: Сетевой протокол клиентского доступа. Типичный пример — HTTP 1.1.
Имя пользователя: Пользователь, заходящий на сайт (если он анонимный, обозначается дефисом).
Ресурс: Запрошенная страница или элемент.
HTTP-метод: Это метод HTTP-запроса (например, GET, POST и т. д.).
Код статуса HTTP: Код состояния, возвращаемый веб-сервером (например, 200«ОК», 404«Страница не найдена» и т. д.).
URI-запрос: Запрос приложения, отправленный на веб-сайт как часть HTTP-запроса.
HTTP-реферер: IP-адрес или URL-адрес, который направил клиента на этот веб-сайт.
Пользовательский агент HTTP: Тип и версия клиентского браузера.
Получено байт: Количество байтов, полученных веб-сервером от клиента.
Отправлено байт: Количество байтов, отправленных веб-сервером клиенту.
Чтобы увидеть, как выглядят эти поля, давайте рассмотрим следующий фрагмент журнала доступа к веб-серверу Apache:
127.0.0.1 - - [21/May/2023:11:22:41 +0000] "GET /aboutus.html HTTP/1.1" 200 6430 "http://5.63.155.32/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15"
Здесь журнал доступа показывает клиентский запрос, пришедший с IP-адреса (127.0.0.1) 21 мая 2023 года в 11:22 по местному времени сервера. Клиент получил доступ к странице aboutus.html в корневом каталоге веб-сайта. Код состояния HTTP был 200 (запрос клиента был успешным), а адрес ссылающегося веб-сайта был 5.63.155.32. Браузером пользователя был Safari от Apple, а веб-сервер отправил клиенту 6430 байт при обслуживании страницы.
Объединив такую информацию из журнала доступа, вы можете найти:
- Количество уникальных посетителей на страницу или уникальных страниц на посетителя.
- Геолокация посетителей сайта.
- Части сайта, к которым чаще всего обращаются.
- Наиболее часто используемые клиентские запросы.
- Общее количество различных кодов состояния HTTP.
Как найти журналы доступа?
Расположение журнала доступа веб-сервера зависит от операционной системы и самого веб-сервера.
Например, местоположение журнала доступа веб-сервера Apache в системах на базе RHEL по умолчанию: /var/log/httpd. В системах на базе Debian, таких как Ubuntu, это местоположение: /var/log/apache2.
Для Nginx по умолчанию журнал доступа находится в каталоге как в системах RHEL, так и в системах на базе Debian по умолчанию: /var/log/nginx.
Расположение журнала доступа по умолчанию для службы IIS, работающей на сервере Windows: %SystemDrive%\inetpub\logs\LogFiles\W3SVC. Часть %SystemDrive% — это обычно C:\, а site_id — это идентификатор веб-сайта, размещенного в IIS.
Администраторы могут читать журналы доступа веб-сервера разными способами. Администратор сайта может подключиться по SSH к консоли фактического веб-сервера для систем на базе Linux и использовать такие команды, как cat, tail и grep для чтения файла. Иногда веб-мастерам может потребоваться использовать панель управления хостинг-провайдера (например, cpanel), чтобы открыть и прочитать журнал доступа.
Как настроить журналы доступа?
Как и большинство других настроек, вы можете установить свойства журнала доступа к веб-серверу в его файле конфигурации. Расположение основного файла конфигурации веб-сервера зависит от самого веб-сервера и операционной системы. Вот список:
- Для веб-сервера Apache на базе RHEL: /etc/httpd/conf/httpd.conf
- Для веб-сервера Apache на базе Debian: /etc/apache2/apache2.conf
- Для веб-сервера Nginx на базе RHEL: /etc/nginx/nginx.conf
- Для веб-сервера Nginx на базе Debian: /etc/nginx/nginx.conf
- Для веб-сервера IIS на базе Windows Server: %WinDir%\System32\Inetsrv\Config\ApplicationHost.config
Некоторые из общих настроек журнала доступа на любом веб-сервере:
- Расположение журнала
- Формат журнала
- Уровень журнала
- Ротация журналов
Расположение журнала доступа может быть разным для каждого веб-сайта, размещенного на веб-сервере. Например, в Apache следующая команда устанавливает расположение журнала доступа на уровне сервера:
CustomLog "/var/log/httpd2/access_log" common
Конфигурация формата журнала доступа определяет поля, которые необходимо включить в записи журнала. Формат журнала доступа может быть общий или комбинированный. В приведенном ниже фрагменте показан пример конфигурации:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
Здесь:
%h - это имя удаленного хоста
%l - имя удаленного журнала из identd (если указано)
%u - идентификатор пользователя (если доступен)
%t - это временная метка получения запроса
%r - это первая строка HTTP-запроса
%>s - это код состояния HTTP, возвращаемый веб-сервером
%b - размер возвращаемого ресурса в байтах
Вы можете обратиться к документации Apache, чтобы узнать, как использовать модуль пользовательского журнала для настройки собственного формата журнала доступа.
Другие параметры конфигурации журнала доступа Apache могут включать уровень журнала и ротацию журналов. Уровень журнала позволяет включать только определенные события, соответствующие определенному уровню критичности и выше этого уровня.
Эти уровни критичности могут быть: debug, info, notice, warn, error, crit, alert, emerg и любые значения между trace1 и trace8. Чем ниже уровень журнала, тем более подробными будут записи журнала. В приведенном ниже фрагменте мы настраиваем журнал доступа для записи только сообщений уровня предупреждения и выше:
LogLevel warn
Важно отметить, что не только вредоносное ПО и вирусы влияют на работу сайта, а и многие другие факторы. Но, какова бы ни была причина, по которой страница сайта не открывается, например проблемы с базой данных или сервером, DDoS-атаки или вирусы, важно контролировать доступность сайта для посетителя. Ситуация, при которой пользователь не может открыть страницу вашего сайта, отрицательно влияет на поднятие сайта в поиске (поисковой выдаче) и оставляет негативное впечатление о вашем сайте у посетителя. Вы теряете потенциальных клиентов, а значит и деньги. Используйте хороший сервис, например BAILRY для постоянного контроля (проверки) доступности сайта. Сервис предоставляет как бесплатную регулярную (периодическую) проверку доступности сайта, так и платную услугу - для постоянного контроля доступности сайта.
Компания Mainton - разработка и тестирование программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.