Альт линукс ротация логов

Journald

Начиная с версии v38+ systemd имеет собственную систему регистрации событий, которая по умолчанию включена в дистрибутив openSUSE 12.2+. systemd-journalctl является неотъемлемой частью systemd и не может использоваться отдельно. Журналы данного инструмента хранятся в бинарном виде в /var/log/journal, что исключает возможность просмотра содержимого данных файлов стандартными утилитами обработки текстовых данных. При вызове инструмента без параметров покажет все содержимое журнала аналогичного классической системе лог-файлов syslog ( /var/log/messages )

Подробное описание работы с журналом, см (англ)

man systemd-journald man journalctl

Основные сведения

Ключи journalctl

  • Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 логи сеанса за два сеанса до текущего и т.д.) [1] :
  • Показать самые последние записи журнала, и продолжать печатать новые записи, при добавлении их в журнал:

Вывод лога в текстовый файл

Если вам нужно вывести лог в текстовый файл (например, чтобы сообщить разработчикам об ошибке), используйте конструкцию

'команда' > 'путь к текстовому файлу' 
journalctl -b > /home/user/debug.log

Фильтрация по дате и времени

Для фильтрации по дате и времени важны два ключа

в качестве значений для этих ключей могут использоваться:

journalctl --since "2017-05-05 00:01" --until "2017-05-06 01:40" 

— Слова «yesterday», «today», «tomorrow», «now»:

journalctl --since "yesterday" --until "2017-05-06 01:40" 

— Удобочитаемые выражения вида:

journalctl --since "10 hours ago" journalctl --since "1 minute ago" journalctl --since "50 minute ago" --until "5 minute ago" 

Примеры

journalctl --since "20 min ago" 
journalctl --since "2015-07-20 17:15:00" 
journalctl --since "yesterday" 
journalctl --since "09:00" --until "now" 
journalctl --since "10:00" --until "1 hour ago" 

Фильтрация по другим параметрам

journalctl /usr/lib/systemd/systemd

Журнал

  • Журнал хранится в двоичном формате, поэтому в окружении, где не установлен systemd, его логи можно посмотреть с помощью команды strings:
strings /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal | grep -i сообщение
  • Если же имеется файл журнала, например, с другого компьютера и systemd установлен (должно быть достаточно пакета journalctl из Sisyphus), то посмотреть его содержимое проще:
journalctl -D /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd
journalctl --file /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal

Недавние события

  • По умолчанию на консоль выводится информация о последних 10 событиях. С опцией -n можно указать необходимое число событий:

Анализ этапа загрузки

Для анализа этапа инициализации системы используется утилита systemd-analyze. Для установки делаем от root:

apt-get install systemd-analyze

Выявляем самые медленные процессы (от пользователя):

Читайте также:  Права linux active directory

Выводим график загрузки процессов в векторный рисунок:

systemd-analyze plot > file.svg

Основные настройки

Файл настройки находится в /etc/systemd/journald.conf и состоит из следующих секций:

  • Storage= Указывает, где хранить журнал. Доступны следующие параметры:
    • volatile Журнал хранится в оперативной памяти, т.е. в каталоге /run/log/journal.
    • persistent Данные хранятся на диске, т.е. в каталоге /var/log/journal
    • auto используется по-умолчанию
    • none Журнал не ведётся
    • Compress= Принимает значения «yes» или «no». Если включена (по-умолчанию) сообщения перед записью в журнал, будут сжиматься.
    • Seal= Принимает значения «yes» или «no». Если включена (по-умолчанию) будет включена защита Forward Secure Sealing (FSS), которая позволяет накладывать криптографические отпечатки на журнал системных логов.
    • SplitMode= Определяет доступ к журналу пользователям. Доступны следующие параметры:
      • uid Все пользователи получают доступ к чтению системного журнала. Используется по-умочанию.
      • login Каждый пользователь может читать только сообщения, относящиеся к его сеансу.
      • none Пользователи не имеют доступа к системному журналу.
      • SyncIntervalSec= Таймаут, после которого происходит синхронизация и запись журнала на диск. Относится только к уровням ERR, WARNING, NOTICE, INFO, DEBUG. Сообщения уровня CRIT, ALERT, EMERG записываются сразу на диск.
      • RateLimitInterval= и RateLimitBurst= Настройки ограничения скорости генерации сообщений для каждой службы. Если в интервале времени, определяемого RateLimitInterval=, больше сообщений, чем указано в RateLimitBurst= регистрируются службой, все дальнейшие сообщения в интервале отбрасываются, пока интервал не закончится.При этом генерируется сообщение о количестве отброшенных сообщений. По умолчанию 1000 сообщений за 30 секунд. Единицы измерения: «s», «min», «h», «ms», «us». Чтобы выключить ограничение скорости, установите значения в 0.
      • MaxRetentionSec= Максимальное время хранения записей журнала. Единицы измерения: year, month, week, day, h или m
      • MaxFileSec= Максимальное время хранения записей в одном файле журнала, после которого он переводится в следующий.
      • ForwardToSyslog=, ForwardToKMsg=, ForwardToConsole=, ForwardToWall= Определяют куда направлять сообщения: в традиционный системный журнал Syslog, в буфер журнала ядра (kmsg), на системную консоль, или на стену, чтобы было видно всем зарегистрированным пользователям. Эти опции принимают логические аргументы. Если переадресация на Syslog включен, но Syslog демон не работает, соответствующий параметр не имеет никакого эффекта. По умолчанию, только стена включена. Эти параметры могут быть переопределены во время загрузки с параметрами командной строки ядра systemd.journald.forward_to_syslog =, systemd.journald.forward_to_kmsg =, systemd.journald.forward_to_console = и systemd.journald.forward_to_wall =. При пересылке в консоль, должен быть установлен TTYPath =, как будет описано ниже.
      • TTYPath= Назначает консоль TTY, для вывода сообщений, если установлен параметр ForwardToConsole=yes. По-умолчанию, используется /dev/console. Для того, чтобы вывести на 12 консоль, устанавливаем TTYPath=/dev/tty12. Для того, чтобы вывести на последовательный порт, устанавливаем TTYPath=/dev/ttySX, где X номер com-порта.
      • MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall= Определяет максимальный уровень сообщений который сохраняется в журнал, выводится на традиционный системный журнал Syslog, буфер журнала ядра (kmsg), консоль или стену. Значения: emerg, alert, crit, err, warning, notice, info, debug или цифры от 0 до 7 (соответствуют уровням).

      Управление логированием

      Со временем объём логов растёт, и они занимают всё больше места на жёстком диске. Узнать объём имеющихся на текущий момент логов можно с помощью команды:

      Настройка ротации логов осуществляется с помощью опций −−vacuum-size и −−vacuum-time. Первая из них устанавливает предельно допустимый размер для хранимых на диске логов (в нашем примере — 1 ГБ):

      Как только объём логов превысит указанную цифру, лишние файлы будут автоматические удалены. Аналогичным образом работает опция −−vacuum-time. Она устанавливает для логов срок хранения, по истечении которого они будут автоматически удалены:

      journalctl --vacuum-time=1years
      • Настройка ротации в конфигурационном файле. Настройки ротации логов можно также прописать в конфигурационном файле /еtc/systemd/journald.conf, который включает в числе прочих следующие параметры:
        • SystemMaxUse= — максимальный объём, который логи могут занимать на диске;
        • SystemKeepFree= — объём свободного места, которое должно оставаться на диске после сохранения логов;
        • SystemMaxFileSize= — объём файла лога, по достижении которого он должен быть удален с диска;
        • RuntimeMaxUse= — максимальный объём, который логи могут занимать в файловой системе /run;
        • RuntimeKeepFree= — объём свободного места, которое должно оставаться в файловой системе /run после сохранения логов;
        • RuntimeMaxFileSize= — объём файла лога, по достижении которого он должен быть удален из файловой системы /run.

        Единицы измерения: K, M, G, T, P, E.

        Возврат syslog

        Допускается либо параллельное ведение журналов в syslog, либо полное переключение на него. За это отвечают параметры Storage и ForwardToSyslog в /etc/systemd/journald.conf:

        [Journal] Storage=none ForwardToSyslog=yes

        После этого надо установить logrotate и выбрать один из вариантов syslog.

        syslog-ng

        Начиная со сборки 3.24.1-alt1 следует установить пакет syslog-ng-journal: altbug:36454.

        rsyslog

        Установить пакет rsyslog-classic.

        Запись в журнал из скрипта

        echo "MESSAGE" | systemd-cat -t myunit

        где myunit — имя юнита.

        Ссылки

        Источник

        Альт линукс ротация логов

        Product SiteDocumentation Site

        ⁠Глава 56. Что происходит в системе

        Человеку, отвечающему за работоспособность системы, очень важно всегда отчётливо представлять происходящие в ней события. Теоретически, никакое происшествие не должно ускользнуть от его внимания. Однако компьютерные системы настолько сложны, что отслеживать все события в них — выше человеческих возможностей. Для того чтобы довести поток служебной информации до разумного объёма, её надо просеять (выкинуть незначащие данные), классифицировать (разделить на несколько групп сообразно тематике) и журнализировать (сохранить в доступном виде для дальнейшего анализа).

        В ОС Альт Образование функция записи информации о системных событиях и событиях безопасности обеспечивается с помощью системной службы systemd-journald . Она создает и поддерживает структурированные, индексированные журналы, на основе регистрируемой информации, полученной от ядра, от пользовательских процессов через вызов Libc syslog, от потоков STDOUT/STDERR системных служб через собственный API. Журналы данного инструмента хранятся в бинарном виде в /var/log/journal , что исключает возможность просмотра содержимого данных файлов стандартными утилитами обработки текстовых данных. Для просмотра логов используется утилита journalctl .

        journalctl -f — покажет только последние сообщения и продолжит печатать новые записи, при добавлении их в журнал.

        Для ознакомления с прочими возможностями, читайте руководство по journalctl . Для этого используйте команду man journalctl .

        Стоит заметить, что некоторые службы (например, веб-сервер apache ) самостоятельно ведут журнализацию своих событий, поэтому информацию о количестве и местоположении их журналов можно почерпнуть из их файлов настроек (обычно, журналы хранятся в /var/log/ ).

        Файл настройки journald находится в /etc/systemd/journald.conf . Справку по этому файлу можно получить выполнив команду man journald.conf .

        Новые рапорты, поступающие в системный журнал, наиболее актуальны, а предыдущие, по мере их устаревания, эту актуальность утрачивают. Если самые старые данные в журнале не удалять, файловая система рано или поздно окажется переполненной. Узнать объем имеющихся на текущий момент логов можно с помощью команды:

        для удаления старых файлов журналов с помощью указания размера (опция —vacuum-size ), необходимо установить предельно допустимый размер для хранимых на диске журналов, как только объем журналов превысит указанную цифру, лишние файлы будут автоматические удалены:

        journalctl --vacuum-size=200M

        для удаления старых записей по времени (опция —vacuum-time ), необходимо установить для журналов срок хранения, по истечении которого они будут автоматически удалены:

        journalctl --vacuum-time=1months

        Настройки ротации файлов журнала можно также прописать в конфигурационном файле /еtc/systemd/journald.conf .

        Некоторые файлы в /var/log/ — не текстовые, они являются неполноценными журналами и представляют собой «свалку событий» для служб авторизации и учёта. Текстовую информацию о входе пользователей в систему и выходе оттуда можно получить по команде last , а узнать о тех, кто в данный момент пользуется системой, помогут команды w и who .

        Множество важной информации может дать анализ загруженности системы — сведения о процессорном времени и потреблении оперативной памяти ( ps , top , vmstat ), сведения об использовании дискового пространства ( du , df , lsof ) и сведения о работе сетевых устройств ( netstat ).

        Источник

Оцените статью
Adblock
detector