Правильная настройка rsyslog
Я пытаюсь настроить сервер системного журнала, но он не работает должным образом. Мой клиент, кажется, не входит в него.
Сервер Ubuntu 12.04 (192.168.1.10)
Клиент Ubuntu 14.04 (192.168.1.26)
Конфигурация сервера /etc/rsyslog.conf:
$ModLoad imuxsock
$ModLoad imklog
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$RepeatedMsgReduction on
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
$template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
Я сделал chown syslog:syslog в каталоге / var / log и его подкаталогах.
Конфигурация клиента /etc/rsyslog.conf:
Добавил это в начало файла conf
*.* @192.168.1.10:514
Перезапущен демон rsyslog на обоих хостах, однако, кажется, что никакие журналы не заполняются на сервере в / var / logs
Есть мысли о том, что я могу делать не так?
2 ответа
В моем случае (Ubuntu 12.04) каталоги с аналогичной конфигурацией тоже не создавались. События регистрировались в существующих файлах, но без пометки имени хоста, поэтому было неочевидно, что это (почти) работает.
Я предлагаю:
убедитесь, что трафик принимается: на сервере попробуйте:
sudo tcpdump tcp port 514
Настройте клиент для отправки правильного имени хоста. Добавьте эту строку в /etc/rsyslog.conf:
$ LocalHostName [клиент]
Убедитесь, что записи журнала от [клиента] появляются в файлах журнала [сервера].
Ваш файл конфигурации сервера определяет шаблон с именем TmplAuth, но ничто его не использует. Добавьте эту строку сразу после нее:
*. *? TmplAuth
Конечно, всякий раз, когда вы изменяете конфигурационный файл, вам необходимо перезапустить rsyslog на этом компьютере.
После вышесказанного мой TmplAuth применялся ко всем журналам (включая локальные): были созданы каталоги и файл журнала для каждой сгенерированной программы. Это не совсем то, к чему я стремился, но это большой шаг вперед. Сейчас я смотрю на изменение шаблона, а не на вопрос, почему он не работает.
Я не могу комментировать, поэтому добавляю новый ответ: Скорее всего, проблема в том, что, как сказал Zaq, TmplAuth предназначался для написания динамического имени файла. Эта часть на самом деле отсутствует.
Помимо этого, мы (проект rsyslog) часто видели, что такие проблемы были вызваны
- Настройки AppArmor (маловероятно)
- Конфигурация брандмауэра (вероятно)
Так что вы определенно хотите посмотреть на это.