在 Logstash 中过滤我的自定义日志
Filter for my Custom Logs in Logstash
我是 ELK 堆栈的新手,我想使用 ELK 堆栈将我的日志推送到弹性,以便我可以在 em 上使用 Kibana。以下是我的自定义日志的格式:
Date Time INFO - searchinfo#username#searchQuery#latitude#longitude#client_ip#responseTime
以下是遵循格式的日志示例。
2017-07-04 11:16:10 INFO - searchinfo#null#gate#0.0#0.0#180.179.209.54#598
现在我正在使用 filebeat
将我的 .log
文件推送到 logstash
,logstash 会将该数据推送到弹性文件中。
我需要帮助,为 logstash
编写一个 filter
的配置,它可以简单地使用 #
拆分,然后将数据放入弹性索引的各个字段中。
我该怎么做?
您需要使用 grok filter
来解析您的日志。
你可以试试这个:
filter {
grok {
match => { "message" => "\A%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:var0}%{SPACE}%{NOTSPACE}%{SPACE}(?<var1>[^#]*)#(?<var2>[^#]*)#(?<var3>[^#]*)#(?<var4>[^#]*)#(?<var5>[^#]*)#(?<var6>[^#]*)#(?<var7>[^#]*)" }
}
}
这将解析您的日志并将名为 var0、var1 等的字段添加到已解析的文档中。您可以根据需要重命名此变量。
尝试使用grok plugin将您的日志解析为结构化数据:
filter {
grok {
match => { "message" => "\A%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:var0}%{SPACE}%{NOTSPACE}%{SPACE}(?<searchinfo>[^#]*)#(?<username>[^#]*)#(?<searchQuery>[^#]*)#(?<latitude>[^#]*)#(?<longitude>[^#]*)#(?<client_ip>[^#]*)#(?<responseTime>[^#]*)" }
}
}
你可以调试它online:
我是 ELK 堆栈的新手,我想使用 ELK 堆栈将我的日志推送到弹性,以便我可以在 em 上使用 Kibana。以下是我的自定义日志的格式:
Date Time INFO - searchinfo#username#searchQuery#latitude#longitude#client_ip#responseTime
以下是遵循格式的日志示例。
2017-07-04 11:16:10 INFO - searchinfo#null#gate#0.0#0.0#180.179.209.54#598
现在我正在使用 filebeat
将我的 .log
文件推送到 logstash
,logstash 会将该数据推送到弹性文件中。
我需要帮助,为 logstash
编写一个 filter
的配置,它可以简单地使用 #
拆分,然后将数据放入弹性索引的各个字段中。
我该怎么做?
您需要使用 grok filter
来解析您的日志。
你可以试试这个:
filter {
grok {
match => { "message" => "\A%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:var0}%{SPACE}%{NOTSPACE}%{SPACE}(?<var1>[^#]*)#(?<var2>[^#]*)#(?<var3>[^#]*)#(?<var4>[^#]*)#(?<var5>[^#]*)#(?<var6>[^#]*)#(?<var7>[^#]*)" }
}
}
这将解析您的日志并将名为 var0、var1 等的字段添加到已解析的文档中。您可以根据需要重命名此变量。
尝试使用grok plugin将您的日志解析为结构化数据:
filter {
grok {
match => { "message" => "\A%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:var0}%{SPACE}%{NOTSPACE}%{SPACE}(?<searchinfo>[^#]*)#(?<username>[^#]*)#(?<searchQuery>[^#]*)#(?<latitude>[^#]*)#(?<longitude>[^#]*)#(?<client_ip>[^#]*)#(?<responseTime>[^#]*)" }
}
}
你可以调试它online: