Я настраиваю централизованное ведение журнала для наших серверов, используя 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
команда и просмотр структурированных результатов в тех, кто получает данные ниже по потоку.
Пол прав, протоколы, используемые в клиент-приемнике и сервере-источнике, не совпадают. В результате сервер не распознает входящее сообщение как правильно отформатированное сообщение системного журнала и добавляет в начало хост, дату и другую информацию.
С Уважением,
Роберт