У меня есть два источника и один пункт назначения. Я хочу, чтобы шаблон, используемый в месте назначения, менялся в зависимости от того, из какого источника я получаю событие журнала.
Мне удалось создать поля SDATA с правилами перезаписи, но я не могу найти решение для изменения шаблона на основе содержимого события или источника.
Я получу много шаблонов и множество источников, и у моего пункта назначения будет несколько рабочих. Я не хочу использовать несколько мест назначения, потому что это потребует от меня баланса числа работников на основе рабочих нагрузок из разных источников, и это будет меняться со временем.
source s_syslog {
network( port(10514));
};
source s_firewall {
network( port(10515));
};
template t_template1 {
template("something something");
};
template t_template2 {
template("something else");
};
destination d_http {
http(
url("http://127.0.0.1:40000/logservice")
# if syslog
body(template(t_template1))
body(template(t_template2))
);
};
log {
source(s_syslog);
destination(d_http);
};
Шаблон журнала, используемый в месте назначения, зависит от источника журнала или содержимого события.
Edit:
Я мог бы приблизиться к решению. Я не смог выяснить, как проверить источник в качестве условия или если это возможно. Тест также всегда выглядит как True, независимо от того, что я нахожу очень странным.
template-function t_default "$(if (\"${username}\" == \"root\")
\"TEMPLATE 1\"
\"TEMPLATE 2\"
)";
destination d_http {
http(
url("http://127.0.0.1:40000/logservice")
body("$(t_default)")
);
};