up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
RAMBenchmarkPerlDebianLinuxFreeBSDPHPCPUHDDSSDBashHTMLCentOSMySQL

Популярные статьи
Категория “Администрирование

Парсеры лога nginx

Ниже предоставлю разные выборки из access.log nginx.

Коды ответа сервера:

cat /var/log/nginx/access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -n

или с помощью awk:

awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -n

82.207.42.196 [08/Mar/2014:21:03:24] /admin.php "-"
82.207.42.196 [08/Mar/2014:21:03:33] /administrator/index.php "-"
82.207.42.196 [08/Mar/2014:21:03:42] /wp-login.php "-"

Выбор данных (IP, дата, url, referer) по коду ответа:

awk '{if($9 == "404")print $1, $4"] "$7, $11}' /var/log/nginx/access.log

или

awk '($9 ~ /404/){print $1, $4"] "$7, $11}' /var/log/nginx/access.log

 

Наиболее востребованные php-страницы:

awk -F\" '($2 ~ "^GET .*\.php"){print $2}' /var/log/nginx/access.log | awk '{print $2}' | sort | uniq -c | sort -n

Популярные юзер агенты:

awk -F\" '{print $6}' /var/log/nginx/access.log | sort | uniq -c | sort -n

Выборка рефералов, пустые убираем:

awk -F\" '($4 != "-"){print $4}' /var/log/nginx/access.log | sort | uniq -c | sort -n

Самые активные клиенты (IP) по скачиванию файлов 3gp, mp4:

tail -10000 /var/log/nginx/access.log | egrep '3gp\sHTTP|mp4\sHTTP' | awk '{print $1}' |sort | uniq -c |sort -n

 

Также можно сочитать несколько поисковых параметров, например IP-адрес и код ответа:

awk '($1 == "111.111.111.111" && $9 == 502){print}' /var/log/nginx/access.log

В данном случае IP-адрес нужно брать обязательно в двойные кавычки, а простые параметры, как цифры можно и без.

 

$1 == " ... " строгое соотвествие

$1 != " ... " строгое несоотвествие

$1 ~ " ... " примерное соотвествие, регулярные выражения

$1 ~ / ... / примерное соотвествие, регулярные выражения

$1 !~ " ... " примерное несоотвествие, регулярные выражения

Выводим операционные системы и количество запросов из них:

ua=(Windows Linux iPad iPhone)
for agent in ${ua[@]}
do
    echo -ne "$agent\t- "
    grep -c "$agent" /var/log/nginx/access.log | tr -d '\n'
    echo -ne "\n"
done

Операционные системы

Monday, 18 August 2014, 08:58Прочитано 56 раз
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134