Доброго времени суток, появилась проблема с rsyslogd;задача следующая, логировать с помощью netcat логи апаче на удаленный сервер с rsyslogd:
делаю так (тестирую, отправляя команду через echo):
echo "testrsyslog"| /usr/local/apache/bin/acc2syslog.sh
cat /usr/local/apache/bin/acc2syslog.sh
#!/bin/bash
sed "s/^/ACCESS auto.dvesti.ru /"|nc -u 192.168.16.204 514 (нужно дописать 2 слова перед строкой лога)
сообщение отправляется, на удаленном сервере вижу, что сообщение пришло:
nc -u -l -p 514
ACCESS auto.dvesti.ru testrsyslog
далее для обработки сообщений, в rsyslogd.conf было добавлено:
:msg,contains,"ACCESS" /var/log/apache2/debian-test-access.log
в лог сообщение не добавляется, вместо этого, оно попадает в messages вот в таком виде:
Oct 28 13:39:58 192.168.16.24999 ACCESS auto.dvesti.ru testrsyslog
запустил rsyslogd в режиме дебаг:
3522.805055342:7f51fb9d3700: msg parser: flags 70, from '~NOTRESOLVED~', msg 'ACCESS auto.dvesti.ru testrsyslog
3522.806314111:7f51fb9d3700: Filter: check for property 'msg' (value '') contains 'ACCESS': FALSE
то есть rsyslog почему-то не обрабатывает сообщение (подставляет ''), подскажите пожалуйста почему так происходит ?