【发布时间】:2020-04-17 19:31:14
【问题描述】:
在我们当前的设置中,我们使用 Filebeat 将日志传送到 Elasticsearch 实例。应用程序日志为 JSON 格式,并在 AWS 中运行。
出于某种原因,AWS 决定在新平台版本中为日志行添加前缀,现在日志解析不起作用。
Apr 17 06:33:32 ip-172-31-35-113 web: {"@timestamp":"2020-04-17T06:33:32.691Z","@version":"1","message":"Tomcat started on port(s): 5000 (http) with context path ''","logger_name":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","thread_name":"main","level":"INFO","level_value":20000}
以前只是:
{"@timestamp":"2020-04-17T06:33:32.691Z","@version":"1","message":"Tomcat started on port(s): 5000 (http) with context path ''","logger_name":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","thread_name":"main","level":"INFO","level_value":20000}
问题是我们是否可以避免使用 Logstash 将日志行转换为旧格式?如果没有,我该如何删除前缀?哪种过滤器是最好的选择?
我当前的 Filebeat 配置如下所示:
filebeat.inputs:
- type: log
paths:
- /var/log/web-1.log
json.keys_under_root: true
json.ignore_decoding_error: true
json.overwrite_keys: true
fields_under_root: true
fields:
environment: ${ENV_NAME:not_set}
app: myapp
cloud.id: "${ELASTIC_CLOUD_ID:not_set}"
cloud.auth: "${ELASTIC_CLOUD_AUTH:not_set}"
【问题讨论】:
标签: elasticsearch logstash amazon-elastic-beanstalk filebeat