Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Логи в Nginx


 

Логи в Nginx


Возможно настроить два типа логов:
1. access_log - логи запросов
2. error_log - логи ошибок


Конструкции прописывается в секциях:
http, stream, server, location


### error_log


Уровни ошибок:
warn, error crit, alert, emerg


Пример записи error:
error_log logs/site.error.log warn;


### access_log


Конструкции прописывается в секциях:
http, server, location, if в location, limit_except


Простейшая запись:
access_log logs/site.access.log;


### Переопределение формата записей с помощью log_format


Документация:
http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format


Формат записи по умолчанию:
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"


Где:
$remote_addr – IP - источник запроса
$remote_user – Логин, аутентифицированный с помощью HTTP-аутентификации
[$time_local] – Время запроса по часовому поясу сервера
"$request" - Тип HTTP-запроса, запрошенный путь без аргументов, версия протокола HTTP
$status - HTTP-код ответа сервера
$body_bytes_sent - Размер в байтах ответа сервера
"$http_referer" - Реферальная ссылка (страница источник, с которой был переход)
"$http_user_agent" - User agent


Конструкции прописывается в секциях:
http


Синтаксис:
access_log путь [формат [buffer=размер] [gzip[=степень]] [flush=время] [if=условие]];


По дефолту:
access_log logs/access.log combined;


Пример:
log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';


### Анализ логов


Допустим мы используем стандартный формат лога


Посчитаем количество запросов и коды ответа:
cat /var/log/nginx/site.ru.access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -rn
5006 404
4012 200
 201 302
  11 502
   4 499


Или так:
awk '{print $9}' /var/log/nginx/site.ru.access.log | sort | uniq -c | sort -rn


Наблюдаем 5006 ошибок типа 404


Вычисляем эти запросы для 404 ошибки:
awk '($9 ~ /404/)' /var/log/nginx/site.ru.access.log | awk '{print $7}' | sort | uniq -c | sort -rn | more
7 /static/js/app.js
2 /images/image27.jpg
2 /Federalnyy-zakon-N-127-FZ/
1 /docs/Prikaz-Minzdravsotsrazvitiya-Rossii
1 /docs/zemelnyi-kodeks-rossiiskoi-federatsii


Вычисляем эти запросы для 502 ошибки:
awk '($9 ~ /502/)' /var/log/nginx/site.ru.access.log | awk '{print $7}' | sort | uniq -c | sort -r | more
3 /static/i/corner-m.png
2 /doc/wu1dcOHW/?_=1531366826866&snippet_pos=1344&vsrf-case_doc=&vsrf-date_from=01.01.2016
1 /doc/ES97zxW/?vsrf-txt=%D0%9F%D1%82+12.07.2018


С какого ip запрашивали url:
awk '($7 ~ "/static/i/corner-m.png")' /var/log/nginx/site.ru.access.log | awk '{print $1}'
awk '($7 ~ "/doc/wu1dcOHW/")' /var/log/nginx/site.ru.access.log | awk '{print $1}'
10.1.1.100
10.15.1.56
10.13.55.23


Самые посещаемые url:
awk -F\" '{print $2}' /var/log/nginx/site.ru.access.log | awk '{print $2}' | sort | uniq -c | sort -r | more

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект