From a87783fd27a2589877e806349841b7004c5684a1 Mon Sep 17 00:00:00 2001 From: LelyaIsmaylova <92105503+LelyaIsmaylova@users.noreply.github.com> Date: Fri, 12 May 2023 01:48:08 +0500 Subject: [PATCH 1/5] Add files via upload --- Journalctl.rst | 381 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 Journalctl.rst diff --git a/Journalctl.rst b/Journalctl.rst new file mode 100644 index 0000000..053f2b1 --- /dev/null +++ b/Journalctl.rst @@ -0,0 +1,381 @@ +Работа с journalctl +##################### + +:Тема: Работа с journalctl +:Дата: 2023-05-11 +:Авторы: Клестова Л. А., Куленкамп Д. К. + +.. default-role:: code +.. contents:: Содержание + +Описание библиотеки +==================== +Утилита логирования journalctl является частью systemd - системного демона, являющегося подсистемой инициализации Linux. Библиотека предназначена для управления системным журналом, что позволяет просматривать и анализировать различные процессы и события, происходящие в ОС. Journalctl поддерживает централизованное хранение журнала, фильтрацию, поиск и многое другое. Все это может использоваться для диагностики и устранения неполадок, обеспечения безопасности, отслеживания производительности и контроля соответствия внутренним стандартам. + +Структура журнала логов +==================== +Журнал логов, с которым работает утилита, имеет определенную структуру. Каждая запись в журнале представляет из себя сообщения от системы, состоящие из временных отметок, типа события и его уровня важности, источника сообщения, текста сообщения и метаданных. Логи в systemd записываются в соответствии с стандартным протоколом syslog. Рассмотрим перечисленные пункты подробнее. + +Временные отметки +------------------ + +Время записывается в формате YYYY-MM-DD HH:MM:SS, например: “2023-04-12 12:34:56”. +По умолчанию systemd записывает в логах время с аппаратных часов (RTC, Real Time Clock), однако его можно настроить на универсальное координированное время UTC в соответствии с нужным часовым поясом. + +Уровни важности (приоритет) +---------------------------- + + +----------+--------------------------------+---------------+------------------------------+ + | | | | | + | Значение | Важность | Кодовое слово | Описание | + | | | | | + +==========+================================+===============+==============================+ + | 0 | Emergency (Экстренная ситуация)| emerg | Системой нельзя пользоваться | + +----------+--------------------------------+---------------+------------------------------+ + | 1 | Alert (Тревога) | alert | Нужно исправить немедленно | + +----------+--------------------------------+---------------+------------------------------+ + | 2 | Critical (Критический) | crit | Критические состояния | + +----------+--------------------------------+---------------+------------------------------+ + | 3 | Error (Ошибка) | err | Ошибка | + +----------+--------------------------------+---------------+------------------------------+ + | 4 | Warning (Предупреждение) | warning | Далее может произойти ошибка | + +----------+--------------------------------+---------------+------------------------------+ + | 5 | Notice (Замечание) | notice | Необычные события, не ошибки | + +----------+--------------------------------+---------------+------------------------------+ + | | | | Обычные операционные | + | 6 | Informational (Информационный) | info | сообщения, не требуют | + | | | | действий | + +----------+--------------------------------+---------------+------------------------------+ + | | | | Сообщения, которые могут | + | 7 | Debug (Отладка) | debug | быть полезны только | + | | | | при отладке | + +----------+--------------------------------+---------------+------------------------------+ + + + +Источники сообщения +--------------------- +Источники сообщения обозначаются с помощью кодов источников (Facility code) и лежат в диапазоне от 0 до 23. + + +-----------------------+-----------------------+-----------------------+ + | Значение | Кодовое слово | Описание | + +=======================+=======================+=======================+ + | 0 | kern | Сообщения от ядра | + +-----------------------+-----------------------+-----------------------+ + | 1 | user | Сообщения уровня | + | | | пользователя | + +-----------------------+-----------------------+-----------------------+ + | 2 | mail | Почтовая система | + +-----------------------+-----------------------+-----------------------+ + | 3 | daemon | Системные демоны | + +-----------------------+-----------------------+-----------------------+ + | 4 | auth | Сообщения о | + | | | безопасности | + | | | или авторизации | + +-----------------------+-----------------------+-----------------------+ + | 5 | syslog | Сообщения | + | | | генерируемые | + | | | syslog | + +-----------------------+-----------------------+-----------------------+ + | 6 | lpr | Протокол демона | + | | | построчной печати | + | | | (Line printer | + | | | subsystem), | + | | | архаична | + +-----------------------+-----------------------+-----------------------+ + | 7 | news | Подсистема | + | | | новостной сети | + | | | (архаична) | + +-----------------------+-----------------------+-----------------------+ + | 8 | uucp | Unix-to-Unix copy | + | | | protocol, система | + | | | копирования между | + | | | компьютерами | + +-----------------------+-----------------------+-----------------------+ + | 9 | | Демон часов | + +-----------------------+-----------------------+-----------------------+ + | 10 | authpriv | Сообщения о | + | | | безопасности | + | | | или авторизации | + +-----------------------+-----------------------+-----------------------+ + | 11 | ftp | Сообщения от | + | | | FTP-демона | + | | | (протокол передачи | + | | | файлов) | + +-----------------------+-----------------------+-----------------------+ + | 12 | | Сообщения NTP | + | | | демона, регулирует | + | | | системное время | + +-----------------------+-----------------------+-----------------------+ + | 13 | | Аудит логов | + +-----------------------+-----------------------+-----------------------+ + | 14 | | Предупреждения | + | | | логов | + +-----------------------+-----------------------+-----------------------+ + | 15 | cron | Демон расписания | + +-----------------------+-----------------------+-----------------------+ + | 16 | local0 | локальное | + | | | использование 0 | + +-----------------------+-----------------------+-----------------------+ + | 17 | local1 | локальное | + | | | использование 1 | + +-----------------------+-----------------------+-----------------------+ + | 18 | local2 | локальное | + | | | использование 2 | + +-----------------------+-----------------------+-----------------------+ + | 19 | local3 | локальное | + | | | использование 3 | + +-----------------------+-----------------------+-----------------------+ + | 20 | local4 | локальное | + | | | использование 4 | + +-----------------------+-----------------------+-----------------------+ + | 21 | local5 | локальное | + | | | использование 5 | + +-----------------------+-----------------------+-----------------------+ + | 22 | local6 | локальное | + | | | использование 6 | + +-----------------------+-----------------------+-----------------------+ + | 23 | local7 | локальное | + | | | использование 7 | + +-----------------------+-----------------------+-----------------------+ + +Текст сообщения +------------------- + +Текст сообщения содержит описание процессов, происходящих в системе, например, когда сервис запущен или остановлен, ошибки возникшие при выполнении, название сервисов и детали произошедших событий. + +Метаданные +--------------------- + +Метаданные могут иметь различное содержание в зависимости от их настроек, часто включают в себя пользовательский идентификатор, идентификатор устройства, имя хоста, идентификатор загрузки (boot_id) и т.д. + +Установка утилиты +==================== + +Как уже было ранее сказано, journalctl является частью systemd, а потому его не нужно устанавливать отдельно. Установка systemd осуществляется через пакетный менеджер используемого дистрибутива. + +Например, для дистрибутивов Ubuntu и Debian используется команда: + +.. code-block:: bash + + sudo art-get install systemd + +Для CentOS, Fedora и RHEL: + +.. code-block:: bash + + sudo yum install systemd + +А для Arch Linux: + +.. code-block:: bash + + sudo pacman -S systemd + +Вместе с установкой пакета systemd теперь можно использовать и его часть - journalctl. Перейдем к изучению основных команд. + +Основные команды +================= +Просмотр журнала логов +--------------------- +journalctl – базовая команда, при вводе в командную строку без дополнений выводит все доступные вызывающему пользователю логи в системе. Рассмотрим различные вариации данной команды, ориентирующиеся на нужды пользователя: + +1. Просмотр журнала событий: + + .. code-block:: bash + + journalctl +2. Просмотр журнала с конца: + + .. code-block:: bash + + journalctl -r +3. Просмотр журнала в формате, более удобном для чтения: + + .. code-block:: bash + + journalctl -o cat + + При использовании данной команды выводится полный текст сообщений журнала вместо сокращенного формата, используемого по умолчанию. + +4. Просмотр журнала с последними записями: + + .. code-block:: bash + + journalctl -n + + Опция “-n” указывает, сколько последних записей хочет получить на выход пользователь. Например, при вводе команды + + .. code-block:: bash + + journalctl -n 10 + + будет показано 10 последних записей системного журнала. + +5. Просмотр журнала с записями, созданными после указанного времени: + + .. code-block:: bash + + journalctl –since + + После опции “–since” нужно указать начальное время просмотра журнала. Время в данной команде может быть задано в различных командах: + + .. code-block:: bash + + journalctl –since today - показ всех записей для сегодняшнего дня + journalctl –since 2023-06-10 - показ всех записей с 10 июня 2023 года + journalctl –since “n days/hours/minutes ago” - показ всех записей, которые были созданы в течение последних n дней/часов/минут + +6. Просмотр журнала с записями, созданными до указанного времени: + + .. code-block:: bash + + journalctl –until + +7. Просмотр журнала с записями за определенное время: + + .. code-block:: bash + + journalctl –since “2023-06-10 10:00:00” –until “2023-06-10 12:00:00” + + Данная команда выводит записи, сделанные в журнале в выбранном промежутке времени. Journalctl предоставляет возможность выбирать таким же образом отдельно только дату или только время. Если не введено время, то по умолчанию ставится 00:00:00. При последнем варианте по умолчанию выбирается текущий день. Для выбора другого дня работают слова “yesterday”, “today”, “tomorrow”. + +8. Просмотр журнала в режиме реального времени: + + .. code-block:: bash + + journalctl -f + + Вывод журнала осуществляется с непрерывным обновлением. + + +Поиск определенных логов: +--------------------- +1. Поиск событий: + + .. code-block:: bash + + journalctl -u + + Команда выводит события, связанные с выбранной службой. + +2. Поиск событий с выбранным приоритетом: + + .. code-block:: bash + + journalctl -p + + Например, следующая команда выводит события с ошибками: + + .. code-block:: bash + + journalctl -p err + +3. Поиск событий с определенным словом или фразой: + + .. code-block:: bash + + journalctl /message/ + + Команда выведет события, которые содержат данное слово или фразу. + +4. Поиск логов с определенным номером процесса: + + .. code-block:: bash + + journalctl -b 0 + + Например, команда выше выведет нам журнал последней загрузки системы. + +Настройки вывода журнала: +--------------------- +Так как логи подчиняются единой структуре, то journalctl может вывести их в различных форматах. +Следующие настройки изменяют то, как отображается вывод данных: + + .. code-block:: bash + + journalctl --output= или journalctl -o + +Выше уже был пример использования команды journalctl -o cat. Базовая команда принимает следующие значения: + + +-----------------------------------+-----------------------------------+ + | short | Стандартный вывод логов в | + | | формате syslog | + +-----------------------------------+-----------------------------------+ + | verbose | Отображает информацию в более | + | | подробном, пользовательском | + | | формате | + +-----------------------------------+-----------------------------------+ + | json | Отображает логи в формате | + | | JSON, один лог за раз | + +-----------------------------------+-----------------------------------+ + | json-pretty | Отображает логи в формате | + | | JSON, но в нескольких строках, | + | | для лучшей читаемости | + +-----------------------------------+-----------------------------------+ + | cat | Отображает только сообщение | + | | каждого лога без заголовка | + +-----------------------------------+-----------------------------------+ + | export | Переводит журнал в поток | + | | сообщений в бинарной записи, | + | | удобной для бэкапов и передачи | + | | данных | + +-----------------------------------+-----------------------------------+ + +*Short имеет несколько дополнительных родственных форматов с небольшими отличиями друг от друга, подробнее см. документацию Output Options.* + +Некоторые другие команды: +--------------------- + +1. Просмотр журнала из выбранного файла: + + .. code-block:: bash + + journalctl –file /var/log/syslog + + В данном примере мы вывели журнал из файла syslog. + +2. Просмотр записей журнала ядра: + + .. code-block:: bash + + journalctl -k + + Команда выведет последние сообщения ядра, что поможет идентифицировать проблемы на системном уровне, связанные с оборудованием или драйверами. + +3. Просмотр использования дискового пространства журнала: + + .. code-block:: bash + + journalctl –disk-usage + + Данная команда выводит информацию о размере журналов, размере свободного места на диске и максимальном размере журнала. Используя опцию -t, мы дополнительно сможем вывести список журналов с их размерами. + +4. Очистка журнала: + + .. code-block:: bash + + journalctl –vacuum-size= + + Команда удаляет более старые записи из журнала для экономии места на диске. После вышеуказанного устанавливается лимит размера журнала. Например, для удаления прошлых записей и устаровления лимита в 10 Мб напишем: + + .. code-block:: bash + + journalctl –vacuum-size=10M + +5. Следует помнить, что все описанные команды можно комбинировать. Например, следующая команда позволит просмотреть все ошибки, произошедших в указанное время: + + .. code-block:: bash + + journalctl –since -p err + +Дополнительная информация +==================== + +1. https://www.freedesktop.org/software/systemd/man/journalctl.html - официальная документация + +2. https://wiki.archlinux.org/title/Systemd/Journal - Archlinux wiki + +3. https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs - небольшая статья на английском по работе с утилитой +4. https://gpt-chatbot.ru/chat-gpt-ot-openai-dlya-generacii-teksta - Chat GPT-4 + From 4e9ded9991a0ef4316a7b1c5699c8062fc86a3a0 Mon Sep 17 00:00:00 2001 From: LelyaIsmaylova <92105503+LelyaIsmaylova@users.noreply.github.com> Date: Fri, 12 May 2023 01:51:11 +0500 Subject: [PATCH 2/5] Delete Journalctl.rst --- Journalctl.rst | 381 ------------------------------------------------- 1 file changed, 381 deletions(-) delete mode 100644 Journalctl.rst diff --git a/Journalctl.rst b/Journalctl.rst deleted file mode 100644 index 053f2b1..0000000 --- a/Journalctl.rst +++ /dev/null @@ -1,381 +0,0 @@ -Работа с journalctl -##################### - -:Тема: Работа с journalctl -:Дата: 2023-05-11 -:Авторы: Клестова Л. А., Куленкамп Д. К. - -.. default-role:: code -.. contents:: Содержание - -Описание библиотеки -==================== -Утилита логирования journalctl является частью systemd - системного демона, являющегося подсистемой инициализации Linux. Библиотека предназначена для управления системным журналом, что позволяет просматривать и анализировать различные процессы и события, происходящие в ОС. Journalctl поддерживает централизованное хранение журнала, фильтрацию, поиск и многое другое. Все это может использоваться для диагностики и устранения неполадок, обеспечения безопасности, отслеживания производительности и контроля соответствия внутренним стандартам. - -Структура журнала логов -==================== -Журнал логов, с которым работает утилита, имеет определенную структуру. Каждая запись в журнале представляет из себя сообщения от системы, состоящие из временных отметок, типа события и его уровня важности, источника сообщения, текста сообщения и метаданных. Логи в systemd записываются в соответствии с стандартным протоколом syslog. Рассмотрим перечисленные пункты подробнее. - -Временные отметки ------------------- - -Время записывается в формате YYYY-MM-DD HH:MM:SS, например: “2023-04-12 12:34:56”. -По умолчанию systemd записывает в логах время с аппаратных часов (RTC, Real Time Clock), однако его можно настроить на универсальное координированное время UTC в соответствии с нужным часовым поясом. - -Уровни важности (приоритет) ----------------------------- - - +----------+--------------------------------+---------------+------------------------------+ - | | | | | - | Значение | Важность | Кодовое слово | Описание | - | | | | | - +==========+================================+===============+==============================+ - | 0 | Emergency (Экстренная ситуация)| emerg | Системой нельзя пользоваться | - +----------+--------------------------------+---------------+------------------------------+ - | 1 | Alert (Тревога) | alert | Нужно исправить немедленно | - +----------+--------------------------------+---------------+------------------------------+ - | 2 | Critical (Критический) | crit | Критические состояния | - +----------+--------------------------------+---------------+------------------------------+ - | 3 | Error (Ошибка) | err | Ошибка | - +----------+--------------------------------+---------------+------------------------------+ - | 4 | Warning (Предупреждение) | warning | Далее может произойти ошибка | - +----------+--------------------------------+---------------+------------------------------+ - | 5 | Notice (Замечание) | notice | Необычные события, не ошибки | - +----------+--------------------------------+---------------+------------------------------+ - | | | | Обычные операционные | - | 6 | Informational (Информационный) | info | сообщения, не требуют | - | | | | действий | - +----------+--------------------------------+---------------+------------------------------+ - | | | | Сообщения, которые могут | - | 7 | Debug (Отладка) | debug | быть полезны только | - | | | | при отладке | - +----------+--------------------------------+---------------+------------------------------+ - - - -Источники сообщения ---------------------- -Источники сообщения обозначаются с помощью кодов источников (Facility code) и лежат в диапазоне от 0 до 23. - - +-----------------------+-----------------------+-----------------------+ - | Значение | Кодовое слово | Описание | - +=======================+=======================+=======================+ - | 0 | kern | Сообщения от ядра | - +-----------------------+-----------------------+-----------------------+ - | 1 | user | Сообщения уровня | - | | | пользователя | - +-----------------------+-----------------------+-----------------------+ - | 2 | mail | Почтовая система | - +-----------------------+-----------------------+-----------------------+ - | 3 | daemon | Системные демоны | - +-----------------------+-----------------------+-----------------------+ - | 4 | auth | Сообщения о | - | | | безопасности | - | | | или авторизации | - +-----------------------+-----------------------+-----------------------+ - | 5 | syslog | Сообщения | - | | | генерируемые | - | | | syslog | - +-----------------------+-----------------------+-----------------------+ - | 6 | lpr | Протокол демона | - | | | построчной печати | - | | | (Line printer | - | | | subsystem), | - | | | архаична | - +-----------------------+-----------------------+-----------------------+ - | 7 | news | Подсистема | - | | | новостной сети | - | | | (архаична) | - +-----------------------+-----------------------+-----------------------+ - | 8 | uucp | Unix-to-Unix copy | - | | | protocol, система | - | | | копирования между | - | | | компьютерами | - +-----------------------+-----------------------+-----------------------+ - | 9 | | Демон часов | - +-----------------------+-----------------------+-----------------------+ - | 10 | authpriv | Сообщения о | - | | | безопасности | - | | | или авторизации | - +-----------------------+-----------------------+-----------------------+ - | 11 | ftp | Сообщения от | - | | | FTP-демона | - | | | (протокол передачи | - | | | файлов) | - +-----------------------+-----------------------+-----------------------+ - | 12 | | Сообщения NTP | - | | | демона, регулирует | - | | | системное время | - +-----------------------+-----------------------+-----------------------+ - | 13 | | Аудит логов | - +-----------------------+-----------------------+-----------------------+ - | 14 | | Предупреждения | - | | | логов | - +-----------------------+-----------------------+-----------------------+ - | 15 | cron | Демон расписания | - +-----------------------+-----------------------+-----------------------+ - | 16 | local0 | локальное | - | | | использование 0 | - +-----------------------+-----------------------+-----------------------+ - | 17 | local1 | локальное | - | | | использование 1 | - +-----------------------+-----------------------+-----------------------+ - | 18 | local2 | локальное | - | | | использование 2 | - +-----------------------+-----------------------+-----------------------+ - | 19 | local3 | локальное | - | | | использование 3 | - +-----------------------+-----------------------+-----------------------+ - | 20 | local4 | локальное | - | | | использование 4 | - +-----------------------+-----------------------+-----------------------+ - | 21 | local5 | локальное | - | | | использование 5 | - +-----------------------+-----------------------+-----------------------+ - | 22 | local6 | локальное | - | | | использование 6 | - +-----------------------+-----------------------+-----------------------+ - | 23 | local7 | локальное | - | | | использование 7 | - +-----------------------+-----------------------+-----------------------+ - -Текст сообщения -------------------- - -Текст сообщения содержит описание процессов, происходящих в системе, например, когда сервис запущен или остановлен, ошибки возникшие при выполнении, название сервисов и детали произошедших событий. - -Метаданные ---------------------- - -Метаданные могут иметь различное содержание в зависимости от их настроек, часто включают в себя пользовательский идентификатор, идентификатор устройства, имя хоста, идентификатор загрузки (boot_id) и т.д. - -Установка утилиты -==================== - -Как уже было ранее сказано, journalctl является частью systemd, а потому его не нужно устанавливать отдельно. Установка systemd осуществляется через пакетный менеджер используемого дистрибутива. - -Например, для дистрибутивов Ubuntu и Debian используется команда: - -.. code-block:: bash - - sudo art-get install systemd - -Для CentOS, Fedora и RHEL: - -.. code-block:: bash - - sudo yum install systemd - -А для Arch Linux: - -.. code-block:: bash - - sudo pacman -S systemd - -Вместе с установкой пакета systemd теперь можно использовать и его часть - journalctl. Перейдем к изучению основных команд. - -Основные команды -================= -Просмотр журнала логов ---------------------- -journalctl – базовая команда, при вводе в командную строку без дополнений выводит все доступные вызывающему пользователю логи в системе. Рассмотрим различные вариации данной команды, ориентирующиеся на нужды пользователя: - -1. Просмотр журнала событий: - - .. code-block:: bash - - journalctl -2. Просмотр журнала с конца: - - .. code-block:: bash - - journalctl -r -3. Просмотр журнала в формате, более удобном для чтения: - - .. code-block:: bash - - journalctl -o cat - - При использовании данной команды выводится полный текст сообщений журнала вместо сокращенного формата, используемого по умолчанию. - -4. Просмотр журнала с последними записями: - - .. code-block:: bash - - journalctl -n - - Опция “-n” указывает, сколько последних записей хочет получить на выход пользователь. Например, при вводе команды - - .. code-block:: bash - - journalctl -n 10 - - будет показано 10 последних записей системного журнала. - -5. Просмотр журнала с записями, созданными после указанного времени: - - .. code-block:: bash - - journalctl –since - - После опции “–since” нужно указать начальное время просмотра журнала. Время в данной команде может быть задано в различных командах: - - .. code-block:: bash - - journalctl –since today - показ всех записей для сегодняшнего дня - journalctl –since 2023-06-10 - показ всех записей с 10 июня 2023 года - journalctl –since “n days/hours/minutes ago” - показ всех записей, которые были созданы в течение последних n дней/часов/минут - -6. Просмотр журнала с записями, созданными до указанного времени: - - .. code-block:: bash - - journalctl –until - -7. Просмотр журнала с записями за определенное время: - - .. code-block:: bash - - journalctl –since “2023-06-10 10:00:00” –until “2023-06-10 12:00:00” - - Данная команда выводит записи, сделанные в журнале в выбранном промежутке времени. Journalctl предоставляет возможность выбирать таким же образом отдельно только дату или только время. Если не введено время, то по умолчанию ставится 00:00:00. При последнем варианте по умолчанию выбирается текущий день. Для выбора другого дня работают слова “yesterday”, “today”, “tomorrow”. - -8. Просмотр журнала в режиме реального времени: - - .. code-block:: bash - - journalctl -f - - Вывод журнала осуществляется с непрерывным обновлением. - - -Поиск определенных логов: ---------------------- -1. Поиск событий: - - .. code-block:: bash - - journalctl -u - - Команда выводит события, связанные с выбранной службой. - -2. Поиск событий с выбранным приоритетом: - - .. code-block:: bash - - journalctl -p - - Например, следующая команда выводит события с ошибками: - - .. code-block:: bash - - journalctl -p err - -3. Поиск событий с определенным словом или фразой: - - .. code-block:: bash - - journalctl /message/ - - Команда выведет события, которые содержат данное слово или фразу. - -4. Поиск логов с определенным номером процесса: - - .. code-block:: bash - - journalctl -b 0 - - Например, команда выше выведет нам журнал последней загрузки системы. - -Настройки вывода журнала: ---------------------- -Так как логи подчиняются единой структуре, то journalctl может вывести их в различных форматах. -Следующие настройки изменяют то, как отображается вывод данных: - - .. code-block:: bash - - journalctl --output= или journalctl -o - -Выше уже был пример использования команды journalctl -o cat. Базовая команда принимает следующие значения: - - +-----------------------------------+-----------------------------------+ - | short | Стандартный вывод логов в | - | | формате syslog | - +-----------------------------------+-----------------------------------+ - | verbose | Отображает информацию в более | - | | подробном, пользовательском | - | | формате | - +-----------------------------------+-----------------------------------+ - | json | Отображает логи в формате | - | | JSON, один лог за раз | - +-----------------------------------+-----------------------------------+ - | json-pretty | Отображает логи в формате | - | | JSON, но в нескольких строках, | - | | для лучшей читаемости | - +-----------------------------------+-----------------------------------+ - | cat | Отображает только сообщение | - | | каждого лога без заголовка | - +-----------------------------------+-----------------------------------+ - | export | Переводит журнал в поток | - | | сообщений в бинарной записи, | - | | удобной для бэкапов и передачи | - | | данных | - +-----------------------------------+-----------------------------------+ - -*Short имеет несколько дополнительных родственных форматов с небольшими отличиями друг от друга, подробнее см. документацию Output Options.* - -Некоторые другие команды: ---------------------- - -1. Просмотр журнала из выбранного файла: - - .. code-block:: bash - - journalctl –file /var/log/syslog - - В данном примере мы вывели журнал из файла syslog. - -2. Просмотр записей журнала ядра: - - .. code-block:: bash - - journalctl -k - - Команда выведет последние сообщения ядра, что поможет идентифицировать проблемы на системном уровне, связанные с оборудованием или драйверами. - -3. Просмотр использования дискового пространства журнала: - - .. code-block:: bash - - journalctl –disk-usage - - Данная команда выводит информацию о размере журналов, размере свободного места на диске и максимальном размере журнала. Используя опцию -t, мы дополнительно сможем вывести список журналов с их размерами. - -4. Очистка журнала: - - .. code-block:: bash - - journalctl –vacuum-size= - - Команда удаляет более старые записи из журнала для экономии места на диске. После вышеуказанного устанавливается лимит размера журнала. Например, для удаления прошлых записей и устаровления лимита в 10 Мб напишем: - - .. code-block:: bash - - journalctl –vacuum-size=10M - -5. Следует помнить, что все описанные команды можно комбинировать. Например, следующая команда позволит просмотреть все ошибки, произошедших в указанное время: - - .. code-block:: bash - - journalctl –since -p err - -Дополнительная информация -==================== - -1. https://www.freedesktop.org/software/systemd/man/journalctl.html - официальная документация - -2. https://wiki.archlinux.org/title/Systemd/Journal - Archlinux wiki - -3. https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs - небольшая статья на английском по работе с утилитой -4. https://gpt-chatbot.ru/chat-gpt-ot-openai-dlya-generacii-teksta - Chat GPT-4 - From 6cb0eddac8ac04e1a99a51bd1b39463952ef0026 Mon Sep 17 00:00:00 2001 From: LelyaIsmaylova <92105503+LelyaIsmaylova@users.noreply.github.com> Date: Fri, 12 May 2023 01:51:33 +0500 Subject: [PATCH 3/5] Add files via upload --- content/Journalctl.rst | 381 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 content/Journalctl.rst diff --git a/content/Journalctl.rst b/content/Journalctl.rst new file mode 100644 index 0000000..053f2b1 --- /dev/null +++ b/content/Journalctl.rst @@ -0,0 +1,381 @@ +Работа с journalctl +##################### + +:Тема: Работа с journalctl +:Дата: 2023-05-11 +:Авторы: Клестова Л. А., Куленкамп Д. К. + +.. default-role:: code +.. contents:: Содержание + +Описание библиотеки +==================== +Утилита логирования journalctl является частью systemd - системного демона, являющегося подсистемой инициализации Linux. Библиотека предназначена для управления системным журналом, что позволяет просматривать и анализировать различные процессы и события, происходящие в ОС. Journalctl поддерживает централизованное хранение журнала, фильтрацию, поиск и многое другое. Все это может использоваться для диагностики и устранения неполадок, обеспечения безопасности, отслеживания производительности и контроля соответствия внутренним стандартам. + +Структура журнала логов +==================== +Журнал логов, с которым работает утилита, имеет определенную структуру. Каждая запись в журнале представляет из себя сообщения от системы, состоящие из временных отметок, типа события и его уровня важности, источника сообщения, текста сообщения и метаданных. Логи в systemd записываются в соответствии с стандартным протоколом syslog. Рассмотрим перечисленные пункты подробнее. + +Временные отметки +------------------ + +Время записывается в формате YYYY-MM-DD HH:MM:SS, например: “2023-04-12 12:34:56”. +По умолчанию systemd записывает в логах время с аппаратных часов (RTC, Real Time Clock), однако его можно настроить на универсальное координированное время UTC в соответствии с нужным часовым поясом. + +Уровни важности (приоритет) +---------------------------- + + +----------+--------------------------------+---------------+------------------------------+ + | | | | | + | Значение | Важность | Кодовое слово | Описание | + | | | | | + +==========+================================+===============+==============================+ + | 0 | Emergency (Экстренная ситуация)| emerg | Системой нельзя пользоваться | + +----------+--------------------------------+---------------+------------------------------+ + | 1 | Alert (Тревога) | alert | Нужно исправить немедленно | + +----------+--------------------------------+---------------+------------------------------+ + | 2 | Critical (Критический) | crit | Критические состояния | + +----------+--------------------------------+---------------+------------------------------+ + | 3 | Error (Ошибка) | err | Ошибка | + +----------+--------------------------------+---------------+------------------------------+ + | 4 | Warning (Предупреждение) | warning | Далее может произойти ошибка | + +----------+--------------------------------+---------------+------------------------------+ + | 5 | Notice (Замечание) | notice | Необычные события, не ошибки | + +----------+--------------------------------+---------------+------------------------------+ + | | | | Обычные операционные | + | 6 | Informational (Информационный) | info | сообщения, не требуют | + | | | | действий | + +----------+--------------------------------+---------------+------------------------------+ + | | | | Сообщения, которые могут | + | 7 | Debug (Отладка) | debug | быть полезны только | + | | | | при отладке | + +----------+--------------------------------+---------------+------------------------------+ + + + +Источники сообщения +--------------------- +Источники сообщения обозначаются с помощью кодов источников (Facility code) и лежат в диапазоне от 0 до 23. + + +-----------------------+-----------------------+-----------------------+ + | Значение | Кодовое слово | Описание | + +=======================+=======================+=======================+ + | 0 | kern | Сообщения от ядра | + +-----------------------+-----------------------+-----------------------+ + | 1 | user | Сообщения уровня | + | | | пользователя | + +-----------------------+-----------------------+-----------------------+ + | 2 | mail | Почтовая система | + +-----------------------+-----------------------+-----------------------+ + | 3 | daemon | Системные демоны | + +-----------------------+-----------------------+-----------------------+ + | 4 | auth | Сообщения о | + | | | безопасности | + | | | или авторизации | + +-----------------------+-----------------------+-----------------------+ + | 5 | syslog | Сообщения | + | | | генерируемые | + | | | syslog | + +-----------------------+-----------------------+-----------------------+ + | 6 | lpr | Протокол демона | + | | | построчной печати | + | | | (Line printer | + | | | subsystem), | + | | | архаична | + +-----------------------+-----------------------+-----------------------+ + | 7 | news | Подсистема | + | | | новостной сети | + | | | (архаична) | + +-----------------------+-----------------------+-----------------------+ + | 8 | uucp | Unix-to-Unix copy | + | | | protocol, система | + | | | копирования между | + | | | компьютерами | + +-----------------------+-----------------------+-----------------------+ + | 9 | | Демон часов | + +-----------------------+-----------------------+-----------------------+ + | 10 | authpriv | Сообщения о | + | | | безопасности | + | | | или авторизации | + +-----------------------+-----------------------+-----------------------+ + | 11 | ftp | Сообщения от | + | | | FTP-демона | + | | | (протокол передачи | + | | | файлов) | + +-----------------------+-----------------------+-----------------------+ + | 12 | | Сообщения NTP | + | | | демона, регулирует | + | | | системное время | + +-----------------------+-----------------------+-----------------------+ + | 13 | | Аудит логов | + +-----------------------+-----------------------+-----------------------+ + | 14 | | Предупреждения | + | | | логов | + +-----------------------+-----------------------+-----------------------+ + | 15 | cron | Демон расписания | + +-----------------------+-----------------------+-----------------------+ + | 16 | local0 | локальное | + | | | использование 0 | + +-----------------------+-----------------------+-----------------------+ + | 17 | local1 | локальное | + | | | использование 1 | + +-----------------------+-----------------------+-----------------------+ + | 18 | local2 | локальное | + | | | использование 2 | + +-----------------------+-----------------------+-----------------------+ + | 19 | local3 | локальное | + | | | использование 3 | + +-----------------------+-----------------------+-----------------------+ + | 20 | local4 | локальное | + | | | использование 4 | + +-----------------------+-----------------------+-----------------------+ + | 21 | local5 | локальное | + | | | использование 5 | + +-----------------------+-----------------------+-----------------------+ + | 22 | local6 | локальное | + | | | использование 6 | + +-----------------------+-----------------------+-----------------------+ + | 23 | local7 | локальное | + | | | использование 7 | + +-----------------------+-----------------------+-----------------------+ + +Текст сообщения +------------------- + +Текст сообщения содержит описание процессов, происходящих в системе, например, когда сервис запущен или остановлен, ошибки возникшие при выполнении, название сервисов и детали произошедших событий. + +Метаданные +--------------------- + +Метаданные могут иметь различное содержание в зависимости от их настроек, часто включают в себя пользовательский идентификатор, идентификатор устройства, имя хоста, идентификатор загрузки (boot_id) и т.д. + +Установка утилиты +==================== + +Как уже было ранее сказано, journalctl является частью systemd, а потому его не нужно устанавливать отдельно. Установка systemd осуществляется через пакетный менеджер используемого дистрибутива. + +Например, для дистрибутивов Ubuntu и Debian используется команда: + +.. code-block:: bash + + sudo art-get install systemd + +Для CentOS, Fedora и RHEL: + +.. code-block:: bash + + sudo yum install systemd + +А для Arch Linux: + +.. code-block:: bash + + sudo pacman -S systemd + +Вместе с установкой пакета systemd теперь можно использовать и его часть - journalctl. Перейдем к изучению основных команд. + +Основные команды +================= +Просмотр журнала логов +--------------------- +journalctl – базовая команда, при вводе в командную строку без дополнений выводит все доступные вызывающему пользователю логи в системе. Рассмотрим различные вариации данной команды, ориентирующиеся на нужды пользователя: + +1. Просмотр журнала событий: + + .. code-block:: bash + + journalctl +2. Просмотр журнала с конца: + + .. code-block:: bash + + journalctl -r +3. Просмотр журнала в формате, более удобном для чтения: + + .. code-block:: bash + + journalctl -o cat + + При использовании данной команды выводится полный текст сообщений журнала вместо сокращенного формата, используемого по умолчанию. + +4. Просмотр журнала с последними записями: + + .. code-block:: bash + + journalctl -n + + Опция “-n” указывает, сколько последних записей хочет получить на выход пользователь. Например, при вводе команды + + .. code-block:: bash + + journalctl -n 10 + + будет показано 10 последних записей системного журнала. + +5. Просмотр журнала с записями, созданными после указанного времени: + + .. code-block:: bash + + journalctl –since + + После опции “–since” нужно указать начальное время просмотра журнала. Время в данной команде может быть задано в различных командах: + + .. code-block:: bash + + journalctl –since today - показ всех записей для сегодняшнего дня + journalctl –since 2023-06-10 - показ всех записей с 10 июня 2023 года + journalctl –since “n days/hours/minutes ago” - показ всех записей, которые были созданы в течение последних n дней/часов/минут + +6. Просмотр журнала с записями, созданными до указанного времени: + + .. code-block:: bash + + journalctl –until + +7. Просмотр журнала с записями за определенное время: + + .. code-block:: bash + + journalctl –since “2023-06-10 10:00:00” –until “2023-06-10 12:00:00” + + Данная команда выводит записи, сделанные в журнале в выбранном промежутке времени. Journalctl предоставляет возможность выбирать таким же образом отдельно только дату или только время. Если не введено время, то по умолчанию ставится 00:00:00. При последнем варианте по умолчанию выбирается текущий день. Для выбора другого дня работают слова “yesterday”, “today”, “tomorrow”. + +8. Просмотр журнала в режиме реального времени: + + .. code-block:: bash + + journalctl -f + + Вывод журнала осуществляется с непрерывным обновлением. + + +Поиск определенных логов: +--------------------- +1. Поиск событий: + + .. code-block:: bash + + journalctl -u + + Команда выводит события, связанные с выбранной службой. + +2. Поиск событий с выбранным приоритетом: + + .. code-block:: bash + + journalctl -p + + Например, следующая команда выводит события с ошибками: + + .. code-block:: bash + + journalctl -p err + +3. Поиск событий с определенным словом или фразой: + + .. code-block:: bash + + journalctl /message/ + + Команда выведет события, которые содержат данное слово или фразу. + +4. Поиск логов с определенным номером процесса: + + .. code-block:: bash + + journalctl -b 0 + + Например, команда выше выведет нам журнал последней загрузки системы. + +Настройки вывода журнала: +--------------------- +Так как логи подчиняются единой структуре, то journalctl может вывести их в различных форматах. +Следующие настройки изменяют то, как отображается вывод данных: + + .. code-block:: bash + + journalctl --output= или journalctl -o + +Выше уже был пример использования команды journalctl -o cat. Базовая команда принимает следующие значения: + + +-----------------------------------+-----------------------------------+ + | short | Стандартный вывод логов в | + | | формате syslog | + +-----------------------------------+-----------------------------------+ + | verbose | Отображает информацию в более | + | | подробном, пользовательском | + | | формате | + +-----------------------------------+-----------------------------------+ + | json | Отображает логи в формате | + | | JSON, один лог за раз | + +-----------------------------------+-----------------------------------+ + | json-pretty | Отображает логи в формате | + | | JSON, но в нескольких строках, | + | | для лучшей читаемости | + +-----------------------------------+-----------------------------------+ + | cat | Отображает только сообщение | + | | каждого лога без заголовка | + +-----------------------------------+-----------------------------------+ + | export | Переводит журнал в поток | + | | сообщений в бинарной записи, | + | | удобной для бэкапов и передачи | + | | данных | + +-----------------------------------+-----------------------------------+ + +*Short имеет несколько дополнительных родственных форматов с небольшими отличиями друг от друга, подробнее см. документацию Output Options.* + +Некоторые другие команды: +--------------------- + +1. Просмотр журнала из выбранного файла: + + .. code-block:: bash + + journalctl –file /var/log/syslog + + В данном примере мы вывели журнал из файла syslog. + +2. Просмотр записей журнала ядра: + + .. code-block:: bash + + journalctl -k + + Команда выведет последние сообщения ядра, что поможет идентифицировать проблемы на системном уровне, связанные с оборудованием или драйверами. + +3. Просмотр использования дискового пространства журнала: + + .. code-block:: bash + + journalctl –disk-usage + + Данная команда выводит информацию о размере журналов, размере свободного места на диске и максимальном размере журнала. Используя опцию -t, мы дополнительно сможем вывести список журналов с их размерами. + +4. Очистка журнала: + + .. code-block:: bash + + journalctl –vacuum-size= + + Команда удаляет более старые записи из журнала для экономии места на диске. После вышеуказанного устанавливается лимит размера журнала. Например, для удаления прошлых записей и устаровления лимита в 10 Мб напишем: + + .. code-block:: bash + + journalctl –vacuum-size=10M + +5. Следует помнить, что все описанные команды можно комбинировать. Например, следующая команда позволит просмотреть все ошибки, произошедших в указанное время: + + .. code-block:: bash + + journalctl –since -p err + +Дополнительная информация +==================== + +1. https://www.freedesktop.org/software/systemd/man/journalctl.html - официальная документация + +2. https://wiki.archlinux.org/title/Systemd/Journal - Archlinux wiki + +3. https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs - небольшая статья на английском по работе с утилитой +4. https://gpt-chatbot.ru/chat-gpt-ot-openai-dlya-generacii-teksta - Chat GPT-4 + From 41adeb2ab08bdd0d7b17beb2f7b4262837f27269 Mon Sep 17 00:00:00 2001 From: LelyaIsmaylova <92105503+LelyaIsmaylova@users.noreply.github.com> Date: Fri, 12 May 2023 02:09:07 +0500 Subject: [PATCH 4/5] Update Journalctl.rst --- content/Journalctl.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/Journalctl.rst b/content/Journalctl.rst index 053f2b1..e905553 100644 --- a/content/Journalctl.rst +++ b/content/Journalctl.rst @@ -249,7 +249,7 @@ journalctl – базовая команда, при вводе в команд Вывод журнала осуществляется с непрерывным обновлением. -Поиск определенных логов: +Поиск определенных логов --------------------- 1. Поиск событий: @@ -287,7 +287,7 @@ journalctl – базовая команда, при вводе в команд Например, команда выше выведет нам журнал последней загрузки системы. -Настройки вывода журнала: +Настройки вывода журнала --------------------- Так как логи подчиняются единой структуре, то journalctl может вывести их в различных форматах. Следующие настройки изменяют то, как отображается вывод данных: @@ -324,7 +324,7 @@ journalctl – базовая команда, при вводе в команд *Short имеет несколько дополнительных родственных форматов с небольшими отличиями друг от друга, подробнее см. документацию Output Options.* -Некоторые другие команды: +Некоторые другие команды --------------------- 1. Просмотр журнала из выбранного файла: From a271522941670188677264401c00b63ca835d721 Mon Sep 17 00:00:00 2001 From: LelyaIsmaylova <92105503+LelyaIsmaylova@users.noreply.github.com> Date: Sun, 14 May 2023 13:28:40 +0500 Subject: [PATCH 5/5] Update Journalctl.rst --- content/Journalctl.rst | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/content/Journalctl.rst b/content/Journalctl.rst index e905553..a4d9fc8 100644 --- a/content/Journalctl.rst +++ b/content/Journalctl.rst @@ -334,8 +334,14 @@ journalctl – базовая команда, при вводе в команд journalctl –file /var/log/syslog В данном примере мы вывели журнал из файла syslog. + +2. Сохранение логов в файл: -2. Просмотр записей журнала ядра: + .. code-block:: bash + + journalctl > file_name + +3. Просмотр записей журнала ядра: .. code-block:: bash @@ -343,7 +349,7 @@ journalctl – базовая команда, при вводе в команд Команда выведет последние сообщения ядра, что поможет идентифицировать проблемы на системном уровне, связанные с оборудованием или драйверами. -3. Просмотр использования дискового пространства журнала: +4. Просмотр использования дискового пространства журнала: .. code-block:: bash @@ -351,7 +357,7 @@ journalctl – базовая команда, при вводе в команд Данная команда выводит информацию о размере журналов, размере свободного места на диске и максимальном размере журнала. Используя опцию -t, мы дополнительно сможем вывести список журналов с их размерами. -4. Очистка журнала: +5. Очистка журнала: .. code-block:: bash @@ -363,14 +369,24 @@ journalctl – базовая команда, при вводе в команд journalctl –vacuum-size=10M -5. Следует помнить, что все описанные команды можно комбинировать. Например, следующая команда позволит просмотреть все ошибки, произошедших в указанное время: +6. Следует помнить, что все описанные команды можно комбинировать. Например, следующая команда позволит просмотреть все ошибки, произошедших в указанное время: .. code-block:: bash journalctl –since -p err + +Практические задания +======================== +1. Убедитесь, что на вашем ПК установлена система инициализации systemd. В противном случае проведите ее установку, используя инструкцию из данной методички. + +2. Отобразите все ошибки, связанные с SSH-сервером, которые произошли за последний месяц. + +4. Сделайте фильтрацию отображенных логов по любому выбранному вами пользователю. + +3. Сохраните полученную информацию в файл с названием "user-name_errs_ssh" Дополнительная информация -==================== +=========================== 1. https://www.freedesktop.org/software/systemd/man/journalctl.html - официальная документация