【发布时间】:2014-11-14 19:36:45
【问题描述】:
我有一个以 json 格式写入日志文件的 Java 应用程序。 日志中的字段是可变的。 logstash 读取此日志文件并将其发送到 Kibana。
我已经使用以下文件配置了 logstash:
input {
file {
path => ["[log_path]"]
codec => "json"
}
}
filter{
json {
source => "message"
}
date {
match => [ "data", "dd-MM-yyyy HH:mm:ss.SSS" ]
timezone => "America/Sao_Paulo"
}
}
output {
elasticsearch_http {
flush_size => 1
host => "[host]"
index => "application-%{+YYYY.MM.dd}"
}
}
我已经成功地在 Kibana 中正确显示了所有内容,而无需任何映射。 但是当我尝试创建一个术语面板来显示发送这些消息的服务器的数量时,我遇到了问题。 我的 json 中有一个名为 server 的字段,它显示服务器名称(例如:a1-name-server1),但术语面板由于“-”而拆分了服务器名称。 我还想统计出现错误消息的次数,但同样的问题会发生,因为术语面板因为空格而拆分了错误消息。
我正在使用 Kibana 3 和 Logstash 1.4。 我在网上搜索了很多,找不到任何解决方案。 我也尝试使用 logstash 中的 .raw,但没有成功。
我该如何管理?
感谢您的帮助。
【问题讨论】: