是否可以在 Kibana 仪表板中创建自定义字段?
Is it possible to create custom fields in a Kibana dashboard?
我在我的应用程序中使用 Java 微服务架构,并为每个微服务生成单独的日志文件。
我正在使用 ELK 堆栈方法来可视化 Kibana 中的日志,但问题是我从 Elastic Search 获得的与服务器日志字段相关的字段。一些示例字段是@timestamp、@version、@path、@version.keyword、@host.
我想通过添加一些字段来自定义此字段,例如 customerId、txn-Id、mobile no,以便我们可以轻松地分析数据。
我正在使用 org.apache.logging.log4j2 来编写日志。我可以将以上字段(customerId、txn-Id、mobile)设置为日志文件吗?然后 Elastic 将使用上述默认字段存储这些字段,然后这些自定义字段应该在 Kibana 仪表板中可用。这可能吗?
绝对有可能做到这一点。我没有用 log4j2 堆栈完成它(我用 slf4j/logback),但基本方法是:
- 在映射诊断上下文中设置这些字段(我很确定 log4j2 支持)
- 使用日志附加器记录到 logstash 结构 JSON
- 配置 filebeat 以传送 JSON 日志
- 如果 filebeat 传送到 logstash,您需要配置 logstash 以将那些预先格式化的 JSON 日志直接传递到 elasticsearch
绝对有可能。我现在正在用我的应用程序这样做。但是,输出看起来与您的有点不同。可以在 Log4j2 网站的 Logging in the Cloud 中找到执行此操作的基本指南。
“正常”日志视图看起来与您在记录到文件时看到的非常相似。
但是,如果您 select 一条消息,您可以看到各个字段。
Log4j2 配置使用 TCP 套接字附加程序,该附加程序配置为写入使用单个 DNS 条目的 Logstash 服务器集群并使用 Gelf 布局。
您还可以使用 MapMessages 捕获单个数据元素并记录它们。虽然这目前有效,但有点麻烦,所以我最近提交了将在 Log4j 2.15.0 中提供的改进。
重要的是要注意在云中登录页面简要提到将您的日志配置存储在 Spring 云配置中。如果你想有一个通用的基本配置,同时允许应用程序进行一些定制,这非常非常有效。但是,Gelf、Json Template Layout 和 TCP Appender 都独立于此,可以在没有 Spring Boot 的情况下使用。
我在我的应用程序中使用 Java 微服务架构,并为每个微服务生成单独的日志文件。
我正在使用 ELK 堆栈方法来可视化 Kibana 中的日志,但问题是我从 Elastic Search 获得的与服务器日志字段相关的字段。一些示例字段是@timestamp、@version、@path、@version.keyword、@host.
我想通过添加一些字段来自定义此字段,例如 customerId、txn-Id、mobile no,以便我们可以轻松地分析数据。
我正在使用 org.apache.logging.log4j2 来编写日志。我可以将以上字段(customerId、txn-Id、mobile)设置为日志文件吗?然后 Elastic 将使用上述默认字段存储这些字段,然后这些自定义字段应该在 Kibana 仪表板中可用。这可能吗?
绝对有可能做到这一点。我没有用 log4j2 堆栈完成它(我用 slf4j/logback),但基本方法是:
- 在映射诊断上下文中设置这些字段(我很确定 log4j2 支持)
- 使用日志附加器记录到 logstash 结构 JSON
- 配置 filebeat 以传送 JSON 日志
- 如果 filebeat 传送到 logstash,您需要配置 logstash 以将那些预先格式化的 JSON 日志直接传递到 elasticsearch
绝对有可能。我现在正在用我的应用程序这样做。但是,输出看起来与您的有点不同。可以在 Log4j2 网站的 Logging in the Cloud 中找到执行此操作的基本指南。
“正常”日志视图看起来与您在记录到文件时看到的非常相似。
您还可以使用 MapMessages 捕获单个数据元素并记录它们。虽然这目前有效,但有点麻烦,所以我最近提交了将在 Log4j 2.15.0 中提供的改进。
重要的是要注意在云中登录页面简要提到将您的日志配置存储在 Spring 云配置中。如果你想有一个通用的基本配置,同时允许应用程序进行一些定制,这非常非常有效。但是,Gelf、Json Template Layout 和 TCP Appender 都独立于此,可以在没有 Spring Boot 的情况下使用。