logstash与kafka消息传输<一>
1、版本:
logstash6.1.2、kafka-0.11、kafka-0.8.2、java1.8
Note:
Logstash requires Java 8. Java 9 is not supported. Use the official Oracle distribution or an open-source distribution such as OpenJDK.
2、下载:
https://www.elastic.co/downloads/logstash(推荐下载tar包,yum源安装总提示Unable to find JRuby.)
https://kafka.apache.org/downloads
3、安装
1)kafka
#tar xf kafka_2.11-0.11.0.2.tgz
#配置使用kafka参考我的其他文章http://www.cnblogs.com/cuishuai/p/7475356.html。
2)logstash
#tar xf logstash-6.1.2.tar.gz
#cp ./logstash-6.1.2/bin/* /usr/bin
创建配置文件:
#cat etl.conf
input{
kafka{
bootstrap_servers => ["10.10.11.2:9092"]
client_id => "shence"
#auto_offset_reset => "latest"
consumer_threads => 5
#decorate_events => true
topics => ["event_topic"]
# type => "bhy"
}
}
output {
kafka {
bootstrap_servers => "10.10.8.2:9092"
codec => json
compression_type => "gzip"
topic_id => "shence"
}
}
详细配置参考:
https://www.elastic.co/guide/en/logstash/6.1/plugins-inputs-kafka.html
https://www.elastic.co/guide/en/logstash/6.1/filter-plugins.html
https://www.elastic.co/guide/en/logstash/6.1/codec-plugins.html
https://www.elastic.co/guide/en/logstash/6.1/plugins-outputs-kafka.html
https://github.com/joekiller/logstash-kafka/blob/master/README.md
4、启动logstash
#./bin/logstash -f etl.conf
这种启动方式是前端启动关掉终端程序就退出了。可以使用nohup启动:
# nohup ./bin/logstash -f etl.conf 2>&1 &
5、检查
1)output端的kafka查看消息:
#./kafka-console-consumer.sh --zookeeper localhost:2181 --topic shence
2)output端kafka查看topic
#./kafka-topics.sh --list --zookeeper localhost:2181
3) output端kafka查看topic shence的详细信息:
#./kafka-topics.sh --describe --zookeeper localhost:2181 --topic shence
6、报错解决
1)启动logstash的时候报错:
Unable to find JRuby.
If you are a user, this is a bug.
If you are a developer, please run 'rake bootstrap'. Running 'rake' requires the 'ruby' program be available.
解决方式:
去官网下载tar解压,使用bin下的logstash启动,就好了。
2)启动logstash后,发现没有数据进来,并有如下报错:
Error while fetching metadata with correlation id 39 : {shence=LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClient) 解决方式:
检查kafka的listen的地址:listeners = PLAINTEXT://your.host.name:9092
将your.host.name 换成服务器的ip或0.0.0.0
重启服务就好了。 我是直接重启logstash就好了
logstash与kafka消息传输<一>的更多相关文章
- kafka消息传输时的对象转字符串时所需 -json String 转list 、set、 Long、 String 、map 与json Iterator遍历
JSONObject jsonObject = new JSONObject(jsonString); Iterator iterator = jsonObject.keys(); while(ite ...
- 使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程
使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程 先列出来总体启动流程: (1)启动zookeeper集群(hadoop01.hadoop02和hadoop03这3台机 ...
- Kafka简介及使用PHP处理Kafka消息
Kafka简介及使用PHP处理Kafka消息 Kafka 是一种高吞吐的分布式消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区.多副本.冗余,因此被 ...
- Logstash读取Kafka数据写入HDFS详解
强大的功能,丰富的插件,让logstash在数据处理的行列中出类拔萃 通常日志数据除了要入ES提供实时展示和简单统计外,还需要写入大数据集群来提供更为深入的逻辑处理,前边几篇ELK的文章介绍过利用lo ...
- 一文看懂Kafka消息格式的演变
摘要 对于一个成熟的消息中间件而言,消息格式不仅关系到功能维度的扩展,还牵涉到性能维度的优化.随着Kafka的迅猛发展,其消息格式也在不断的升级改进,从0.8.x版本开始到现在的1.1.x版本,Kaf ...
- Kafka实战:如何把Kafka消息时延秒降10倍
背景 国内某大型税务系统,业务应用分布式上云改造. 业务难题 如上图所示是模拟客户的业务网页构建的一个并发访问模型.用户在页面点击从而产生一个HTTP请求,这个请求发送到业务生产进程,就会启动一个投递 ...
- 转载来自朱小厮博客的 一文看懂Kafka消息格式的演变
转载来自朱小厮博客的 一文看懂Kafka消息格式的演变 ✎摘要 对于一个成熟的消息中间件而言,消息格式不仅关系到功能维度的扩展,还牵涉到性能维度的优化.随着Kafka的迅猛发展,其消息格式也在 ...
- MQ选型对比ActiveMQ,RabbitMQ,RocketMQ,Kafka 消息队列框架选哪个?
最近研究消息队列,发现好几个框架,搜罗一下进行对比,说一下选型说明: 1)中小型软件公司,建议选RabbitMQ.一方面,erlang语言天生具备高并发的特性,而且他的管理界面用起来十分方便.不考虑r ...
- 为什么会有kafka消息系统?小问题藏着大细节!
前言:老刘今天写这篇文章首先想对一些复制粘贴的博客表达不满:其次是想用通俗易懂的话解释消息系统:最后欢迎各位英雄好汉.女中豪杰前来battle. 1. 为什么有消息系统? 1.1 背景 今天复习kaf ...
随机推荐
- Java关联关系、依赖关系
关联关系 概念:对象和对象之间的连接 定义:A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关联关系 生命周期:如果A类关联B类,那么创建A类的对象时实例化B类的对象,直到A类对象被销毁 ...
- Java的String类
String类 String是引用数据类型:字符串是String类的对象 String类的构造方法 共有13种重载方式,这里只示例常用的几个 String():创建一个空字符串 String(Stri ...
- day03_雷神_文件操作
day03 上周回顾_问题总结: 地址值: li = [] name = ['name','price','count'] dic = {} #如果这里定义空列表,后边的dic[name[i]] = ...
- MODBUS串行通信协议详细说明
第一章 简介 本文详细地描述了装置在MODBUS 通讯模式下的输入和输出命令.信息和数据,以便第三方使用和开发. 1.1 串行通讯协议的目的 通信协议的作用是使信息和数据在上位机主站和装置之间有效地 ...
- oracle的删除方法
手工彻底删除oracle 第一步:停用全部oracle服务 第二步:删除oracle注册表运行regedit在如下路径中找到oracle相关键值,删除 HKEY_LOCAL_MACHINE\SOFTW ...
- Matlab中函数句柄@的作用及介绍
问:f=@(x)acos(x)表示什么意思?其中@代表什么?答:表示f为函数句柄,@是定义句柄的运算符.f=@(x)acos(x) 相当于建立了一个函数文件:% f.mfunction y=f(x) ...
- Java基础巩固——反射
什么是反射 反射机制就是指程序运行时能够获取自身的信息.在Java中,只要给出类的名字,就可以通过反射机制来获取类的信息 哪里用的到反射机制 在jdbc中就是使用的反射来实例化对象,比如:Class. ...
- 【新手向】阿里云上ubuntu+flask+gunicorn+nginx服务器部署(二)项目部署
本项目实现的是类似于ins的图片分享网站.继续(一),当nginx的配置已修改好后,要在远程服务器上部署网站,只需要几个步骤: 1 前期准备 2 将运行网站的代码从github上下载过来 3 下载依赖 ...
- 【文文殿下】【洛谷】分治NTT模板
题解 可以计算每一项对后面几项的贡献,然后考虑后面每一项,发现这是一个卷积,直接暴力NTT就行了,发现它是一个有后效性的,我们选择使用CDQ分治. Tips:不能像通常CDQ分治一样直接 每次递归两边 ...
- jQuery的ajax的post请求json格式无法上传空数组
问题描述:在和后端对接时,使用jquery的ajax的post方式向后端传递一序列约定好格式的对象数组.遇到了一个现象:如果对象中的数组是空数组,那么在请求参数中是不会出现的. 以下是数据的对比: ...