Чистка логов astra linux

Организация системных служб в Astra Linux

Обновления Astra Linux, выпущенные после очередного обновления 1.5, используют систему управления службами systemd (подробнее см. Systemd). В состав компонент systemd, предоставляемых при установке ОС входят:

  • systemd — системная служба управления службами;
  • systemctl – инструмент командной строки для управления службами;
  • systemd-analyze — инструмент командной строки для получения статистики работы служб;
  • journald – системная служба ведения журналов служб;
  • journalctl — инструмент командной строки для анализа журналов служб.

Инструмент journalctl для анализа журналов системных служб

Общая команда для просмотра журналов:

Команды выводит все записи из всех журналов начиная с момента последней загрузки ОС. Записи выводятся в порядке регистрации. При просмотре можно использовать клавиши PageUp и PageDown для поэкранного листания, Пробел — для поэкранного последовательного просмотра, Enter — для построчного последовательного просмотра, Q — для выхода. Отметки времени регистрации событий по умолчанию отображаются в локальном времени. Для отображения отметок времени в формате UTC (см. Службы синхронизации времени в Astra Linux) можно использовать опцию —utc:

мар 18 14:28:46.171881 se10704 kernel:

или опция short-iso-precise (доступна начиная с очередного обновления x.7):

2023-03-18T14:28:46.171893+0300 se10704 kernel:

Для фильтрации сообщений по критичности можно использовать опцию -p с указанием уровня критичности. Для обозначения критичности используются следующие значения:

  • 0 — emergency — неработоспособность системы;
  • 1 — alerts — предупреждения, требующие немедленного вмешательства;
  • 2 — critical — критическое состояние;
  • 3 — errors — ошибки;
  • 4 — warning — предупреждения;
  • 5 — notice — уведомления;
  • 6 — info — информационные сообщения;
  • 7 — debug — отладочные сообщения.

При указании уровня критичности выводятся все сообщения с указанным и меньшим уровнем. Например если указать значение -p 3, то будут показаны все сообщения с уровнями 3, 2, 1 и 0 (т.е. все сообщения об ошибках).

Читайте также:  Qt static build for linux

Источники данных для службы journalctl

Служба journald консолидирует данные из следующих источников:

  • сокет /run/systemd/journal/stdout – данные, поступающие от служб systemd;
  • устройство /dev/kmsg — журнал ядра;
  • устройство /dev/log ( /run/systemd/joural/dev-log) — данные приложений, поступающие через службу syslog.

Сохранение журналов после перезагрузок

При настройках, заданных по умолчанию служба journald перезаписывает журналы при каждой перезагрузке. Соответственно, вызов инструмента journalctl выведет журнал начиная с момента последней загрузки системы. Для сохранения журналов на постоянной основе (после перезагрузки) следует создать каталог /var/log/journal/, в котором и будут на постоянной основе сохраняться журналы. Для управления постоянным сохранением журналов используется параметр Storage в файле /etc/systemd/journald.conf. По умолчанию этот параметр не задан (имеет значение Auto). При этом каталог постоянного хранения журналов /var/log/journal/:

  • используется, если он существует;
  • не создается автоматически, и если этого каталога не существует, то журнал будет записываться в /run/log/journal без сохранения между перезагрузками.

Каталог будет /var/log/journal/ создаваться автоматически если значение параметра Storage изменить на persistent и перезапустить systemd-journald.service или перезагрузить ОС. Подробнее см. man journald.conf.

Проверить наличие сохраненных журналов можно командой:

-1 98b893e51c0a43249b8b6e824266fc1c Tue 2023-02-28 07:46:21 MSK—Tue 2023-02-28 15:22:02 MSK 0 cdd48e77de394ebca4df162359bfb412 Tue 2023-02-28 15:22:17 MSK—Tue 2023-02-28 15:41:34 MSK

В примере вывода первое поле представляет собой номер журнала, второе поле — идентификатор загрузки. Далее предоставлен диапазон времени, в течение которого выполнялась запись в журнал. Эти значения можно использовать при выборе журнала для просмотра. Например, просмотреть журнал последней загрузки ОС, можно командой:

Фильтрация сообщений

Просмотр сообщений определенной загрузки

Для выбора загрузки для фильтрации сообщений можно использовать опцию -b с указанием номера журнала. Например, просмотреть журнал последней загрузки ОС, можно командой:

Просмотр сообщений за определенный период времени

Для задания периодов времени для фильтрации событий при просмотре можно использовать опции —snce (с какого времени) и —until (до какого времени) в сочетании с лексемами “yesterday” (вчера), “today” (сегодня), “tomorrow” (завтра), или “now” (сейчас). Например:

Фильтрация сообщений ядра

Чтобы отдельно просмотреть сообщения ядра используется ключом -k:

Фильтрация сообщений определенных служб и приложений

Для фильтрации сообщений отдельных служб можно использовать опцию -u. Например, для просмотра сообщений службы NetworkManager можно использовать команду:

Читайте также:  Linux именование сетевых интерфейсов

Также можно отфильтровать сообщения приложения, указав его исполняемый файл. Например, для менеджера дисплеев fly-dm:

Дополнительные опции просмотра

Следить за появлением новых сообщений:

По умолчанию journalctl отсекает части выводимых строк, не вписывающиеся в экран по ширине. Управление этой возможностью производится значением переменной окружения SYSTEMD_LESS, определяющей опции программы less (программа постраничного просмотра, используемая по умолчанию). По умолчанию переменная имеет значение FRSXMK. Опция S отвечает за перенос строк, длина которых превышает ширину экрана терминала. Если опцию S исключить, то строки не будут обрезаться и прочесть их содержимое можно с помощью клавиш «стрелка влево» и «стрелка вправо». Пример команды:

Ограничение размера журнала

Если журналы сохраняются после перезагрузки, то по умолчанию размер журналов ограничен 10% от объема файлового раздела и максимально может занять 4 Гб дискового пространства. Максимальный объем журнала можно задать явно в параметре SystemMaxUse в файле /etc/systemd/journald.conf.

Удаление журналов

Удалить файлы журналов можно вручную или использовать journalctl. Например:
Удалить журналы, оставив только последние 100 Мб:

Источник

Ротация логов в Linux и FreeBSD с помощью logrotate

Обновлено

Обновлено: 17.01.2022 Опубликовано: 08.06.2017

С помощью утилиты logrotate можно настроить автоматическое удаление (чистку) лог-файлов. В противном случае, некоторые логи могут заполнить все дисковое пространство, что приведет к проблемам в работе операционной системы.

Установка

Чаще всего, в Linux данная утилита установлена по умолчанию. Если это не так, установка выполняется следующими командами.

Ubuntu / Debian:

CentOS / Red Hat:

Утилита не работает как служба, поэтому нет необходимости в ее запуске или перезагрузке (logrotate start или logrotate restart делать не нужно).

Настройка

Для приложение, ротация логов настраивается в отдельных файлах, расположенных по пути /etc/logrotate.d/ (во FreeBSD — /usr/local/etc/logrotate.d/).

К примеру, нам необходимо настроить ротацию лога для logstash-forwarder. Создаем файл со следующим содержимым:

/var/log/logstash-forwarder/* rotate 30
size=10M
missingok
notifempty
daily
compress
delaycompress
maxage 30
create 0644 root root
postrotate
/usr/bin/systemctl restart logstash-forwarder
endscript
>

* /var/log/logstash-forwarder/* — путь к файлу, который нужно ротировать. * указывает, что нужно чистить все файлы, которые расположены в каталоге /var/log/logstash-forwarder.
** имейте в виду, что во FreeBSD, путь может быть /usr/local/etc/logrotate.d/logstash.

При настройке необходимо проверять работу сервиса после ротации лога. Некоторые службы могут перестать работать без лог-файла. В данном случае, необходимо создавать новый (create). Также, в некоторых случаях, сервис необходимо перезапускать, так как при создании нового файла меняется его дескриптор.

Читайте также:  Редактор аудио для linux

Описание опций

Для описания ротации мы можем использовать следующие директивы:

Параметр Описание
rotate N Хранить последние N ротированных файлов. Остальные удалять.
maxage N Хранить ротированные файлы за последние N дней. Остальные удалять.
copytruncate Сначала создается копия файла лога, после уже обрезается действующий. Это может понадобиться в случаях, когда программа должна писать лог непрерывно. Но существует 2 очевидных минуса: долгое выполнение при больших объемах и возможность потерять небольшое число записей, если из запись придется на процесс усечения.
size=xM Пока размер лог-файла не превысит x мегабайт, он не будет ротироваться.
missingok Если файла не существует, не выкидывать ошибку.
notifempty Если файл пустой, не выполнять никаких действий.
daily Делать ротацию каждый день.
weekly Делать ротацию каждую неделю.
monthly Делать ротацию каждый месяц.
compress Сжимать ротированные файлы.
delaycompress Сжимать только предыдущий журнал. Позволяет избежать ошибок, связанных с отсутствием доступа к используемому файлу.
create 0644 root root Создать новый лог-файл после ротирования с конкретными правами 0644 и владельцем root (меняем значения на нужные). Можно указать без прав (просто create), тогда права будут назначены по умолчанию для пользователя, под которым запускается ротация.
su root root Под какими пользователем и группой выполнять ротацию. В данном примере root (необходимо поменять на нужные).
prerotate . endscript Скрипт, который необходимо выполнить перед чисткой лога.
postrotate . endscript Скрипт, который необходимо выполнить после чистки лога.
sharedscripts Если мы указали выполнить ротацию для нескольких файлов (например, при помощи *), скрипт prerotate/postrotate будет выполняться для каждого из них. Данная опция указывает, что скрипт нужно выполнить один раз после завершения ротации всех файлов.

Запуск

Мы можем разово запустить ротацию, а также настроить автозапуск.

Вручную

Запуск выполняется со следующим синтаксисом:

Источник

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