简介:我想在logstash中附加一个带有日志的TTL字段,并将它们发送到Elastic搜索.
我已经阅读了文档,但由于不太清楚,因此无法获得大量文档.
这是我在logstash中的配置文件.
input {
stdin {
type => "stdin-type"
}
}
output {
stdout { debug => true debug_format => "json"}
elasticsearch {}
}
Run Code Online (Sandbox Code Playgroud)
现在假设对于每个读取的日志,我想附加一个TTL,比如5天.
我知道如何在弹性搜索中激活TTL选项.但是我必须在弹性搜索配置文件中做出哪些更改对我来说不是很清楚.文档要求查找映射文件夹,但弹性搜索下载文件夹中没有.
寻求专家帮助.
我使用以下正则表达式:
INT (?:[+-]?(?:[0-9]+))
VALUE ([0-9]+)
SPACE \s*
DATA .*?
USERNAME [a-zA-Z0-9._-]+
YEAR (?>\d\d){1,2}
MONTHNUM (?:0?[1-9]|1[0-2])
MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
HOUR (?:2[0123]|[01]?[0-9])
MINUTE (?:[0-5][0-9])
SECOND (?:(?:[0-5][0-9]|60))
ISO8601_TIMEZONE (?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
TIMESTAMP %{YEAR:year}/%{MONTHNUM:monthnum}/%{MONTHDAY:monthday}-%{HOUR:hour}:%{MINUTE:minute}:%{SECOND:second}.%{VALUE:_second}
MESSAGE %{DATA}ERR_SYSTEM%{DATA}
PARSE_ERROR %{TIMESTAMP:ts}%{SPACE}%{USERNAME:type1}%{SPACE}%{USERNAME:slave}%{SPACE}%{USERNAME:type2}%{SPACE}[%{USERNAME:fibre1}/USERNAME:fibre2]%{SPACE}%{MESSAGE:message}
Run Code Online (Sandbox Code Playgroud)
现在我必须解析这一行:
2013/05/13-05:19:16.776 INFO abcd1 gamereporting
[0000000000000000/00000000000000000000] [GameReportingSlaveImpl:0x30bf7699a010] .processReport():错误处理报告id = 18014398509852207,type = frostbite_m,error = ERR_SYSTEM
解析后我得到以下内容:
type1: INFO
slave : abcd1
type2: gamereportin
Run Code Online (Sandbox Code Playgroud)
现在,类型2总是错过'g'.为什么会这样?
有人能为上述行提供正确的正则表达式吗?