Файлы журналов - это обычные текстовые файлы, которые содержат набор записей, событий или сообщений о работе сервера, приложений и служб, запущенных в операционной системе Linux. Они используются системными администраторами для поиска и устранения неисправностей при возникновении проблем.
В Linux файлы журналов обычно делятся на следующие категории.
- Журналы приложений
- Журналы событий
- Журналы служб
- Системные журналы
В Linux существует множество файлов журналов, которые расположены в каталоге /var/log/. Мониторинг всех этих файлов - утомительная задача. Тем не менее, следующие критические файлы необходимо отслеживать.
- /var/log/syslog
- /var/log/messages
- /var/log/auth.log
- /var/log/secure
- /var/log/boot.log
- /var/log/dmesg
- /var/log/kern.log
- /var/log/faillog
- /var/log/cron
- /var/log/mail.log
- /var/log/apache2/error.log
- /var/log/mysql.log
В этой статье мы рассмотрим различные методы, которые можно использовать для просмотра или мониторинга файлов журналов в режиме реального времени. Мы выполнили все команды на Debian
Просмотр файлов журналов
Использование команды tail
tail - одна из широко используемых команд для просмотра журнала. Она выводит на консоль последние несколько строк файла журнала, по умолчанию 10 строк.
Общий синтаксис команды следующий.
1 | tail [путь файла журнала] |
Например,
1 | sudo tail /var/log/syslog |
Ниже приведен пример вывода, показывающий последние 10 строк файла syslog.
Однако, если вы хотите просмотреть определенные строки конца файла журнала, скажем, 5 строк, вы можете использовать опцию -n следующим образом.
1 | sudo tail -n 5 /var/log/syslog |
Ниже приведен пример вывода.
Если вы хотите следить за файлом журнала и выводить новые сообщения по мере их регистрации в реальном времени, вы можете использовать опцию -f вместе с приведенным выше примером команды.
1 | sudo tail -f -n 5 /var/log/syslog |
Как только в файл журнала добавляется новая строка, она печатается вместе с четырьмя предыдущими строками.
Если вы хотите закрыть терминал, нажмите ctrl + c на клавиатуре.
Использование команды multitail
С помощью команды multitail вы можете контролировать и просматривать содержимое нескольких файлов журнала в реальном времени на консоли в одном окне. Команда multitail не встроена в Debian. Поэтому откройте терминал и выполните следующую команду с правами root, чтобы установить её.
1 | sudo apt-get install multitail |
Ниже приведен пример вывода.
Общий синтаксис команды multitail выглядит следующим образом,
1 | multitail [имя файла 1] [имя файла 2] |
Предположим, у вас есть два файла журналов /var/log/syslog и /var/log/kern.log, и вы хотите просмотреть их содержимое на консоли с помощью multitail, полная команда должна выглядеть следующим образом.
1 | sudo multitail /var/log/syslog /var/log/kern.log |
Ниже приведен пример вывода.
С помощью этой команды можно отслеживать содержимое нескольких файлов журнала в режиме реального времени. Например, на скриншоте ниже показано содержимое четырех файлов журналов /var/log/syslog, /var/log/kern.log, /var/log/daemon.log и var/log/messages.
По умолчанию команда multitail показывает содержимое файлов журналов горизонтально. Если вы хотите просмотреть файлы вертикально в столбцах, вы можете использовать ключи -s следующим образом.
Предположим, вы хотите просмотреть содержимое лог-файлов вертикально в два столбца, полная команда должна выглядеть следующим образом.
1 | sudo multitail -s 2 /var/log/syslog /var/log/kern.log /var/log/daemon.log /var/log/messages |
Ниже приведен пример вывода.
Вы также можете перемещаться по файлам. Нажмите 'b' на клавиатуре и прокрутите список, чтобы выбрать нужный файл журнала. Вы можете просмотреть последние 100 строк выбранного файла.
Ниже приведены примеры вывода.
Вывести файл журнала на передний план
Нажмите Ctrl + g, чтобы прервать работу и вернуться в окно нескольких файлов журнала.
С помощью параметра ci можно также придать файлам журнала разные цвета, чтобы их можно было легко различать. Ниже приведен хороший пример,
1 | sudo multitail -ci green /var/log/syslog -ci blue /var/log/messages |
Ниже приведен пример вывода.
Команда Multitail предлагает множество возможностей. Для получения справки во время выполнения команды нажмите ' h' на клавиатуре.
Использование команды lnav
Команда lnav похожа на команду multitail и показывает содержимое нескольких файлов журнала в одном окне. Чтобы установить её в Debian, откройте терминал и выполните следующую команду с привилегиями root.
1 | sudo apt-get install lnav |
Нажмите 'y' с клавиатуры, когда появится запрос. Дождитесь завершения команды.
В отличие от multitail или других команд, команда lnav объединяет содержимое файлов журналов и показывает каждую строку на основе даты в одном окне.
Ниже приведен пример файла. Вы можете прокручивать окно с помощью клавиш вверх, вниз и т.д. вашей клавиатуры.
Слияние файлов журналов с помощью команды lnav
Общий синтаксис команды следующий,
1 | lnav [имя и путь к файлу 1] [имя и путь к файлу 2] |
Предположим, вы хотите просмотреть журнал syslog и daemon.log. Выполните следующую команду в терминале.
1 | sudo lnav /var/log/syslog /var/log/messages |
Ниже приведен пример вывода.
Если вы не укажете файл в команде, по умолчанию она откроет файл syslog.
Выполните следующую команду.
1 | sudo lnav |
Ниже показан пример вывода.
Вы также можете выполнить поиск в журнале, нажав / на клавиатуре во время выполнения команды. После нажатия клавиши / введите нужную строку, которую вы хотите найти, и нажмите клавишу Enter на клавиатуре.
Допустим, я ищу строку 'AGP', и она выделена в окне.
Ниже приведен пример вывода.
Вы также можете просматривать сжатые файлы журналов (zip, gzip, bzip), используя опцию -r. Ниже приведен полный синтаксис.
1 | lnav -r [имя файла zip] |
Использование команды less
Less - это еще одна команда, которая используется для мониторинга вывода файла журнала.
Ниже приведен полный синтаксис команды.
1 | less +F [путь файла] |
Например, если вы хотите отслеживать файл syslog по пути /var/log/syslog, полная команда должна выглядеть следующим образом.
1 | sudo less +F /var/log/syslog |
Ниже приведен пример вывода.