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

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

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

Приветствия.

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

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"

2 ответа

Решение

Хорошо , я нашел реальную причину, по которой матч не состоялся. Я использовал update-patterndb команда после подтверждения того, что в github.com/balabit/syslog-ng-patterndb Сделки РЕПО. Тем не менее update-patterndb команда не включала .xml только файлы .pdb файлы. Я видел файл скомпилированного шаблона в /var/lib/syslog-ng/patterndb.xml меняется но никогда не проверял. Как man-страницы для 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 Команда и видеть структурированные результаты в тех, которые получают данные в нисходящем направлении.

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

С Уважением,

Роберт

Другие вопросы по тегам