Я знаю, что существует много тем как этот, но у меня есть конкретная потребность: Я должен отправить все журналы с серверов Linux на центральный сервер входа.
Проблема 1: На центральном сервере я должен сохранить журналы в следующем формате:
<root_dir>/<server_name>/<year>/<month>/<day>/{messages, mail, auth, httpd, etc}.log (the exact original file name of the log file)
rsyslog сервер conf
$template RemoteHost,"/var/log/remotes/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/%PROGRAMNAME%.log" which creates the folder structure ok but for some logs it doesn't work (httpd logs)
Проблема 2: Я должен отправить ВСЕ журналы. На удаленных серверах (песни) я настроил классика
*.* @@<central-server-hostname>:5544
но я вижу, что журналы httpd не, отправляют (я вещь, которая это - потому что фильтр. и журналы httpd называют как "httpd_acces", и не соответствует фильтру.
Вы знаете, возможно ли это?
Apache не использует syslog
по умолчанию, он просто записывает в некоторые файлы, определенные в конфигурации Apache по умолчанию.
Вы можете настроить Apache для передачи журнала в syslog, например через регистратор
или настройте rsyslog
для отслеживания файлов Apache и отправки контента на удаленный сервер.
Apache обычно не входит в систему через системный журнал. Вам нужно будет направить журналы через регистратор
, см. это руководство . Не уверен, что это хорошая идея с точки зрения производительности.
*. *
в конфигурации системного журнала, а не маска файла. Это маска для
... что-то вроде kern.error
. См. документы , чтобы узнать, как это работает.