2.20.2.3. Аналіз логаў кансольнымі камандамі
Аналізаваць логі кансольнымі камандамі можна на хостынгу або на лакальным ПК:
- Запампуйце логі сабе на ПК.
- З дапамогай файл-мэнэджэра або любога FTP-кліента загрузіце запампаваныя логі на хостынг у каранёвай каталог хостынг-акаўнта.
- Калі логі знаходзяцца ў архіўным файле, разархівуецца іх з дапамогай файл-мэнэджэра.
- Выкарыстоўвайце ў тэрмінале кансольныя каманды, Прадстаўленыя ніжэй.
- Запампуйце логі сабе на ПК.
- Калі логі знаходзяцца ў архіўным файле, разархівуецца іх.
- Запусціце тэрмінал на сваім ПК:
- У Windows — патрабуецца наяўнасць усталяванага WSL або Cygwin. Калі з іх устаноўкай ёсць складанасці, скарыстайцеся больш простым аналізам на хостынгу.
- У Linux — можна выкарыстоўваць стандартны тэрмінал.
- У macOS — можна выкарыстоўваць стандартны тэрмінал.
- Выкарыстоўвайце ў тэрмінале кансольныя каманды, Прадстаўленыя ніжэй.
Каманды
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