Добрый день, помогите понять принцип работы tag для rsyslog. Хочу переслать лог апача access «как есть» на центральный сервер логирования, сделал вот такой конфиг на сервере клиенте: /etc/rsyslog.d/apache.conf
module(load=«imfile») input (type=«imfile» File=«/var/log/apache2/access.log» Tag=«http_access_01» Severity=«*» Facility=«*») if $programname == ‘http_access_01’ then @@10.10.10.1:514
На сервере сделал вот такой конфиг: if$programname == ‘http_access_01’ then /var/log/clients/01/apache_access.log & stop
Проблема в том, что фильтрация по http_access_01 на сервере приемнике не работает, я смогу отловить лог только если пропишу: if $fromhost-ip ==
Вопрос тут у меня принципиальный, почему не срабатывает фильтрация именно по тэгу. Я попробовал посмотреть лог при «пересохранении» на сервере источнике в другой файл лога, если начальная строка имеет вид:
192.168.0.123 - - [21/Apr/2023:14:59:15 +0300] «GET /csrftoken HTTP/1.1»
То после того как файл был «переслан» в другой файл лога то уже имеет вид:
Apr 21 14:55:00 debian-work http_access 192.168.0.123 - - [21/Apr/2023:14:55:00 +0300] «GET /login HTTP/1.1»
А когда файл был переслан вообще на другой сервер то уже: Apr 21 14:55:00 debian-work Apr 21 14:55:00 debian-work http_access 192.168.0.123 - - [21/Apr/2023:14:55:00 +0300] «GET /login HTTP/1.1» 200
Помогите разобраться, почему не срабатывает фильтрация по указанному тегу, большое спасибо.