Имя индекса, которое вы можете указать в файле filebeat.yml, применимо только к выходу эластичного поиска, поскольку filebeat напрямую подключается к вашему кластеру. Однако, если вы используете Logsta sh в качестве места назначения для файла, это невозможно.
В: Или есть какой-то способ настроить несколько выходных секций, где можно оценивать типы журналов, чтобы я мог назвать их соответственно?
Да, это абсолютно возможно в рамках конвейера Logsta sh (и довольно часто). Поэтому, прежде всего, вам нужно установить определенные критерии / отметки в ваших журналах, чтобы позволить Logsta sh выбрать правильный вывод эластичного поиска (и с этим правильный индекс). Вы можете достичь этого с помощью тегов. Так, например, все журналы / события категории A получают тег «tag_A» (вы можете установить их индивидуально для каждого источника журнала в определенных входах журнала или вообще в файле beat.yml).
Следующий шаг заключается в реализации оценки значений тегов в конвейере logsta sh. Вы можете сделать это следующим образом:
output{
if "tag_A" in [tags]{
elasticsearch {
hosts => ["somehost:12345"]
index => "index-A-%{+yyyy-MM-dd}"
}
}
else if "tag_B" in [tags]{
elasticsearch {
hosts => ["somehost:12345"]
index => "index-B-%{+yyyy-MM-dd}"
}
}
}
Эта структура if-else позволяет индексировать ваши данные по различным значениям.
Надеюсь, что смогу вам помочь.
РЕДАКТИРОВАТЬ:
Ваша оценка не ограничивается тегами. Вы можете оценить любые поля, содержащиеся в ваших документах, например, имя файла, имя хоста и т. Д. c.
Возможно, вы захотите взглянуть на эту ссылку (https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html) о том, как получить доступ к значениям поля, выполнить условия и т. Д. c. в конфигурациях Logsta sh.
РЕДАКТИРОВАТЬ 2:
Более сложным было бы добавить в ваши документы поле, содержащее точное имя индекса назначения (через поля параметры во входах журнала или в filebeat.yml) При таком подходе больше нет необходимости в оценке в конвейере Logsta sh, поскольку вы динамически устанавливаете значение для параметра индекса из значения поля.
Если вы пометите это поле как destination_index
, тогда вы сможете реализовать выходной плагин, как показано ниже:
output{
if [destination_index]{ #optional check for field's existance in document
elasticsearch {
hosts => ["somehost:12345"]
index => "%{[destination_index]}-%{+yyyy-MM-dd}"
}
}
}