Каков формат файла конфигурации logstash

Использует ли logstash свой собственный синтаксис файла в файле конфигурации? Есть ли синтаксический анализатор или валидатор для синтаксиса файла конфигурации?

Для тех, кто не использует logstash, но имеет представление о форматах файлов, здесь приведен пример синтаксиса:

input {
  file {
    path => "/var/log/messages"
    type => "syslog"
  }

  file {
    path => "/var/log/apache/access.log"
    type => "apache"
  }
}

Ответы

Ответ 1

По-видимому, параметры командной строки были обновлены с момента публикации ответов, а аргументы --configtest и --config больше не действительны. Чтобы попросить Logstash (по крайней мере, v5) проверить файл конфигурации:

bin/logstash -t -f config.conf

С расширенными аргументами это выглядит так:

bin/logstash --config.test_and_exit --path.config config.conf

Ответ 2

Файл конфигурации Logstash является настраиваемым форматом, разработанным пользователями Logstash с помощью Treetop.

Сама грамматика описана в исходном файле grammar.treetop и скомпилирована с использованием Treetop в пользовательский grammar.rb.

Этот анализатор затем используется файлом pipeline.rb, чтобы настроить конвейер из конфигурации Logstash.

Если вы не так много в Ruby, есть еще один интересный проект под названием node-logstash, который предоставляет реализацию Logstash в Node.js. Формат конфигурации точно такой же, как у официального Logstash, хотя синтаксический анализатор явно отличается от написанного для Node.js. В этом проекте грамматика конфигурационного файла Logstash описана в jison, и парсер также автоматически генерируется, но может быть использован любым модулем Node.js, просто требуя, чтобы сгенерированный парсер.

Ответ 3

Вы можете использовать следующую команду, чтобы проверить, что ваш файл конфигурации logstash действителен:

bin/logstash --configtest --config <your config file>

Ответ 4

До сих пор. нет никакого анализатора или валидатора для конфигурации logstash. Вы можете использовать логсташ только для проверки конфигурации.

Для получения дополнительной информации о config, вы можете посетить здесь. Весь формат представлен на этой странице.

Ответ 5

Конфигурация пакета Logstash-Config Go предоставляет готовый синтаксический анализатор и Абстрактное синтаксическое дерево для файлов конфигурации Logstash в Go.

Основой грамматики для разбора формата конфигурации Logstash является оригинальная грамматика Treest Logstash.

logstash-конфигурация использует голубь, чтобы сгенерировать синтаксический анализатор от PEG (выражение грамматики синтаксического анализа).