logstash读取nginx日志并写入es系统架构

最近在做一个项目,需要把客户端日志导入es里, 最初是想nginx日志写入kafka,再从kafka读取数据,写入es这样的流程。后来由于客户端上报的是json格式的日志,又不需要对内容做解析、计算,而es支持json格式输入,所以想到直接由logstash读取nginx日志写入es,整体数据流是客户端上报-->nginx-->logstash-->es。

这里,需要对nginx日志格式做配置,最初配置的是log_format  log escape=json  '$request_body'; 但是这样写到es里的数据把$request_body当成整个的字符串了,里面的字段没有做解析;后改为 log_format  cdn_log escape=json  '{"request": "$request_body"}'; 同时在logstash配置

filter{
   json{
   source => "request"
   }
   mutate{

   remove_field => ["request", "host", "path"]
  }
}

这样只对request解析,就能准确识别日志中的字段了。

无需写代码,只进行配置,并且数据流也较短,就能将数据入库了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值