Файл /etc/rsyslog.conf#
rsyslog.conf - это конфигурационный файл службы Rsyslog (подробнее см. в разделе «Сценарии администрирования и эксплуатации» → «Устранение неполадок с помощью лог-файлов → «Подкаталоги для хранения сообщений системного журнала»), регистрирующий системные сообщения и определяющий правила ведения журнала. Пустые строки и строки, начинающиеся с # (комментарии), игнорируются.
Модули Rsyslog, которые могут использоваться:
Модуль |
Описание |
|---|---|
|
Вывод |
|
Вывод для системного журнала с поддержкой GSS |
|
Вывод для MySQL |
|
Вывод для протокола RELP, предотвращающего потерю сообщений |
|
Вывод для PostgreSQL |
|
Вывод для общих баз данных |
|
Ввод для текстовых файлов |
|
Ввод для системного журнала UDP |
|
Ввод для системного журнала TCP |
|
Ввод для протокола RELP. RELP можно использовать вместо UDP или TCP для обеспечения надежной доставки сообщений системного журнала |
|
Плагин ввода для системного журнала TCP и GSS |
|
Поддержка маркированных сообщений, |
|
Ведение журнала ядра |
|
Сокеты Unix, включая сокет системного журнала; получение сообщений журнала от локальных системных процессов |
Базовая структура rsyslog.conf включает разделы:
Global directives - глобальные директивы задают некоторые глобальные свойства демона
rsyslog, например, размер основной очереди сообщений ($MainMessageQueueSize), загрузку внешних модулей ($ModLoad). Все глобальные директивы должны быть указаны по одной в строке и начинаться с$.Templates - шаблоны позволяют задать формат регистрируемого сообщения, а также используются для генерации динамических имен файлов. Их необходимо определить, прежде чем применять в правилах.
Output channels - каналы вывода предоставляют общий доступ к любому типу выходных данных, который может потребоваться пользователю. Должны быть определены до того, как будут использоваться в правилах.
Rules - правила формата «выбор + действие»; поля разделены пробелами или символами табуляции. Поле выбора определяет набор возможностей и приоритетов, относящихся к указанному действию.
Поле выбора в правилах состоит из двух частей, обозначающих объект и приоритет, разделенных точкой. Объектами, определяющими подсистему, создавшую сообщение, могут выступать ключевые слова auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, local0 - local7. Приоритет сообщений определяется ключевыми словами по возрастанию debug, info, notice, warning, err, crit, alert, emerg. * означает все объекты/приоритеты, none - отсутствие приоритета у данного объекта.
Поле действия описывает, что необходимо сделать с сообщением. Как правило, содержимое сообщения записывается в log-файлы, но могут выполняться и другие действия, например, запись в таблицу базы данных или пересылка на другой хост. Примеры действий:
Запись в регулярный файл в традиционном формате (без высокоточных временных меток):
*.* /var/log/traditionalfile.log;RSYSLOG_TraditionalFileFormatС высокоточными временными метками RFC 3339:
*.* /var/log/file.logПо умолчанию файлы не синхронизируются после каждой записи. Для включения глобальной синхронизации файлов журнала используйте либо директиву
$ActionFileEnableSync, либо параметрsyncдляomfile. Включение данной опции снижает производительность. Чтобы выборочно отключить синхронизацию для определенных файлов, укажите путь к файлу с-.Запись выходных данных в именованные каналы (
fifos) - посредством добавления перед именем файла символа|- используется для отладки.Терминал и консоль - если указанный файл является
tty, выполняется специальная обработкаtty, аналогично с/dev/console.Удаленная машина - существует три способа пересылки сообщений: UDP (стандартный, но с большими потерями качества), TCP (широко доступен, с потерей сообщений только в определенных ситуациях), RELP (без потери сообщений, но доступен только как часть
rsyslogd3.15.0 и выше). Для пересылки сообщений на другой хост по протоколу UDP укажите перед именем хоста символ@, TCP -@@, RELP -:omrelp:.Список пользователей - обычно критические сообщения направляются
root. Можно также указать список пользователей, которые должны получить сообщение, используя ключевое слово:omusrmsg:с именами соответствующих пользователей через запятую. Например,:omusrmsg:root,user1,user2.Направление экстренных сообщений всем пользователям, находящимся в системе -
:omusrmsg:*.Запись сообщений в таблицу баз данных - по умолчанию для работы требуется схема, совместимая со средствами мониторинга MonitorWare, которую можно создать с помощью файла
createDB.SQL, поставляемого с пакетомrsyslog. Также можно использовать любую другую схему, определив подходящий шаблон и назначив его действию.discard- «отклонить», используется для фильтрации сообщений, отклонения ненужных; с данной целью разместите действиеstopв начале соответствующих log-файлов. Например, отклонять все:*.* stopПривязка определения выходного канала к действию. Действия с выходным каналом должны начинаться со знака
$, например, для привязки к действию определения выходного канала «mychannel», используйте$mychannel.Выполнение в командной строке - в подоболочке выполняется программа, которой передается сообщение, сгенерированное по шаблону.
rsyslogожидает завершения работы программы и только после этого продолжает выполнение.
Типы поддерживаемых условий фильтрации сообщений системного журнала:
«традиционные» объектно-базирующиеся селекторы - выполнение фильтрации по приоритету и возможностям;
фильтры на основе свойств - фильтрация по свойствам (например,
HOSTNAME,syslogtag,msg); фильтры начинаются с:, далее следуют через запятые название свойства, название выполняемой операции сравнения, значение для сравнения в кавычках::property, [!]compare-operation, "value"Поддерживаемые операции сравнения:
contains- проверяет, содержится ли строка, указанная в полеvalue, в свойстве;isequal- сравнивает указанную строкуvalueи содержимое свойства - они должны быть эквивалентны для совпадения;startswith- проверяет, находится лиvalueточно в начале значения свойства;regex- сравнивает свойство с предоставленным регулярным выражением.
фильтры на основе выражений - фильтрация по произвольным сложным выражениям.
Выводы в rsyslog используют шаблоны, состоящие из директивы шаблона, имени, фактического текста шаблона и необязательных параметров; шаблоны статические, кодируемые в rsyslogd.
Также могут быть отдельно указаны каналы вывода, средства замены свойств, операции в очереди.
Примеры записей#
Глобальные директивы:
Размещение вспомогательных файлов:
global(workDirectory="/var/lib/rsyslog")Использование формата временных меток по умолчанию:
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
Модули:
imuxsock, обеспечивающий поддержку локального системного ведения журнала, с отключением приема сообщений через локальный log-сокет:module(load="imuxsock" SysSock.Use="off")Извлечение локальных сообщений через
imjournal, предоставляющий доступ к журналуsystemd; PID возвращается в качестве идентификатора процесса, запись журнала берется из файла хранения позиций в журнале:module(load="imjournal" UsePid="system" StateFile="imjournal.state")Считывание сообщений ядра:
module(load="imklog")Предоставление возможности использования mark-сообщений:
module(load="immark")Включение всех конфигурационных файлов в
/etc/rsyslog.d/:include(file="/etc/rsyslog.d/*.conf" mode="optional")Обеспечение получения системного журнала UDP:
module(load="imudp") input(type="imudp" port="514")Обеспечение получения системного журнала TCP:
module(load="imtcp") input(type="imtcp" port="514")
Правила:
Запись всех сообщений ядра в консоль с целью избежания нагромождений сообщений на экране:
kern.* /dev/consoleРегистрация всех сообщений, за исключением почты и сообщений журнала личной проверки подлинности, с уровнем
infoили выше:*.info;mail.none;authpriv.none;cron.none /var/log/messagesОграничение доступа к файлу личной проверки подлинности:
authpriv.* /var/log/secureРегистрация всех почтовых сообщений в одном месте:
mail.* -/var/log/maillogДанные журнала
cron:cron.* /var/log/cronПолучение экстренных сообщений всеми пользователями:
*.emerg :omusrmsg:*Сохранение новостей об ошибках критического уровня и выше в специальном файле:
uucp,news.crit /var/log/spoolerСохранение загрузочных сообщений также в
boot.log:local7.* /var/log/boot.logПравила пересылки - для действий создается очередь на диске. Если удаленный хост не работает, сообщения записываются на диск и отправляются, когда он заработает. Задается уникальный префикс имени для буферных файлов
fwdRule1, ограничение пространства в 1 Гб, включение сохранения сообщений на диск при завершении работы флагомon, асинхронный запускLinkedList; бесконечные попытки, если хост не работает - флаг-1, удаленное ведение журнала (в данном случае TCP):action(type="omfwd" queue.filename="fwdRule1" queue.maxdiskspace="1g" queue.saveonshutdown="on" queue.type="LinkedList" action.resumeRetryCount="-1" Target="remote_host" Port="XXX" Protocol="tcp")