URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95134
[ Назад ]

Исходное сообщение
"проблема с rsyslog"

Отправлено TheFatal , 28-Окт-13 13:47 
Доброго времени суток, появилась проблема с 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 почему-то не обрабатывает сообщение (подставляет ''), подскажите пожалуйста почему так происходит ?


Содержание

Сообщения в этом обсуждении
"проблема с rsyslog"
Отправлено Etch , 29-Окт-13 01:13 
Попробуйте так:

:syslogtag, contains, "ACCESS"  /var/log/apache2/debian-test-access.log


"проблема с rsyslog"
Отправлено TheFatal , 29-Окт-13 12:44 
> Попробуйте так:
> :syslogtag, contains, "ACCESS"  /var/log/apache2/debian-test-access.log

спасибо за ответ, попробую этот вариант, о результатах отпишу


"проблема с rsyslog"
Отправлено TheFatal , 29-Окт-13 14:24 
> Попробуйте так:
> :syslogtag, contains, "ACCESS"  /var/log/apache2/debian-test-access.log

да, этот вариант работает при отправке сообщений, но тут столкнулся с еще одной проблемой:

apache, логи которого я хочу отправлять, ни в какую не хочет вообще лог писать, даже в локальный файл :(

делаю так:

в конфиг апаче добавил строчки

        ErrorLog |/usr/local/apache/bin/err2syslog2.sh
        CustomLog |/usr/local/apache/bin/acc2syslog2.sh combined

в скриптах

cat /usr/local/apache/bin/acc2syslog2.sh
#!/bin/bash
read Message
echo "$Message" | sed 's/^/auto.dvesti.ru ACCESS /' >> /tmp/testlog

пока пишу в локальный файл, планирую в будущем через nc отправлять на другой сервер

в общем при такой конструкции в лог вообще ничего не пишется (соответственно и на удаленный сервер не прилетает :( )

если сообщение передавать локально, все прекрасно пишется:

echo "127.0.0.1 - - [23/Oct/2013:15:16:05 +0400] "GET /index.php HTTP/1.1" 400 404" | /usr/local/apache/bin/acc2syslog2.sh

cat /tmp/testlog
auto.dvesti.ru ACCESS 127.0.0.1 - - [23/Oct/2013:15:16:05 +0400] GET /index.php HTTP/1.1 400 404

подсажите пожалуйста в чем может быть дело ?



"проблема с rsyslog"
Отправлено TheFatal , 30-Окт-13 12:18 
>[оверквотинг удален]
> другой сервер
> в общем при такой конструкции в лог вообще ничего не пишется (соответственно
> и на удаленный сервер не прилетает :( )
> если сообщение передавать локально, все прекрасно пишется:
> echo "127.0.0.1 - - [23/Oct/2013:15:16:05 +0400] "GET /index.php HTTP/1.1" 400 404" |
> /usr/local/apache/bin/acc2syslog2.sh
> cat /tmp/testlog
> auto.dvesti.ru ACCESS 127.0.0.1 - - [23/Oct/2013:15:16:05 +0400] GET /index.php HTTP/1.1
> 400 404
> подсажите пожалуйста в чем может быть дело ?

эту проблему решил, но ощущение, что не все сообщения в лог попадают


"проблема с rsyslog"
Отправлено Михаил , 31-Окт-13 09:59 
А попробуйте $ModLoad imfile + еще несколько строк (http://www.rsyslog.com/doc/imfile.html). Любой текстовый файл в syslog пишет.

"проблема с rsyslog"
Отправлено TheFatal , 31-Окт-13 18:59 
> А попробуйте $ModLoad imfile + еще несколько строк (http://www.rsyslog.com/doc/imfile.html).
> Любой текстовый файл в syslog пишет.

большое спасибо, именно то, что нужно