Logstashは設定ファイルで独自のファイル構文を使用しますか?設定ファイル構文のパーサーまたはバリデーターはありますか?
Logstashを使用していないが、ファイル形式について考えている人のために、ここにサンプル構文があります。
input {
file {
path => "/var/log/messages"
type => "syslog"
}
file {
path => "/var/log/Apache/access.log"
type => "Apache"
}
}
回答が投稿されてからコマンドライン引数が更新されたようです。--configtest
および--config
引数は無効になりました。 Logstash(少なくともv5)に構成ファイルの検証を依頼するには、次のようにします。
bin/logstash -t -f config.conf
引数を展開すると、次のようになります。
bin/logstash --config.test_and_exit --path.config config.conf
Logstash構成ファイルは、Logstashの人々が Treetop を使用して開発したカスタム形式です。
文法自体はソースファイル grammar.treetop
に記述されており、Treetopを使用してカスタム grammar.rb
パーサーにコンパイルされます。
そのパーサーは、Logstash構成からパイプラインをセットアップするために pipeline.rb
ファイルによって使用されます。
Rubyにあまり詳しくない場合は、 node-logstash という別の興味深いプロジェクトがあります。これはNode.jsでLogstashの実装を提供します。構成形式は公式のLogstashとまったく同じですが、パーサーは明らかにNode.js用に作成されたものとは異なります。このプロジェクトでは、Logstash 構成ファイルの文法 は jison で記述され、パーサーも 自動生成 ですが、どのノードでも使用できます。生成されたパーサーを要求するだけでjsモジュール。
次のコマンドを使用して、logstash構成ファイルが有効であることを確認できます。
bin/logstash --configtest --config <your config file>
これまでのところ。 logstash構成用のパーサーまたはバリデーターはありません。 logstashを使用して構成を確認することしかできません。
Configの詳細については、 ここ にアクセスしてください。このページではすべてのフォーマットを紹介しています。
Logstash-Config Goパッケージ configは、GoのLogstash構成ファイルにすぐに使用できるパーサーと抽象構文ツリーを提供します。
Logstash構成フォーマットを解析するための文法の基礎は、元の Logstash Treetop文法 です。
logstash-configは pigeon を使用して、PEG(パーサー式文法)からパーサーを生成します。