目前在我的Logstash配置中,我有类似的内容:
input {
file {
type => "catalina-out"
path => [ "/var/tomcat/logs/catalina.out"]
sincedb_path => "$HOME/.sincedb"
tags => ["tomcat", "catalina-out"]
codec => multiline {
pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)|(%{LOGLEVEL}: %{GREEDYDATA})"
what => "previous"
}
}
...
我有很多Tomcat输出文件,我想重用这个codec
(或者不那么理想,pattern
)和其他file
定义。
我的问题是以下错误:
input {
tomcat_multiline_codec => multiline {
pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)|(%{LOGLEVEL}: %{GREEDYDATA})"
what => "previous"
}
file {
type => "catalina-out"
path => [ "/var/tomcat/logs/catalina.out"]
sincedb_path => "$HOME/.sincedb"
tags => ["tomcat", "catalina-out"]
codec => tomcat_multiline_codec
}
...
如何定义codec
(或必要时,pattern
)一次,与file
块分开,以便我可以在其他file
块中重复使用它?
答案 0 :(得分:2)
这根本不受支持。 Logstash没有通用变量。除非您可以使用多行过滤器,否则最好的办法是使用具有模板支持的配置管理系统来生成和部署Logstash配置文件。无论如何,你不应该手工维护它们。
答案 1 :(得分:0)