Для базового просмотра системных логов в Linux используется
Для фокусировки на конкретном сервисе, например, nginx, применяется флаг
Для извлечения нужных данных из лога используется
Для автоматического сбора ошибок в файл можно использовать
journalctl
. При большом объеме логов следует применять опции --no-pager
для отключения постраничного вывода и --since "1 hour ago"
для просмотра логов за определенный период. После перезагрузки сервера полезно использовать -b
для просмотра логов с момента последней загрузки. Можно уточнить конкретный запуск с помощью -b -1
для предыдущей загрузки. Изображение носит иллюстративный характер
Для фокусировки на конкретном сервисе, например, nginx, применяется флаг
-u
, например, journalctl -u nginx.service
. Сортировать логи от новых к старым можно с --reverse
. Для поиска ошибок используется grep
с опцией -i
для игнорирования регистра, например grep -i "error"
. Для просмотра контекста вокруг ошибки применяются опции -A
и -B
, например grep -A 2 -B 2 "error"
. Для извлечения нужных данных из лога используется
awk
. Например, awk '{print $1, $2, $3, $6}'
выведет дату, время и сообщение. Для обрезки длинных сообщений можно использовать awk '{print substr($0, index($0,$6))}'
. Для очистки логов от лишних символов, например, квадратных скобок, используется sed
, например sed 's/\[.\]//g'
. sed 's/error/!!!ERROR!!!/g'
заменит текст error на!!!ERROR!!!. Для автоматического сбора ошибок в файл можно использовать
crontab
и скрипт. Пример: journalctl -u nginx.service --since "1 day ago" | grep -i "error" | awk '{print $1, $2, $3, $6, $7, $8}' > /var/log/nginx_errors.log
. Для просмотра логов в реальном времени используется флаг -f
, например, journalctl -u nginx.service -f
, что аналогично tail -f
.