Я в настоящее время нахожусь в процессе наличия всех наших различных серверов, отправляют их сообщения системного журнала на центральный сервер. Я хотел бы иметь следующую структуру каталогов на центральном сервере, в который отправляются журналы.
<root_dir>/<server_name>/<year>/<month>/<day>/{messages, mail, auth, etc}.log
Это - что-то, что я могу сделать с одними только шаблонами rsyslog, или я должен использовать другую утилиту для перемещения файлов в надлежащее расположение файла?
Не знаю, как создавать каталоги, но с остальным нужно работать с фильтрами и динамическими именами файлов.
Обычно в таком случае я бы записывал в журнал шаблон файла.
/var/log/<server_name>{messages,mail,auth,etc}.YYYYMMDD
Разделение логов сервером может затруднить трассировку между серверами. Сообщения лога обычно содержат исходный сервер, поэтому легко получить сообщения для конкретного сервера с помощью awk
, grep
или любого другого инструмента для сопоставления шаблонов. Масштабирование такого количества лог-файлов также может быть затруднено, и вы можете столкнуться с ограничениями по ресурсам.
Обычно вращение лог-файлов обрабатывается программой типа logrotate
. Это позволяет вам контролировать частоту вращения лог-файлов для определенных файлов, а также контролировать количество сохраняемых версий. Это действие postrotate
может быть использовано для разделения даты от только что вращающихся файлов на нужную форму. Это может привести к лучшему масштабированию.