Сообщение об ошибке

  • Deprecated function: Function create_function() is deprecated в функции _geshifilter_prepare() (строка 126 в файле /var/www/lsoft/sites/all/modules/geshifilter/geshifilter.pages.inc).
  • Deprecated function: Function create_function() is deprecated в функции _geshifilter_prepare() (строка 131 в файле /var/www/lsoft/sites/all/modules/geshifilter/geshifilter.pages.inc).
  • Deprecated function: Function create_function() is deprecated в функции _geshifilter_process() (строка 231 в файле /var/www/lsoft/sites/all/modules/geshifilter/geshifilter.pages.inc).

SystemD: Journal - новая система журналирования/логирования событий/происшествий

test

Привет, дорогой читатель!

Надеюсь ты уже познакомился с системой запуска служб SystemD! Нет? Ну тогда об ней и ее плюшках ты сможешь узнать здесь. Ну а если ты уже знаешь о ней, то пойдем дальше и посмотрим уже пошумевшую в рунете систему логирования Journal которая теперь идет в комплекте с SystemD! Возможно что в будущем эта система и станет основной для мира Nix!

Содержание

Прошлые статьи цикла.

В этой статье мы пойдем дальше за кулисы новой системы управления процессами. Заглянем в систему журналирования/логирования. Данная система пришла на замену многим разношерстным службам/демонам логирования событий. Были как более удобные, так и менее. Предполагается что вы уже ознакомились с SystemD по моим предшествующим статьям или из других источников.

Описание

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

В основном вся собираемая в журнал информация текстовая, но так же можно включать бинарные данные. Все сохраняемые обьекты могут быть размером до 2^64-1 байт.

По умолчанию логи лежат в /run/log/journal/. Так как /run/ временная директория, то при перезагрузке все данные будут потеряны. Чтобы данные сохранялись постоянно нужно создать /var/log/journal/ где systemd-journald и будет сохранять данные.

Systemd-journald будет направлять все полученные сообщения журнала в AF_UNIX сокет SOCK_DGRAM /run/systemd/journal/syslog(если она существует), которые могут быть использованы демонани журналирования UNIX для обработки данных в дальнейшем.

Проверим состояние системы журналирования в системе командой:
systemctl status systemd-journald.service
systemd-journald.service - Journal Service
Loaded: loaded (/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since Fri, 23 Nov 2012 21:00:29 +0200; 1h 59min ago
Main PID: 266 (systemd-journal)
Status: "Processing requests..."
CGroup: name=systemd:/system/systemd-journald.service
└ 266 /lib/systemd/systemd-journald

Nov 23 21:00:30 atlant systemd-journal[266]: Journal started

Запущена, активна и работает.

Просмотр журнала командой:
systemd-journalctl -a

journald.conf

Путь: /etc/systemd/journald.conf
В Debian GNU/Linux: /etc/systemd/systemd-journal.conf
Файл отвечает за настройку параметров журналирования SystemD.

Все настройки находятся в секции [Journal]:

  • Storage=

Определяет куда сохранять данные. Значения: volatile, persistent, auto и none.
volatile - сохраняет только в памяти, то есть принадлежит иерархии /run/log/journal.
persistent - данные сохраняются предпочтительно на диск, то есть принадлежат иерархии каталогов /var/log/journal с обратной связью на /run/log/journal, для логирования ранней загрузки, пока на диск еще не разрешена запись.
auto подобно persistent но директория /var/log/journal не создается если нет необходимости, таким образом контролируется куда отправляются данные.
none - отключает логирование. Все полученные данные отбрасываются. Касательно других служб, таких как консоль, лог буфера ядра или же демон syslog, они как и прежде продолжают работать.
По умолчанию значение auto.

  • Compress=

Значение истина(по умолчанию)/ложь. При включении обьекты данных по достижении определенного порога размера данных сжимаются алгоритмом XZ до записи на диск.

  • Seal=

Значение истина(по умолчанию)/ложь. Если включено и ключ уплотнения доступен, использует предварительное безопасное уплотнение для всех данных сохраняемых на диск.

  • SplitMode=

Указывает разделять ли файлы журналов для каждого пользователя, по логину, uid или none(отключить).
login - у каждого пользователя свой собственный файл журнала, но только пользователи группы systemd могут просматривать логи. Возможно только при сохранении логов на диск. Значение по умолчанию.
uid - любой пользовательский ID имеет собственный файл журнала независимо от того является он реальным пользователем или служебным для какой-то системной службы(например пользователь mysql, из-под которого запускается сам MySQL).
none - журнал не делится и все сохраняется в едином системном журнале.

  • RateLimitInterval=
  • RateLimitBurst=

Настройка ограничения скорости, которое применяется ко всем сообщениям, созданные в системе. Если в интервал времени указанный в RateLimitInterval= приходит больше сообщений чем указанно в RateLimitBurst= все остальные сообщения будут отброшены. Будет сгенерировано сообщение об количестве отброшенных сообщений. Это ограничение скорости применяется для каждой службы, так что они не будут мешать друг другу писать в журнал из-за того что одна из них превысила лимит. По умолчанию 200 сообщений за 10 секунд. Значение RateLimitInterval= может указываться вместе со следующими спецификаторами: s, min, h, ms, us. Для отключения любого из ограничений поставьте его значением 0.

  • SystemMaxUse=
  • SystemKeepFree=
  • SystemMaxFileSize=
  • RuntimeMaxUse=
  • RuntimeKeepFree=
  • RuntimeMaxFileSize=

Указывает ограничение на сохраняемый размер файлов журнала.
Опции с префиксом System работают для файлов сохраняемых на диск, точнее /var/log/journal. Настройки с префиксом Runtime относятся к временным журналам, точнее /run/log/journal. System используется только когда смонтирована и доступна для записи /var , а так же существует каталог /var/log/journal. В противном случае используются настройки с префиксом Runtime. SystemMaxUse= и RuntimeMaxUse= указывают сколько максимально дискового пространства может занимать журнал. По умолчанию это 10% используемой файловой системы. SystemKeepFree= и RuntimeKeepFree= указывают сколько места на диске должно всегда оставаться свободным для других целей, если доступно меньше места чем указано в SystemMaxUse= и RuntimeMaxUse=. По умолчанию это 5% от используемой файловой системы. SystemMaxFileSize= и RuntimeMaxFileSize= указывают как много места используют индивидуальные файлы журнала. По умолчанию это 1/8 от SystemMaxUse= и RuntimeMaxUse=, таким образом происходит 7 ротаций файла журнала для хранения истории. Укажите значения в байтах или использовать K, M, G, T, P, E в качестве единиц для указанного размера. Обратите внимание, что ограничения на размер применяются автоматически для всех файлов журнала, по мере использования места, и не требуют явно указывать ротацию.

  • MaxFileSec=

Максимальное время хранения записей в одиночном файле журнала до следующей ротации. Обычно не имеет такого сильного значения как ротация по размеру, с опцией SystemMaxFileSize= указывающей ограничения на ожирение файла, но все же имеет смысл изменить со значения по умолчанию(0) чтобы убедиться что не слишком много данных теряется сразу, когда старые файлы журнала будут удалены. Установите 0 чтобы отключить. Параметр имеет временной спецификатор: year, month, week, day, h, m. По умолчанию секунды.

  • MaxRetentionSec=

Максимальное время хранения записи в журнале. Записи старее указанного значения удаляются. Имеет меньшее значение чем SystemMaxUse= так как не влияет на столько, чтобы файл рос безгранично в размере. Но все же имеет смысл изменить значение с 0(по умолчанию). Суфиксом к записи добавляется одна из отметок величины времени: year, month, week, day, h, m. По умолчанию исчисляется в секундах.

  • ForwardToSyslog=
  • ForwardToKMsg=
  • ForwardToConsole=

Указывает должен ли журнал отправлять так же сообщение на традиционный syslog, буфер журнала ядра(kmsg) или в системную консоль. Принимает булевый аргумент. По умолчанию включена только отправка на syslog.

  • MaxLevelStore=
  • MaxLevelSyslog=
  • MaxLevelKMsg=
  • MaxLevelConsole=

Указывает уровни сообщений которые следует сохранять на диск, отправлять на syslog, kmsg или консоль. Аргументы: emerg, alert, crit, err, warning, notice, info, debug или их числовые аналоги от 0 до 7. Сообщения равные по уровню заданному и ниже сохраняются/отправляются, остальные отбрасываются. По умолчанию уровень debug для MaxLevelStore= и MaxLevelSyslog=, чтобы убедиться в том что все сообщения записываются на диск и отправляются на syslog. А так же notice для MaxLevelKMsg= и info для MaxLevelConsole=.

  • TTYPath=

Меняет TTY консоли при использовании ForwardToConsole=yes. По умолчанию: /dev/console.

FreeDesktop

Категория: 
Share/Save

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save

Это Вам так же может быть интересно!