То, что вы пытаетесь сделать, не работает таким образом в logsta sh, события в конвейере logsta sh независимы друг от друга.
События, полученные вашим beats
вводом не знаете о событиях, полученных вашим csv
входом, поэтому вы не можете использовать поля из разных событий в условном выражении.
Чтобы делать то, что вы хотите, вы можете использовать фильтр translate
со следующим config.
translate {
field => "[process][name]"
destination => "[process][type]"
dictionary_path => "process.csv"
fallback => "others"
refresh_interval => 300
}
Этот фильтр будет проверять значение поля [process][name]
по словарю, загруженному в память из файла process.csv
, словарь - это файл .csv
с двумя столбцами, первый - это имя процесса браузера, а второй всегда browser
.
chrome.exe,browser
firefox.exe,browser
Если фильтр нашел совпадение, он заполнит поле [process][type]
(не process.type
) значением из второго столбца, в данном случае всегда browser
, если совпадений нет, поле [process][type]
заполняется значением конфигурации fallback
, в данном случае others
, оно также перезагружается содержимое process.csv
файл каждые 300 секунд (5 минут)