2.20.2.3. Аналіз логаў кансольнымі камандамі

Аналізаваць логі кансольнымі камандамі можна на хостынгу або на лакальным ПК:

  1. Запампуйце логі сабе на ПК.
  2. З дапамогай файл-мэнэджэра або любога FTP-кліента загрузіце запампаваныя логі на хостынг у каранёвай каталог хостынг-акаўнта.
  3. Калі логі знаходзяцца ў архіўным файле, разархівуецца іх з дапамогай файл-мэнэджэра.
  4. Выкарыстоўвайце ў тэрмінале кансольныя каманды, Прадстаўленыя ніжэй.
  1. Запампуйце логі сабе на ПК.
  2. Калі логі знаходзяцца ў архіўным файле, разархівуецца іх.
  3. Запусціце тэрмінал на сваім ПК:
    • У Windows — патрабуецца наяўнасць усталяванага WSL або Cygwin. Калі з іх устаноўкай ёсць складанасці, скарыстайцеся больш простым аналізам на хостынгу.
    • У Linux — можна выкарыстоўваць стандартны тэрмінал.
    • У macOS — можна выкарыстоўваць стандартны тэрмінал.
  4. Выкарыстоўвайце ў тэрмінале кансольныя каманды, Прадстаўленыя ніжэй.
Ва ўсіх камандах замест access.log паказвайце назву запампаванага файла лога або поўны шлях да яго.

Коды адказу сервера ў парадку змяншэння іх колькасці:

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
Змест