Источник: Анализ файлов
журнала Apache В файлах журнала (логах) сервера записаны все запросы к серверу. Расположение и содержание директивой CustomLog. Конечно, сохранение информации в журнале доступа - это только начало работы с логами. Следующий шаг - это анализ информации для формирования полезной статистики.
Анализ файлов журнала Apache
Принцип использования awk - это разбиение каждой строки файла на «поля» или «колонки», используя заданный разделитель. Инструкция по выполнению инструкций по эксплуатации интернета в стандартном формате.
Используя разделитель по умолчанию, которым является белый пробел (пробел или табуляция), мы получаем следующее:
Теперь, когда вы понимаете основы разбора файлов и идентификации различных элементов, мы можем перейти к более практичным примерам. Но перед тем как сделать это, мы можем объяснить, как вы можете модифицировать формат ваших логов и быстро расширить возможности этих простых примеров.
Уже видели статью « Распространённые сниппеты .htaccess »?
Форматом аргумента директив LogFormat и CustomLog является строка. Эта инструкция используется для каждой записи в лог файла журнала. Она может вводить буквальные символы, копируемые в файлы логические файлы, управляющие символы в стиле C - «n» и «t», обозначающие новую строку и табуляцию. Буквальные кавычки и обратные слеши должны быть экранированы.
Значения, которые мы хотим видеть в логах, заменяются символами, которые предшествуют знаку процента «%». Далее дано описание формата строки, которая задаёт содержимое логов:
%%
Знак процента
% a
Удалённый IP-адрес
% A
Локальный IP-адрес
% B
Размер запроса в байтах, не включая HTTP-заголовки.
% b
Размер запроса в байтах, не включая HTTP-заголовки. В формате CLF format, например '-' вместо 0 когда байты не отправлены.
% {Foobar} C
Содержание кукиз Foobar в запросе, посланном серверу. Полностью только версия кукиз 0.
% D
Время, затраченное на запрос, в миллисекундах
% {FOOBAR} e
Содержание окружения FOOBAR
% f
Имя файла
% h
Удаленный хост
% H
Протокол запроса
% {Foobar} i
Содержимое заголовка Foobar: строки (строки) в отправленном на сервер запросе. Изменения, сделанные модулями (например, mod_headers) .
% k
Количество запросов keepalive, обрабатывающихся на этом соединении.Интересно, что если KeepAlive используется, то тогда, например, '1' означает первый запрос keepalive первый запрос keepalive после исходного запроса, '2' - второй и т.д….; в случае если он всегда равен 0 (отображается на начальный запрос). Доступ в версии 2.2.11 и более поздних
% l
Удалить логин (из системыатора, если они присланы). Будет возвращено тире, если mod_ident отсутствует или IdentityCheck не установлен на Вкл.
% m
Метод запроса
% {Foobar} n
Содержание заметки Foobar от другого модуля.
% {Foobar} o
Содержание Foobar: строка (строки) заголовка в ответе.
% p
Канонический порт по обрабатывает запросы
% {format} p
Канонический порт по действующему серверу обрабатывает запрос или действующий порт сервера клиента. Валидные форматы: канонический, локальный или удалённый.
% P
ID дочернего процесса, который обслуживает запрос.
% {format} P
ID дочернего процесса или id дочернего потока, который обслуживает запрос. Валидные форматы: pid, tid и hextid. hextid требует APR 1.2.0 или выше.
% q
Строка запроса (предваряется? если строка запроса существует, в противном случае, пустая строка)
% r
Первая строка запроса
% R
Обработчик генерации ответа (если таковые имеются).
% s
Статус. Для запросов, которые получили внутреннюю переадресацию, это статус опционального запроса -%> s для последнего.
% t
Время получения запроса (стандартный английский формат)
% {format} t
Время в форме, которая задана форматом, который должен быть в расширенном формате strftime (3) (ранее локализованном). Если формат начинается с начала: (по умолчанию) время в начале процесса запроса. Если начинается с конца: это, когда сделана запись в файле времени, оно близко к окончанию процесса запроса. В дополнение к форматам, поддерживаемым trftime (3), поддерживаются следующие форматы маркеров:
сек
количество секунд начиная с Эпохи Linux
мсек
количество миллисекунд начиная с Эпохи Linux
мксек
количество микросекунд начиная с Эпохи Linux
msec_frac
миллисекундная доля
usec_frac микросекундная
ДОЛЯ
Эти маркеры могут быть НЕ объединены друг с другом или форматированием STRFTIME (3) в одной и той же форматированной строке. Вместо них можно использовать маркер% {format} t. Расширенный маркер strftime (3) доступен в 2.2.30 и более поздних.
% T
Время, затраченное на обслуживание в секундах.
% {UNIT} T
Время затраченное на обработку запроса, в единицу времени, заданной в UNIT. Валидные юниты: ms в качестве миллисекунд, us для микросекунд, и s для секунд. Использование s даёт тот же результат, что и% T без какого-либо формата;использование нас даёт тот же результат, что и% D. Комбинирование% T с юнитом доступно в 2.2.30 и более поздних версийх.
% u
Удалённый пользовать (получается от процесса авторизации; оно может быть поддельным, если возвращён статус (% s) 401).
% U
Запрошенный путь URL без включения каких-либо строк запросов.
% v
Каноническое имя_сервера сервера обслуживающего запросов.
% V
Имя сервера в соответствии с настройкой UseCanonicalName.
% X
Статус соединения, когда ответ завершён.
X =
соединение прервано до окончания ответа.
+ =
соединение может быть сохранено живым после ответа.
знак равно
соединение будет закрыты после отправки.
(Эта директива была в% c в давних версиях Apache 1.3, но это конфликт с исторически сложившимся C-синтаксисом ssl% {var}).
% Я
Байт получена, включая запрос и заголовки, не может быть нулём. Вам нужно включить mod_logio для использования этого.
% O
Байт отправлено, включая заголовки, не может быть нулём. Вам нужно включить mod_logio для использования этого.
% {VARNAME} ^ ti
Содержание VARNAME: трейлер строки (строк) в отправленном на сервер запросе.
% {VARNAME} ^ в
Содержимое VARNAME: трейлер строки (строк) в ответе отправленном с сервера.
Список пользовательских агентов, отсортированных по количеству раз, появлялось всех появлялось
Выявляем проблемы с вашим сайтом
Выявляем проблемы с вашим сайтом анализом различных ответов сервера и запросов, которые вызвали их:
Вывод показывает, как много типов запросов получил ваш сайт. «Нормальный» результат запроса - это код 200, который означает, что страница или файл были запрошены и доставлены. Но возможны и многие другие варианты.
Наиболее распространённые ответы:
200 - OK
206 - Частичное содержимое (частичное содержимое)
301 - Перемещено навсегда (перемещено навсегда)
302 - Найдено (найдено)
304 - Не изменено (не изменилось)
401 - Неавторизовано (требуется пароль) (не авторизованы - требуется пароль )
403 - Запрещено (запрещено)
404 AWK
0 Benutzer fanden dies hilfreich
журнала Apache В файлах журнала (логах) сервера записаны все запросы к серверу. Расположение и содержание директивой CustomLog. Конечно, сохранение информации в журнале доступа - это только начало работы с логами. Следующий шаг - это анализ информации для формирования полезной статистики.
Анализ файлов журнала Apache
Принцип использования awk - это разбиение каждой строки файла на «поля» или «колонки», используя заданный разделитель. Инструкция по выполнению инструкций по эксплуатации интернета в стандартном формате.
Используя разделитель по умолчанию, которым является белый пробел (пробел или табуляция), мы получаем следующее:
Код:
awk ‘{print $1}’ access.log # ip адрес (%h)
awk ‘{print $2}’ access.log # RFC 1413 identity (%l)
awk ‘{print $3}’ access.log # userid (%u)
awk ‘{print $4,5}’ access.log # дата/время (%t)
awk ‘{print $9}’ access.log # код статуса (%>s)
awk ‘{print $10}’ access.log # размер (%b)
awk -F” ‘{print $2}’ access.log # запрашиваемая строка (%r)
awk -F” ‘{print $4}’ access.log # referer (источник)
awk -F” ‘{print $6}’ access.log # пользовательский агент
Теперь, когда вы понимаете основы разбора файлов и идентификации различных элементов, мы можем перейти к более практичным примерам. Но перед тем как сделать это, мы можем объяснить, как вы можете модифицировать формат ваших логов и быстро расширить возможности этих простых примеров.
Уже видели статью « Распространённые сниппеты .htaccess »?
Форматом аргумента директив LogFormat и CustomLog является строка. Эта инструкция используется для каждой записи в лог файла журнала. Она может вводить буквальные символы, копируемые в файлы логические файлы, управляющие символы в стиле C - «n» и «t», обозначающие новую строку и табуляцию. Буквальные кавычки и обратные слеши должны быть экранированы.
Значения, которые мы хотим видеть в логах, заменяются символами, которые предшествуют знаку процента «%». Далее дано описание формата строки, которая задаёт содержимое логов:
%%
Знак процента
% a
Удалённый IP-адрес
% A
Локальный IP-адрес
% B
Размер запроса в байтах, не включая HTTP-заголовки.
% b
Размер запроса в байтах, не включая HTTP-заголовки. В формате CLF format, например '-' вместо 0 когда байты не отправлены.
% {Foobar} C
Содержание кукиз Foobar в запросе, посланном серверу. Полностью только версия кукиз 0.
% D
Время, затраченное на запрос, в миллисекундах
% {FOOBAR} e
Содержание окружения FOOBAR
% f
Имя файла
% h
Удаленный хост
% H
Протокол запроса
% {Foobar} i
Содержимое заголовка Foobar: строки (строки) в отправленном на сервер запросе. Изменения, сделанные модулями (например, mod_headers) .
% k
Количество запросов keepalive, обрабатывающихся на этом соединении.Интересно, что если KeepAlive используется, то тогда, например, '1' означает первый запрос keepalive первый запрос keepalive после исходного запроса, '2' - второй и т.д….; в случае если он всегда равен 0 (отображается на начальный запрос). Доступ в версии 2.2.11 и более поздних
% l
Удалить логин (из системыатора, если они присланы). Будет возвращено тире, если mod_ident отсутствует или IdentityCheck не установлен на Вкл.
% m
Метод запроса
% {Foobar} n
Содержание заметки Foobar от другого модуля.
% {Foobar} o
Содержание Foobar: строка (строки) заголовка в ответе.
% p
Канонический порт по обрабатывает запросы
% {format} p
Канонический порт по действующему серверу обрабатывает запрос или действующий порт сервера клиента. Валидные форматы: канонический, локальный или удалённый.
% P
ID дочернего процесса, который обслуживает запрос.
% {format} P
ID дочернего процесса или id дочернего потока, который обслуживает запрос. Валидные форматы: pid, tid и hextid. hextid требует APR 1.2.0 или выше.
% q
Строка запроса (предваряется? если строка запроса существует, в противном случае, пустая строка)
% r
Первая строка запроса
% R
Обработчик генерации ответа (если таковые имеются).
% s
Статус. Для запросов, которые получили внутреннюю переадресацию, это статус опционального запроса -%> s для последнего.
% t
Время получения запроса (стандартный английский формат)
% {format} t
Время в форме, которая задана форматом, который должен быть в расширенном формате strftime (3) (ранее локализованном). Если формат начинается с начала: (по умолчанию) время в начале процесса запроса. Если начинается с конца: это, когда сделана запись в файле времени, оно близко к окончанию процесса запроса. В дополнение к форматам, поддерживаемым trftime (3), поддерживаются следующие форматы маркеров:
сек
количество секунд начиная с Эпохи Linux
мсек
количество миллисекунд начиная с Эпохи Linux
мксек
количество микросекунд начиная с Эпохи Linux
msec_frac
миллисекундная доля
usec_frac микросекундная
ДОЛЯ
Эти маркеры могут быть НЕ объединены друг с другом или форматированием STRFTIME (3) в одной и той же форматированной строке. Вместо них можно использовать маркер% {format} t. Расширенный маркер strftime (3) доступен в 2.2.30 и более поздних.
% T
Время, затраченное на обслуживание в секундах.
% {UNIT} T
Время затраченное на обработку запроса, в единицу времени, заданной в UNIT. Валидные юниты: ms в качестве миллисекунд, us для микросекунд, и s для секунд. Использование s даёт тот же результат, что и% T без какого-либо формата;использование нас даёт тот же результат, что и% D. Комбинирование% T с юнитом доступно в 2.2.30 и более поздних версийх.
% u
Удалённый пользовать (получается от процесса авторизации; оно может быть поддельным, если возвращён статус (% s) 401).
% U
Запрошенный путь URL без включения каких-либо строк запросов.
% v
Каноническое имя_сервера сервера обслуживающего запросов.
% V
Имя сервера в соответствии с настройкой UseCanonicalName.
% X
Статус соединения, когда ответ завершён.
X =
соединение прервано до окончания ответа.
+ =
соединение может быть сохранено живым после ответа.
знак равно
соединение будет закрыты после отправки.
(Эта директива была в% c в давних версиях Apache 1.3, но это конфликт с исторически сложившимся C-синтаксисом ssl% {var}).
% Я
Байт получена, включая запрос и заголовки, не может быть нулём. Вам нужно включить mod_logio для использования этого.
% O
Байт отправлено, включая заголовки, не может быть нулём. Вам нужно включить mod_logio для использования этого.
% {VARNAME} ^ ti
Содержание VARNAME: трейлер строки (строк) в отправленном на сервер запросе.
% {VARNAME} ^ в
Содержимое VARNAME: трейлер строки (строк) в ответе отправленном с сервера.
Список пользовательских агентов, отсортированных по количеству раз, появлялось всех появлялось
Код:
awk -F" '{print $6}' access.log | sort | uniq -c | sort -fr
Выявляем проблемы с вашим сайтом
Выявляем проблемы с вашим сайтом анализом различных ответов сервера и запросов, которые вызвали их:
Код:
awk '{print $9}' access.log | sort | uniq -c | sort
Вывод показывает, как много типов запросов получил ваш сайт. «Нормальный» результат запроса - это код 200, который означает, что страница или файл были запрошены и доставлены. Но возможны и многие другие варианты.
Наиболее распространённые ответы:
200 - OK
206 - Частичное содержимое (частичное содержимое)
301 - Перемещено навсегда (перемещено навсегда)
302 - Найдено (найдено)
304 - Не изменено (не изменилось)
401 - Неавторизовано (требуется пароль) (не авторизованы - требуется пароль )
403 - Запрещено (запрещено)
404
Verwandte Artikel
4. Полезные советы для системного администрирования Linux SED
SED полезные советы для системного администрирования Linux SED В этой статье мы рассмотрим...
2. Tutorial SED
SED представлен потоковым текстовым редактором. В интерактивных текстовых редакторах,...
3. Analiz logov серверного ПО
♒ Скрипты для анализа логов веб сервера Что такое, как расшифровывается, что хранится в логах...
0. CLI
Примеры команд для удобной работы на сервере: #Тихая заходка на хост://Отключение записи истории...
Tag Cloud
Ansible command
Ansible Debian10
Ansible debug
ansible module
Ansible roles
antiDDOS
Asterisk 15 LXC
AWK
Bash
Catalina
CDN Gcore
Centos 7 migrate raid1
Centos7
Cisco2950
CLI
Cloak
Cockpit
cron
D-Link vendors
DBA
DEPLOY BASH
Docker
Docker gid
Donat
DORA
Elasticsearch
ELK
EXT4
filebeat
Find
free-proxy
FreeIPA
FreeIPA client
FRERADIUS
FRERADIUSdesk
FS
FTP
Gennto license
Gentoo chroot
gentoo genkernel
Gentoo install
gentoo kernel
gentoo make
GFW
GUNZIP
hdd for VM
Hysteria
IOS
Iptables
Kibana
Kibana Templates
L2 via L3 Vpn Mikrotik
Logstash
LXC
Mikrotik L2
Mikrotik Tunnels
mysql
mysql hotbackup
Netfilter
nginx 1.23 php-fpm74
Nginx и php-fpm на socket в Сentos 7
Openmediavault
OpenStack
OpenStack CLI
OpenVZ
OSI
Percona Xtrabackup Mysql
perl
PHPIIS
postfix
postfixadmin
PowerShel
Proxy-server Squid
PVE
RAID0
RAID01
RAID1
RAID10
RAID5
RDP
REST-API
restore hotbackup
Roundcube
SED
server classic
server new
setup OpenStack
Shablon
SIP TLS SRTP
Socat
Squid
Squid LХС Ubuntu 20.04
SREUP
stiller
SYS
Traefik
UDEV
VBR
veeam
VNC and RDP
vsftpd
WampServer
WG
wg client android
Windows Server 2016
Windows Server 2019
WireGuard port forwading
XFS
XRay
XTLS-Reality
YA TANK
Zabbix telegram bot
аsterisk