(二十八)Kafka整合logstash实战

简单介绍下logstash,logstash专门用来收集数据,其功能和flume类似,但功能却比flume强大很多,而且不会丢失数据。

其功能结构图如下

 

logstash主要由3个组件组成

  • Input plugin:数据的输入源,比如有文件,数据库等
  • Filter plugin:对输入的数据进行业务逻辑处理过滤
  • Output plugin:数据的输出地,比如有hdfs、kafka等

1.logstash的搭建

logstash的搭建比较简单,下载官方的压缩包后,解压即可使用

实验过程:使用logstash监听一个日志文件,每当有数据写入的时候,自动把新增数据推送到kafka中
此次使用一个log文件作为输入源,在/tmp下新建一个文件access.log

 

在conf下创建一个conf文件代码如下:vim logkafka.conf

input {
 file {
  path => "/home/hadoop/data/logs/access.log"
  start_position => "beginning"

 }
}
output {
 kafka {
  topic_id => "logstashkafka"
  codec => plain{
		format => "%{message}"
		charset => "UTF-8"
		}
  bootstrap_servers => "hadoop000:9092"
  batch_size => 1
 }
}

 

代码解释:input和output就是对应的插件。如input使用file作为数据源,path定义了该数据源文件的位置,start_position表示第一次读取时从头开始读(beginning),还是只读取新增数据(默认end)。output使用kafka作为输出地,topic_id就是kafka的主题id,codec是我们定义的格式,bootstrap_servers就是对应broker的集群地址

配置好文件后,我们使用如下的命令启动logstash (-f 指定待监听的文件)

./logstash agent -f conf/logkafka.conf 

 

 

2.Kakfa的整合

 

Kafka的安装部署,请看上一篇博客,这里的整合其实就是将kafka的生产者换成logstash中采集来的日志的数据

新建一个名为“logstashkafka”的topic主题

kafka-topics.sh --creat --zookeeper hadoop000:2181 --replication-factor 1 --partitions 1 --topic logstashkafka

启动一个kafka消费终端

kafka-console-consumer.sh --zookeeper hadoop000:2181 --topic logstashkafka --from-beginning

在上面创建的access.log日志中输入数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值