LINUX.ORG.RU
ФорумAdmin

Rsyslog

 , ,


0

1

Всем привет! Решили использовать rsyslog для редиректа логов bind9 в базу на postgre. Только столкнулись со странным поведением rsyslog-a, который получаемые данные не перенаправляет в postgre, а складывает где-то у себя и отправляет их скопом только при его перезапуске. Данные bind9 ему скидывает и rsyslog их постоянно принимает, это проверено strace-ом, выяснить бы почему rsyslog не переcылает эти данные в postgre в режиме их поступления. Кто-нибудь сталкивался с такой же проблемой?


Ответ на: комментарий от anonymous

Конфиги там примитивные как у bind9,, где стоит: channel queries_f { syslog daemon; severity dynamic; print-time yes; };

так и у rsyslog-а, где в /etc/rsyslog.d/pgsql.conf стоит: ....somesqltmp....

if $programname==«named» then :ompgsql:localhost,somebase,someuser,somepass;somesqltmp

Самое интересное тут то, что, согласно strase-у, bind прилежно шлет каждый запрос rsyslog-у, а тот каждое сообщение от bind-а получает, считывая его recvfrom-ом. А дальше творится непонятное, rsyslog тарит где-то эти мессаджи и сливает в postgre только если его, rsyslog, рестартить. Если его долго не рестартить, то он с какого-то момента перестает принимать мессаджи от bind-a, но при этом создавая соединения с bind-ом каждое из которых виснет. Вследствии этого у bind-а кончается лимит количества дескрипторов и тот перестает отвечать на внешние запросы. Мистика.

slew ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.