我需要使用 logstash 生成新字段(loglevel),最后在 kibana 中显示。
- 如何提取此日志并为此日志使用 grok 过滤器制作模式。
- 如何使用 logstash 配置创建loglevel字段。
我需要使用 logstash 生成新字段(loglevel),最后在 kibana 中显示。
当我设置我的 log4net 过滤器时,我发现这个页面很有帮助。根据您的日志的样子,您最终会得到类似这样的内容(从该页面复制):
filter {
if [type] == "log4net" {
grok {
match => [ "message", "(?m)%{LOGLEVEL:level} %{TIMESTAMP_ISO8601:sourceTimestamp} %{DATA:logger} \[%{NUMBER:threadId}\] \[%{IPORHOST:tempHost}\] %{GREEDYDATA:tempMessage}" ]
}
mutate {
replace => [ "message" , "%{tempMessage}" ]
replace => [ "host" , "%{tempHost}" ]
remove_field => [ "tempMessage" ]
remove_field => [ "tempHost" ]
}
}
}
是的,现在我得到了答案。请找到以下用于创建新字段并过滤某些字段的配置。
filter {
multiline{
pattern => "^%{TIMESTAMP_ISO8601}"
what => "previous"
negate=> true
}
# Delete trailing whitespaces
mutate {
strip => "message"
}
# Delete \n from messages
mutate {
gsub => ['message', "\n", " "]
}
# Delete \r from messages
mutate {
gsub => ['message', "\r", " "]
}
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:time} \[%{NUMBER:thread}\] %{LOGLEVEL:loglevel} %{JAVACLASS:class} - %{GREEDYDATA:msg}" }
}
if "Exception" in [msg] {
mutate {
add_field => { "msg_error" => "%{msg}" }
}
}
}