Введение
Любой, кто работает разработчиком или системным администратором, знает, насколько важно использовать файлы журналов для выявления и устранения ошибок в системах Linux и Unix. Для просмотра этих файлов часто используются такие инструменты, как grep, Tail, Cat или Journalctl, но по мере увеличения количества журналов управление ими может усложниться. Именно здесь на помощь приходит lnav, расширенная программа просмотра файлов журналов, выходящая за рамки базовых функций. Этот инструмент не только распознает журналы, но также определяет временные метки, уровни журналов и другие важные детали. Он также позволяет выполнять SQL-запросы к стандартным файлам журналов и создавать собственные отчеты. Давайте посмотрим, как установить и использовать lnav.
Отличительные особенности lnav
- Распаковка файлов журналов в реальном времени, аналогично утилитам z* в Linux и Unix.
- Распознавание формата файла журнала.
- Объединение файлов журналов в одно представление, отсортированное по времени.
- Поддержка цвета в терминале для выделения ошибок и предупреждений.
- Поддержка SSH (SFTP) для просмотра файлов журналов на удаленных компьютерах с Linux и Unix.
- Следите за файлами по мере их переименования и находите новые файлы в указанных каталогах.
- Создание указателя ошибок и предупреждений.
- Распечатка в формате JSON.
- Быстрая навигация между ошибками и предупреждениями.
- Поиск с помощью регулярных выражений.
- Выделение и фильтрация сообщений с помощью регулярных выражений или SQLite.
- Просмотрите гистограмму сообщений с течением времени.
- Запрос сообщений с помощью SQLite.
Монтаж
Вот как установить lnav в разных дистрибутивах Linux и Unix:
Дебиан/Убунту Linux:
sudo apt install lnav
CentOS/RHEL/Fedora/Rocky/Alma/Oracle Linux Сначала включите репозиторий EPEL, затем:
sudo dnf install lnav
Арч Линукс:
sudo pacman -S lnav
Альпийский Линукс:
apk add lnav
OpenSUSE/SUSE Linux
sudo zypper install lnav
macOS Сначала включите и установите Homebrew, затем:
brew install lnav
Или используйте:
sudo port install lnav
FreeBSD Юникс:
pkg install lnav
Использование LNAV
Синтаксис использования lnav прост:
# File di log
lnav /percorso/del/file.log
lnav /percorso/del/file1.log /percorso/del/file2.log
# Directory
lnav /percorso/della/app/log/dir1/lnav /percorso/della/app/log/dir1//var/log/# Wildcard
lnav /var/log/nginx/app_*_error*log
lnav /var/log/nginx/app_*_error*log /var/log/*.err
Использование SSH для удаленных хостов
lnav utente@nome-server:/var/log/file.log
lnav utente@server1:/var/log/lnav utente@server1:/var/log/*.err
Использование с systemd-journald в системах Linux.
journalctl | lnav
journalctl -f | lnav
journalctl -u ssh.service | lnav
Чтобы найти ошибки, нажмите e
, чтобы перейти к следующей ошибке, или Shift+E
, чтобы вернуться к предыдущей. Используйте w
и Shift+W
для перехода к следующему или предыдущему оповещению. Нажмите q
или CTRL+c
, чтобы выйти. Для поиска текста в файлах нажмите /
, чтобы открыть строку поиска, и TAB
, чтобы автоматически заполнить строку поиска.
Просмотр журналов контейнера Docker
docker logs container-id | lnav
docker logs -f container-id | lnav
Если идентификатор контейнера — 611ac85cc97d
или называется «приложение»:
docker logs 611ac85cc97d | lnav
docker logs -f app | lnav
Вы также можете использовать:
lnav docker://{container_id_or_name}/path/to/log/file
lnav docker://{container_id_or_name}/var/dir1
lnav docker://app/var/log/lnav docker://app/var/log/nginx/nginx.app.log
Мониторинг вывода любой команды
Многие команды генерируют выходные данные и журналы во время выполнения. Например, чтобы отслеживать вывод команды make
во время компиляции:
lnav -e 'make -j8'
SQLite-интерфейс
lnav позволяет выполнять анализ журналов с помощью SQLite — очень мощная функция. Каждый формат журнала доступен через виртуальные таблицы, что позволяет выполнять SQL-запросы к журналам. Например:
lnav /var/log/nginx/www.example.com_https_access.log
Вы можете активировать приглашение SQL, нажав клавишу ;
и напишите простой запрос типа:
SELECT * FROM logline LIMIT 10;
Результаты вы получите прямо в терминале.
Заключение
lnav — это расширенный инструмент для просмотра файлов журналов с функциями, позволяющими выполнять запросы SQL, создавать отчеты и многое другое. Он предлагает простой и интуитивно понятный пользовательский интерфейс и поддерживает множество форматов журналов, контейнеры Linux и удаленный просмотр через SSH. Этот инструмент настоятельно рекомендуется системным администраторам и разработчикам Linux/Unix. Вы можете начать использовать lnav с помощью этих простых команд или посетить страницу проекта для получения дополнительной информации.