Назад | Перейти на главную страницу

syslog-ng добавляет дату к полученным журналам, нарушая шаблоны в patterndb

Я настраиваю централизованное ведение журнала для наших серверов, используя syslog-ng + patterndb, однако журналы, которые сервер регистрации получает от клиента, добавляются с датой, хостом и другими данными. Это, конечно, ломает все шаблоны в patterndb так что ничего не совпадает.

Есть ли способ выполнить некоторую предварительную обработку исходного файла журнала перед попыткой его классификации или каким-либо другим способом решить эту проблему?

Ура.

Соответствующий клиентский конф:

source s_src {
   system();
   internal();
};

destination d_central_logging {
    syslog(192.168.1.1 transport("tcp") port("12345")); 
};

log {
    source(s_src);
    destination(d_central_logging);
};

Соответствующий сервер conf:

parser p_patterndb {
    db-parser(file("/var/lib/syslog-ng/patterndb.xml"));
};

source s_network {
    tcp(port(12345) flags(syslog-protocol));
};

filter f_class_unknown {
    match("unknown"
        value(".classifier.class")
        type("string")
    );
};

destination d_all {
    file("/tmp/all");
};

destination d_unknown {
    file("/tmp/unknown");
};

log {
    source(s_network);
    parser(p_patterndb);
    log {
        filter(f_class_unknown);
        destination(d_unknown);
    };
    log {
        destination(d_all);
    };
};

РЕДАКТИРОВАТЬ:

исходная строка журнала: 10.0.2.2 - - [23/Dec/2014:13:42:49 +0000] "GET /assets/favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

измененная строка журнала: Dec 23 13:59:08 192.168.33.44 264 <13>1 2014-12-23T13:42:50+00:00 devhost 10.0.2.2 - - [meta sequenceId="8"] - - [23/Dec/2014:13:42:49 +0000] "GET /assets/favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

хорошо, я нашел настоящую причину, по которой матч не состоялся. Я использовал update-patterndb после подтверждения наличия правильных шаблонов Apache в github.com/balabit/syslog-ng-patterndb репо. Однако update-patterndb команда не включала .xml файлы, только .pdb файлы. Я видел скомпилированный файл шаблона в /var/lib/syslog-ng/patterndb.xml меняю но никогда не проверял. В качестве страниц руководства для update-patterndb скажем, это всего лишь тонкая обертка вокруг pdbtool merge команда. Это работает для меня:

pdbtool merge -r --glob *.xml -D /etc/syslog-ng/patterndb.d/syslog-ng-patterndb/

Каталог /etc/syslog-ng/patterndb.d/syslog-ng-patterndb/ это то место, где у меня клонировано репо. Я могу подтвердить, что шаблоны Apache теперь извлекают контент, как и ожидалось, проверив скомпилированный файл шаблона, запустив pdbtool test команда и просмотр структурированных результатов в тех, кто получает данные ниже по потоку.

Пол прав, протоколы, используемые в клиент-приемнике и сервере-источнике, не совпадают. В результате сервер не распознает входящее сообщение как правильно отформатированное сообщение системного журнала и добавляет в начало хост, дату и другую информацию.

С Уважением,

Роберт