Программная реализация системы журнальной регистрации в Linux: Конфигурирование syslogd

Тонкости в работе syslogd. Ротация журнальных файлов. Программа logrotate.

Александр Деревянко, ведущий консультант-эксперт, консультант
В сфере IT работает с 1990 года. Занимал должности от инженера 1 категории до начальника отдела IT. В настоящий момент работает ведущим консультантом-экспертом отдела инженерного и технического сопровождения Администрации Краснодарского края.

Описание: В статье показано, как в системах Linux реализована работа с программами syslogd и logrotate и какие они выполняют задачи. Материал будет полезен начинающим системным администраторам, которые хотят разобраться с основами и принципами ведения журнальных файлов в GNU/Linux.

 

Введение

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

Всю журнальную информацию не рекомендуется уничтожать, потому что она требует тщательного анализа на предмет обнаружения попыток взлома системы и других вредоносных действий. Кроме того, эта информация может помочь инженеру выявить и устранить возникающие и уже имеющие место аппаратные и программные сбои.

Накапливающаяся информация со временем теряет некоторую актуальность для сиюминутного использования и, как правило, сжимается архивирующими утилитами через определенные интервалы времени. Методы реализации такой стратегии в системе называются ротацией. Система ротации предполагает хранение резервных журнальных файлов с разбивкой по времени их создания.

В основном, Linux-приложения записывают журнальную информацию в файлы, находящиеся в каталоге /var/log, а отдельные дистрибутивы используют для этого каталог /var/adm. Большинство журнальных файлов – это обычные текстовые файлы, в которые записываются сообщения о тех или иных событиях, происходящих в системе. Важно различать журнальную регистрацию на уровне ядра, на этапе начальной загрузки (журналы стартовых скриптов) и журналы демонов. Сообщения, генерируемые ядром, обрабатываются демоном klogd. Демон может или просто создать образ журнального буфера ядра и завершить работу, или динамически извлекать сообщения из буфера по мере их появления и записывать их в файл.

Регистрацией сообщений стартовых скриптов в отдельных системах занимается программа initlog.

Утилита, которая присутствует практически во всех дистрибутивах Linux и занимается журнальной ротаций, называется logrotate.

А полнофункциональная система регистрации событий, написанная Эриком Оллманом и решающая вопросы автоматизации ведения журнальных файлов и управления журнальной регистрацией, называется syslogd.

Читать