我尝试使用Mongostat工具显示我使用logstash收集的一些Mongo数据。它显示的内容有" b"," k"," g"表示字节,千字节,千兆字节,如果我只是阅读输出,这很好,但我想把它扔进kibana并以图形格式显示以查看趋势。
我已经使用其他几个日志文件完成了这一切,一切都很好。当我使用grok过滤器时,一切都很好,但我已经添加了一个Ruby过滤器,现在除了logstash生成的字段和我在Ruby过滤器中创建的新字段之外的所有字段中,数据似乎都是重复的。
以下是我的conf文件的相关部分:
input {
file {
path => "/var/log/mongodb/mongostat.log"
type => "mongostat"
start_position => "end"
}
}
filter {
if [type] == "mongostat" {
grok {
patterns_dir => "/opt/logstash/patterns"
match => ["message","###a bunch of filtering that i know works###"]
add_tag => "mongostat"
}
if [mongoMappedQualifier] == 'b' {
ruby {
code => "event['mongoMappedKB'] = event['mongoMapped'].to_f / 1024"
}
}
if [mongoMappedQualifier] == 'k' {
ruby {
code => "event['mongoMappedKB'] = event['mongoMapped'].to_f * 1"
}
}
if [mongoMappedQualifier] == 'm' {
ruby {
code => "event['mongoMappedKB'] = event['mongoMapped'].to_f * 1024"
}
}
if [mongoMappedQualifier] == 'g' {
ruby {
code => "event['mongoMappedKB'] = event['mongoMapped'].to_f * 1048576"
}
}
}
}
output {
if [type] == "mongostat" {
redis {
host => "redis"
data_type => "list"
key => "logstash-mongostat"
}
}
}
知道为什么或如何解决这个问题?