Единственный способ выполнить sh, который я видел, - это не файл filebeat.yml, а создание пользовательского файла fields.yml в каталоге filebeat (все это относится к любому удару) с полем и типом, указанными в поле ключ "beat".
Например, если указанное выше поле "id" было объявлено в filebeat.yml, и мы хотели, чтобы оно было настраиваемым полем типа "keyword", мы бы сделали следующее:
скопировать fields.yml в файл my_filebeat_fields.yml в каталоге filebeat. В my_filebeat_fields добавьте в этот раздел:
- key: beat
anchor: beat-common
title: Beat
description: >
Contains common beat fields available in all event types.
fields:
# your customization begins here:
- name: id
- type: keyword
Затем выполните следующие действия, чтобы использовать этот новый файл пользовательских полей:
Измените эту часть файла filebeat.yml, включив в нее:
#==================== Elasticsearch template setting ==========================
setup.template.name: "filebeat-*"
setup.template.fields: "my_filebeat_fields.yml"
setup.template.overwrite: true
затем загрузите шаблон в elasti c в зависимости от того, какой метод подходит для вашей среды, следуя этому руководству .
(Предполагается версия 7.x для всего)
РЕДАКТИРОВАТЬ:
Видимо, настройка параметра «setup.template.append_fields» в файле filebeat.yml также может работать, но Я не исследовал это.
https://www.elastic.co/guide/en/beats/filebeat/current/configuration-template.html