ELK测试笔记:filebeat与logsmash写入redis

测试场景

监控nginx日志并读取缓存到redis,后端logstash读取。其中nginx日志已经按照json格式进行输出。以下测试分别使用filebeat和logstash对相同输入(stdin)情况下,是否能正确得到json相应字段。

filebeat采集

## 采用stdin进行测试
- input_type: stdin

#-------------- Redis output --------------
output.redis:
  hosts: ["192.168.100.34"]
  port: 6379
  key: "shopweb"

logstash采集

input {
    stdin {
        codec => "json"
        type => "nginx"
    }
}

output {
    redis {
        host => "192.168.100.34"
        data_type => "list"
        key => "shopweb"
    }
}

比较

分别在采集端输入相同json字符串,然后命令行连接redis读取结果

#输入:
{"host":"192.168.100.32", "method":"GET", "status":300}

使用filebeat以json输入到redis,命令行读取:
"{\"@timestamp\":\"2017-01-16T14:00:04.261Z\",\"beat\":{\"hostname\":\"elk.dev\",\"name\":\"elk.dev\",\"version\":\"5.1.1\"},\"input_type\":\"stdin\",\"message\":\"{\\\"host\\\":\\\"192.168.100.32\\\", \\\"method\\\":\\\"GET\\\", \\\"status\\\":300}\",\"offset\":0,\"source\":\"\",\"type\":\"log\"}"

使用logstash 以json输入到redis, 命令行读取的内容:
"{\"@timestamp\":\"2017-01-16T13:55:30.651Z\",\"method\":\"GET\",\"host\":\"192.168.100.32\",\"@version\":\"1\",\"type\":\"nginx\",\"status\":300,\"tags\":[]}"

后端logstash读取redis

input {
    redis {
        host => "192.168.100.34"
        port => 6379
        key => "shopweb"
        type => "nginx"
        data_type => "list"
    }
}
output {
    stdout {
        codec => rubydebug
    }
}

后端读取结论: 只有在前端以logstash解析存入redis的结果才能读取还原原始字段, 而filebeat写入时嵌套了hash导致不能直接解析。 目前仍未完全掌握原因及采用filebeat方式是否有解决途径[初稿2017-01-16]。

20170117补充

filebeat解析日志保存到redis后,使用logstash再次读取后,原有所有信息保存在message字段中,为正确提取原始的字段信息,需要对message再次解码。这里需要使用fliter:json
filter {
json {
source => “message”
remove_field => [“beat”, “message”]
}
}
解析后删除原有message字段和filebeat自动增加的beat字段。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值