Поскольку вы можете удалить только поля в блоке filter
, чтобы один и тот же конвейер выводил две разные версии одного и того же события, вам нужно будет клонировать ваши события, удалить поле в клонированном событии и использовать условные выражения в выходных данных. .
Для клонирования вашего события и удаления поля @timestamp
вам понадобится что-то подобное в вашем блоке filter
.
filter {
# your other filters
#
clone {
clones => ["kafka"]
}
if [type] == "kafka" {
mutate {
remove_field => ["@timestamp"]
}
}
}
Это клонирует событие, и клонированное событие будет значение kafka
в поле type
, затем вы будете использовать это поле в условных выражениях в выходных данных.
output {
if [type] != "kafka" {
your elasticsearch output
}
if [type] == "kafka" {
your kafka output
}
}