hosting:logs:console

2.25.3. Анализ логов консольными командами

Чтобы выполнить анализ логов консольными командами, их нужно предварительно скачать и разархивировать, если они в архиве.

Анализ можно выполнять:

Коды ответа сервера в порядке убывания их количества:

awk '{print $9}' access.log | sort | uniq -c | sort -r

25 самых активных IP:

cat access.log | awk '{ print $1 }' | sort | uniq -c | sort -rn | head -n 25

Количество запросов с каждого IP в порядке убывания:

cat access.log | awk '{print "requests from " $1}' | sort | uniq -c | sort -r

10 самых популярных Referer:

cat access.log | awk -F \" ' { print $4 } ' | grep -v '-' | sort | uniq -c | sort -rn | head -n 10

10 самых популярных User-Agent:

cat access.log | awk -F \" ' { print $6 } ' | sort | uniq -c | sort -rn | head -n 10

Общее количество запросов за день:

awk '{print $4}' access.log | cut -d: -f1 | uniq -c

Почасовое количество запросов за день:

  • Если лог содержит информацию только за один день:
    cat access.log | cut -d [ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c

  • Если лог содержит информацию за несколько дней (вместо DD/Mon подставьте нужный день месяца и первые три буквы названия месяца на английском):

    grep "DD/Mon" access.log | cut -d [ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c

Поминутное количество запросов за указанный час указанного дня (вместо DD/Mon/YEAR:HH подставьте нужный день месяца, первые три буквы названия месяца на английском, год и час):

grep "DD/Mon/YEAR:HH" access.log | cut -d [ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c | awk '{ if ($1 > 10) print $0}'

Количество уникальных посетителей:

cat access.log | awk '{print $1}' | sort | uniq -c | wc -l

25 самых популярных URI:

cat access.log | awk '{ print $7 }' | sort | uniq -c | sort -rn | head -n 25

Список уникальных IP:

cat access.log | awk '{print $1}' | sort | uniq

Список уникальных IP с датой и временем по каждому запросу от них:

cat access.log | awk '{print $1 " " $4}' | sort | uniq

Список уникальных IP с датой, временем и методу по каждому запросу от них:

cat access.log | awk '{print $1 " " $4 " " $6}' | sort | uniq

Список уникальных IP с датой, временем и URI по каждому запросу от них:

cat access.log | awk '{print $1 " " $4 " " $7}' | sort | uniq
  • hosting/logs/console.txt
  • Последние изменения: 2019/10/04 16:22
  • — karlov