Добрый день.
Столкнулся с такой проблемой. У меня в логах вместо источников событий указываются индексы этих источников. Так как перечень источников конечен, то нет большой проблемы составить таблицу сопоставлений индексов и названий источников:
Индекс, Название
1, source_name_1
2, source_name_2
Сейчас вижу два пути решения этой задачи:
- filter -> if (значение равно индексу) -> mutate -> replace
- filter -> alter -> condrewrite
Первый вариант работает, но использование данной конструкции занимает слишком много места в конфиге и при этом сложночитаемо:
filter {
if [source] == "1" {
mutate { replace => [ "source", "source_name_1" ] }
}
if [source] == "2" {
mutate { replace => [ "source", "source_name_2" ] }
}
}
Получается много строк и много ифов.
Второй вариант намного лаконичнее, по, почему-то не работает(((
filter {
alter {
condrewrite => [
"[source]", "1", "source_name_1",
"[source]", "2", "source_name_2"
]
}
}
Такой вариант тоже не работает:
filter {
alter {
condrewrite => ["[source]", "1", "source_name_1" ]
condrewrite => [ "[source]", "2", "source_name_2" ]
}
}
Прошу подсказать, правильно ли использовать фильтр alter для решения подобной задачи, или я совсем не тем занимаюсь и существует другое, правильное решение