我有一个带有一堆json数据行的日志文件。例如,这是一行:
{"name":"sampleApplicationName","hostname":"sampleHostName","pid":000000,"AppModule":"sampleAppModuleName","msg":"testMessage","time":"2016-02-23T19:33:10.468Z","v":0}
我希望logstash能够分解json字符串的这些不同组件,以便我可以基于这些组件在Kibana中创建可视化。我已经尝试过使用索引器文件并使用json过滤器和grok模式尝试无数变化,但我无法使用任何东西。任何帮助深表感谢。
答案 0 :(得分:0)
下面是我使用的示例配置。尝试将json行粘贴到命令提示符以验证它是否正常工作。
input {
stdin {}
}
filter {
json {
source => "message"
}
mutate {
add_field => {
"[@metadata][tenant-id]" => "%{[tenant-id]}"
"[@metadata][data-type]" => "%{[data-type]}"
"[@metadata][data-id]" => "%{[data-id]}"
}
}
if [data-type] == "build" {
mutate {
add_field => { "[@metadata][action]" => "index" }
}
}
}
output {
stdout { codec => rubydebug { metadata => true } }
file { path => "/tmp/jenkins-logstash.log" }
elasticsearch {
action => "%{[@metadata][action]}"
hosts => "XXX:9200"
index => "tenant-%{[@metadata][tenant-id]}"
document_type => "builds"
document_id => "%{[@metadata][data-id]}"
workers => 1
}
}