Linux Mint 18 journal / system log primer [Перевод]

Аватара пользователя

Автор темы
di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#1

21 янв 2018, 13:12

Linux Mint 18 использует систему журналирования systemd. Предыдущие версии Linux Mint использовали rsyslog. Журнал предлагает больше функциональности, если вас не смущает, что журнал по умолчанию настроен на запись сообщения журнала в старый знакомый файл /var/log/syslog, поэтому вы можете продолжать использовать этот метод.

Для Linux Mint 18 Cinnamon вы найдете программу системного журнала в меню, которая показывает Вам сообщения журнала из файла /var/log/syslog. Если вы хотите графическую программу вместо того, чтобы просматривать сообщения журнала напрямую, установите пакет gnome-logs. Он будет отображаться как программа в меню. Он покажет вам важные сообщения от текущей загрузки по умолчанию. Это удобная программа для того, чтобы быстро просмотреть, какие-либо сообщения об ошибках. Для большинства пользователей эта программа будет достаточно.

А так-же, вы можете получить доступ к журналу с помощью команды journalctl, которая имеет больше способов фильтрации сообщений, и именно на этом будет сосредоточен этот учебник.Ниже приведу несколько практических примеров. Дополнительные сведения можно найти в руководстве по journalctl.

Фильтр по загрузке или времени.

systemd отслеживает каждую загрузку. В простейшей форме Вы можете использовать journalctl-b, чтобы показывать только сообщения журнала из текущей загрузки. Скорее всего, вы заинтересованы в сообщениях журнала от предыдущей загрузки после того, как у вас была проблема, которая заставила вас перезагрузиться. Вы можете получить доступ journalctl -b -1, чтобы вернуться к более ранним логам, нужно задать большее отрицательное число, (например, journalctl -b -2, чтобы вернуться за 2 перезагрузки перед текущей). Вы также можете увидеть время начала каждой загрузке в журнале с помощью команды journalctl --list-boots. В первом столбце отображается отрицательное число, которое можно использовать с параметром -b. После этого можно также использовать 32-символьный идентификатор с параметром -b, чтобы однозначно определить конкретную загрузку.

Но, возможно, вы перезагрузились пару раз, чтобы попытаться исправить какую-то проблему, и вы хотите увидеть сообщения журнала всех этих ботинок. Вы можете передать опцию -b несколько раз, чтобы выбрать несколько ботинок. Но вы также можете фильтровать по времени. Вы можете отфильтровать из определенного времени с journalctl -S timestamp (или journalctl --since=timestamp), а так-же применить фильтр к определенному времени journalctl -U timestamp (или journalctl --until=timestamp). Для отметки времени можно использовать метку времени ISO типа "YYYY-MM-DD hh24:mm:ss" (если Вы не укажете дату, предполагается текущий день; если время не задано, предполагается 00:00:00; если не заданы секунды :предполагается 00).
Вы также можете использовать ключевые слова yesterday и today, которые предполагают 00:00:00 этого дня, и now, который является текущим днем и временем. Однако существует еще много ключевых слов, так что вы можете запросить journalctl -S -5weeks+2days -U -2days, который покажет вам все сообщения журнала от 5 недель и 2 дней назад до 2 дней назад. Просмотрите полное описание ключей в systemd.time manpage, которые можно использовать в метке времени.


Фильтр по приоритету.


В каждом журнале регистрируется сообщение с приоритетом: emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), и debug (7). Вы можете фильтровать сообщения журнала по приоритету journalctl -p priority или можно указать диапазон journalctl -p priority..priority.
Для приоритета можно использовать либо имя, либо номер из списка. В форме, где вы даете только один приоритет это также покажет вам наиболее важные сообщения. Так journalctl -p err (или journalctl -p 3) покажет emerg, alert, and crit, а также сообщения. В форме, где вы даете два приоритета будут показаны сообщения с приоритетом в этом диапазоне. Так journalctl -p warning..notice (journalctl -p 4..5) будет показывать только предупреждения и уведомления.

Кстати, обратите внимание, что сообщения journalctl err - красного цвета и выделяют предупреждения и сообщения. Сообщения приоритетной информации или отладки не окрашиваются и не выделяются.

Фильтр по службе, другим полям и программам

Если есть определенный сервис, с которым у вас возникли проблемы, вы можете быть заинтересованы только в сообщениях от этого сервиса. При инициализации systemd сервисов, у каждого есть так называемый блок файла, но это выходит за рамки данного учебника. В любом случае, вы можете отфильтровать сервисный блок с помощью команды journalctl -u name или journalctl UNIT=name.service. Например, чтобы увидеть все сообщения cups (принтер) journalctl -u cups или journalctl -u cups.service или journalctl UNIT=cups.service

Можно угадать название, но есть другой способ - использовать journalctl -o verbose для отображения всех полей информации, которые имеются в журнале. Найдите сообщение журнала, которое вас интересует, запишите значение поля UNIT, а затем используйте его для фильтрации сообщений только от этой службы. Вы увидите намного больше полей в подробном выводе, и вы можете фильтровать по каждому полю здесь точно так же, как с полем UNIT.

Вы также можете дать путь исполняемого файла в качестве аргумента для journalctl и он будет отображать все записи, которые включают исполняемый файл в запросе (вы можете найти их также как _EXE поле в подробных выходных данных).

Другие варианты

Вы можете использовать dmesg для отображения сообщений ядра. В то время как команда dmesg имеет различные способы фильтрации сообщений, она знает только сообщения от текущей загрузки.
Можно использовать journalctl -k для отображения тех же сообщений ядра. В журнале также есть сообщения ядра от предыдущих загрузок, поэтому вы можете использовать вышеупомянутые опции для фильтрации по загрузке или времени, чтобы увидеть сообщения ядра перед текущей загрузкой. Он также будет окрашивать и выделять сообщения ядра на основе приоритета.

Если вы хотите исследовать некоторые проблемы, вам будет полезен journalctl -f . Он отобразит 10 самых последних сообщений, а затем дождется новых сообщений и распечатает их по мере их поступления.
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

StarMAUGLI
Сообщения: 1650
Зарегистрирован: 10 сен 2016, 10:16
Решено: 19
Откуда: Москва
Благодарил (а): 697 раз
Поблагодарили: 187 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#2

25 авг 2018, 17:03

Если можно несколько вопросиков:
1. Данный журнал фиксирует именно ошибки или события вообще?
2. У меня журнал показывает только результаты текущей загрузки. Как включить запись предыдущих загрузок?
3. Почему собственно по умолчанию включена запись только текущей загрузки? Ментейнеры боятся что ошибками забьется все свободное место?

Аватара пользователя

Автор темы
di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#3

25 авг 2018, 17:12

1. Вообще
2.
di_mok писал(а):
21 янв 2018, 13:12
Вы можете получить доступ journalctl -b -1, чтобы вернуться к более ранним логам, нужно задать большее отрицательное число, (например, journalctl -b -2, чтобы вернуться за 2 перезагрузки перед текущей)
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

StarMAUGLI
Сообщения: 1650
Зарегистрирован: 10 сен 2016, 10:16
Решено: 19
Откуда: Москва
Благодарил (а): 697 раз
Поблагодарили: 187 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#4

25 авг 2018, 23:41

di_mok писал(а):
25 авг 2018, 17:12
Вы можете получить доступ journalctl -b -1, чтобы вернуться к более ранним логам, нужно задать большее отрицательное число, (например, journalctl -b -2, чтобы вернуться за 2 перезагрузки перед текущей)

Код: Выделить всё

┌─ mugalem ~ 
└─ $ journalctl -b -1
Specifying boot ID has no effect, no persistent journal was found
тогда как с журналом по текущей загрузке проблем нет - все нормально открывает

Аватара пользователя

Автор темы
di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#5

26 авг 2018, 00:02

Хмм... У меня тоже самое
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#6

26 авг 2018, 07:01

Постоянное хранение журнала, пришло только в 19-м.
В 18.Х по умолчанию хранилась только одна текущая сессия, и затиралась с перезагрузкой. сообщение: мало свободного места на диске boot (Пост Anonymous #25414)
Изображение
   
Изображение

Аватара пользователя

StarMAUGLI
Сообщения: 1650
Зарегистрирован: 10 сен 2016, 10:16
Решено: 19
Откуда: Москва
Благодарил (а): 697 раз
Поблагодарили: 187 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#7

26 авг 2018, 11:44

symon2014 писал(а):
22 сен 2017, 11:14
...тогда создай директорию для журналирования загрузки - sudo mkdir -p /var/log/journal , и после ребута можно будет смотреть, что происходит при загрузке системы - journalctl -b - это вся последняя загрузка , journalctl -b -p err - это ошибки последней загрузки.
Chocobo, а предыдущая загрузка сюда тоже сохранится? или все-таки только текущая?

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Linux Mint 18 journal / system log primer [Перевод]

#8

26 авг 2018, 15:55

После настройки и контрольного ребута - все будут сохраняться на постоянной основе.
Изображение
   
Изображение

Закрыто

Вернуться в «Руководства»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость