logstash配置文件的格式是什么

时间:2014-01-29 21:09:07

标签: serialization logstash

logstash是否在配置文件中使用自己的文件语法?是否有配置文件语法的解析器或验证器?

对于那些不使用logstash但对文件格式有所了解的人来说,这是一个示例语法:

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

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

5 个答案:

答案 0 :(得分:19)

Logstash配置文件是由Logstash人员使用Treetop开发的自定义格式。

语法本身在源文件grammar.treetop中描述,并使用Treetop编译到自定义grammar.rb解析器中。

然后该解析器为used by the pipeline.rb文件,以便从Logstash配置中设置管道。

如果你对Ruby没有那么多,还有一个名为node-logstash的有趣项目,它在Node.js中提供了一个Logstash实现。配置格式与官方Logstash完全相同,尽管解析器显然是为Node.js编写的另一个。在这个项目中,Logstash configuration file grammarjison中描述,解析器也是automatically generated,但任何Node.js模块都可以使用它,只需要生成解析器。

答案 1 :(得分:9)

您可以使用以下命令验证您的logstash配置文件是否有效:

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

答案 2 :(得分:4)

显然,命令行参数已更新,因为已发布答案且--configtest--config参数不再有效。要求Logstash(至少v5)验证配置文件:

bin/logstash -t -f config.conf

扩展参数看起来像这样:

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

答案 3 :(得分:1)

到目前为止。 logstash配置没有任何解析器或验证器。您只能使用logstash来验证配置。

有关配置的详细信息,请访问here。所有格式都在此页面中介绍。

答案 4 :(得分:0)

Logstash-Config Go package配置为Go中的Logstash配置文件提供了立即可用的解析器和抽象语法树。

Logstash配置格式的语法分析基础是原始的Logstash Treetop grammar

logstash-config使用pigeon从PEG(解析器表达语法)生成解析器。