1. AWK tutorial for Site

 

Источник:  Анализ файлов

журнала 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 
  • AWK
  • 0 Benutzer fanden dies hilfreich
  • War diese Antwort hilfreich?

    Verwandte Artikel

    4. Полезные советы для системного администрирования Linux SED

    SED полезные советы для системного администрирования Linux SED В этой статье мы рассмотрим...

    2. Tutorial SED

    SED представлен потоковым текстовым редактором. В интерактивных текстовых редакторах,...

    3. Analiz logov серверного ПО

    ♒ Скрипты для анализа логов веб сервера Что такое, как расшифровывается, что хранится в логах...

    0. CLI

    Примеры команд для удобной работы на сервере: #Тихая заходка на хост://Отключение записи истории...