Bind9 ведение журнала в именованный канал

Цель

Я хочу настроить bind9 в Ubuntu 12.04 для выхода из именованного канала. Цель состоит в том, чтобы перенаправить ведение журнала в службу syslog-ng.

Эта проблема

Моя проблема в том, что когда я направляю канал ведения журнала в файл именованного канала, служба привязки не запускается. Это предложение ведения журнала, где query.log - это файл FIFO:

logging {
  channel query.log {
      file "/var/log/named/query.log";
      severity info;
      print-time yes;
      print-category yes;
  };

  category queries  { query.log; };
  category ....
};

Это результат, найденный в системном журнале:

Jun 12 12:37:53 hostname named[19400]: isc_file_isplainfile '/var/log/named/query.log' failed: invalid file
Jun 12 12:37:53 hostname named[19400]: configuring logging: invalid file
Jun 12 12:37:53 hostname named[19400]: loading configuration: invalid file

Что я пробовал

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

sudo -u bind bash -c 'echo "test" > /var/log/named/query.log'

Я вижу, что данные отображаются в syslog-ng, как и ожидалось. Я также установил / usr / sbin / named для подачи жалоб и отключения в Apparmor, но проблема все еще не устранена.

Помощь?

Возможно ли то, что я предлагаю сделать? Если да, то какие-либо указания на то, что я делаю неправильно.


person jiwanrai    schedule 12.06.2014    source источник


Ответы (1)


1) Ответ на вопрос

Bind9 ведение журнала с именем

а) Я искал решение в исходном коде BIND9 и обнаружил, что это невозможно сделать без модификации исходного кода.

б) Ближайшее решение - войти в stderr:

logging {
  channel query.log {
   stderr;
   severity info;
   print-time yes;
   print-category yes;
 };

 category queries  { query.log; };
};

и перенаправить его в именованный канал, изменив сценарий запуска BIND9. Я сделал это путем модификации /etc/init.d/bind9:

  • # P6 #
    # P7 # # P8 #
  • # P9 #
    # P10 # # P11 #

2) Ответ по назначению:

bind9 позволяет вам войти прямо в системный журнал с помощью конфигурации:

logging {
 category queries { default_syslog; };
};

Канал default_syslog по умолчанию записывает журналы в системный журнал.

Или вы можете написать явную конфигурацию:

logging {
  channel query.log {
   syslog daemon;
   severity info;
   print-time yes;
   print-category yes;
 };

 category queries  { query.log; };
};

См. Руководство по настройке журналирования: http://www.zytrax.com/books/dns/ch7/logging.html

person Youw    schedule 29.11.2014