
Я пытаюсь извлечь подстроки из поля пути в конфигурации logstash.
Поле «путь» выглядит так:
/storage/logs/deployment/servers/hostname.example.com/server.log
Внутри раздела фильтра у меня есть это:
ruby {
code => "event.set('log_filename',
event.get('path').split('/').last)"
}
Это работает отлично. Я получаю новое поле с именем 'log_filename'
Однако меня также интересует имя сервера (hostname.example.com)
Итак, я попробовал это:
ruby {
code => "event.set('log_filename', event.get('path').split('/').[-1]) event.set('server_name', event.get('path').split('/').[-2])"
}
Это вообще не работает. Я не получаю никаких ошибок в своем журнале logstash, но и данные logstash не видны.
Мне нужно имя файла и поле перед ним, которое представляет хост, с которого он пришел.
Что-то не так с моим синтаксисом?