测试右移之logstash完整配置实例

本文节选自霍格沃兹测试学院内部教材

logstash是ElasticStack(ELK)的一个重要技术组件,用于对数据进行转换处理。他可以接受各种输入源,并按照记录对数据进行变换,并导出到输出源中。

安装

docker pull docker.elastic.co/logstash/logstash

quick start

简单的输入一行内容,并发送给远程的elastic search服务器

docker run -it --rm logstash -e '

input { stdin { } } 

filter { json {source => "message"} }

output { 

elasticsearch{ hosts=>["x.x.x.x"]  }  

stdout {} 

}
'

输入源

#从csv文件读取

file { path => "/data/ELK/data/*.csv" }

#从kafka中读取

kafka { topic_id => 'topic_name'; zk_connect => '${zookeeper的地址}:2181/kafka'}

常见的filter

#读取csv,并设置表头

csv{columns =>[ "log_time", "real_ip", "status", "http_user_agent"]

#读取json数据

json {source => "message"}

输出源

elasticsearch{ hosts=>["x.x.x.x"]  }  

stdout {}

完整配置实例

读取csv数据

input {

file {

path => "/data/ELK/data/*.csv"

start_position => beginning

}

}

filter {

csv{

columns =>[ "log_time", "real_ip", "status", "http_user_agent"]

}

date {

match => ["log_time", "yyyy-MM-dd HH:mm:ss"]

}

}

output {

elasticsearch {}

}

读取kafka数据

input {

kafka {

topic_id => 'topic_name'

zk_connect => '${zookeeper的地址}:2181/kafka'

}

}

filter {

csv{

separator => "|"

columns => [ "host", "request", "http_user_agent"]

}

date {

match => ["log_time", "yyyy-MM-dd HH:mm:ss"]

}

}

output {

elasticsearch {

index => "logstash-topic-%{+YYYY.MM.dd}"

}

}

Filebeat

Filebeat是一个高性能的日志采集框架,它主要是以agent模式工作,特点是高性能。用以解决logstash的性能问题,一般我们都会把数据先借助于filebeat采集,并存到redis里,再由logstash对数据进行编辑变换,再输出到es中。

logstash就先介绍到这里,大家可以试着做一下实战练习,分析nginx日志保存到elastic search!

更多技术文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值