Назад | Перейти на главную страницу

Удаленное ведение журнала в определенную структуру каталогов с помощью rsyslog

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

<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 Действие можно использовать для разделения даты из только что повернутых файлов в желаемую форму. Это может лучше масштабироваться.