我正在尝试使用OpenSearch而不是Logstash日志。我有两个日志,但第二个日志不适用于OpenSearch可用字段。
这是我的两个日志,每个日志都有不同的log4j模式。这是第三方解决方案,所以这些日志模式不能改变。
Log1
%d %5p [%c] [%X{txIp}] [%X{mbrNo}] %m%n
Log2
[%-5p][%d{yyyyMMdd HH:mm:ss.SSS}][%t]%c{4}.%M(%L) - %X{reqCommand}|%X{svcTrId}|%m%n
字符串
这是我的logstash.conf
过滤器:
filter {
if [fields][index] == "log1"{
grok {
match => {
"message" => "%{TIMESTAMP_ISO8601:date} %{LOGLEVEL:logLevel} \[%{DATA:class}\] \[%{DATA:txIp}\] \[%{DATA:mbrNo}\] %{GREEDYDATA:message}"
}
}
} else if [fields][index] == "log2" {
grok {
match => {
"message" => "\[%{LOGLEVEL:logLevel}\]\[%{TIMESTAMP_ISO8601:date}\]\[%{DATA:thread}\]%{DATA:class}.%{DATA:method}\(%{DATA:line}\) - %{DATA:reqCommand}\|%{DATA:svcTrId}\|%{GREEDYDATA:message}"
}
}
}
date {
match => ["date", "ISO8601"]
}
}
型
1条答案
按热度按时间kt06eoxx1#
终于成功了。
这是我的过滤器。
字符串