简介
Kafka作为最流行的消息队列,在业界有这非常广泛的使用。不少用户把日志投递到Kafka之后,再使用其他的软件如ElasticSearch进行分析。Kafka Connect 是一个专门用于在Kafka 和其他数据系统直接进行数据搬运插件,如将Kafka数据写入到S3,数据库等。
![2456afd3045d3c78c509674dd84d2d90.png](https://i-blog.csdnimg.cn/blog_migrate/adcd23bb7fe91062c79a8febf8b5318f.jpeg)
Kafka Connect
阿里云日志服务是一个日志采集,查询分析与可视化的平台,服务于阿里云上数十万用户。借助于日志服务提供的Kafka Connect插件,我们可以使用Kafka Connect 把Kafka里面的数据同步到阿里云日志服务,利用日志服务强大的查询能力与丰富的可视化图表类型,对数据进行分析与结果展示。
环境准备
如果还没有开通日志服务,前往 日志服务控制台开通。
准备测试用的 Kafka 集群。
创建用于访问阿里云日志服务的Access Key。
在日志服务控制台创建Project 和Logstore,并开启索引。
Kafka Connect安装
下载Kafka 日志服务connect 插件并打包:
![110bf9a78009e4b5bea0f8abd13e6ded.png](https://i-blog.csdnimg.cn/blog_migrate/c23524dcefed640859445c76085847a8.png)
打包之后,在项目根目录下,会生成一个压缩包 target/kafka-connect-logservice-1.0.0-jar-with-dependencies.jar 。这个文件包含了插件和所有依赖,把这个文件复制到Kafka运行的机器上。
Kafka connect的工作模式分为两种,分别是standalone模式和distributed模式。standalone模式可以简单理解为只有一个单独的worker,只需在启动时指定配置文件即可。而distributed模式可以启动多个worker,可以水平扩展和failover,插件本身的配置通过REST API的方式传递。这里我们为了演示方便仅演示standalone模式,在生产环境中建议使用distributed模式。
启动Connect
1)修改日志服务插件配置文件
在项目目录下config目录内有一个配置文件sink.properties,里面包含了日志服务插件运行所必须的配置信息:
![c1ef0e250e9737cf129b102ea70b2245.png](https://i-blog.csdnimg.cn/blog_migrate/4217adc9cd426fb2c2993d613545f20d.png)
除了放日志服务必需的配置外,还可以指定数据格式。目前日志服务Connector只支持字符串类型的数据,format可以选择 json 或者 raw:
json:每条纪录的value作为一个JSON字符串解析,自动提取字段并写入日志服务。
raw:每条纪录的value作为一个字段,写入日志服务。
2)修改connect配置文件
在Kafka下载目录下,找到 config/connect-standalone.properties,修改如下配置:
![0ec21b2b95ba5ab1ba933e22af1ec1fa.png](https://i-blog.csdnimg.cn/blog_migrate/3eb58e77c4a92e585e1cede4c2006115.png)
plugin.path即为上文构建的jar 所在目录。在Kafka 下载目录内执行启动命令:
![f7b538fa8fdd57f1406fa18c7709e486.png](https://i-blog.csdnimg.cn/blog_migrate/b7ece327de61805f7b6849cb1373dd6a.png)
生成测试数据
![32b3b38c8de438671a3d9b5203c0a777.png](https://i-blog.csdnimg.cn/blog_migrate/6dc44ab35e12eaea3985a71bb3ac77d7.png)
替换其中的Kafka配置:
![2bdcf89c3ab6fff98929c2b0a5e1da79.png](https://i-blog.csdnimg.cn/blog_migrate/d551aeae80f94dfa2ee6da14c65063ed.png)
在IDE中运行产生测试数据的程序,会通过Kafka Producer往Kafka中写入一些模拟数据。
写入结果查询
日志服务控制台查看数据写入成功:
![e935d7bd512eebc8e3bd6d6c22326aac.png](https://i-blog.csdnimg.cn/blog_migrate/fbc33d64d06a7c0c5a5f526398e35e2c.png)
![6bd0b2cf7e0e974397fd1c65fdd2482a.gif](https://i-blog.csdnimg.cn/blog_migrate/52b295a1f8cf03c32a01f517b8b077ef.gif)
![d7cf08838439fa052a9846817450b4db.png](https://i-blog.csdnimg.cn/blog_migrate/38632233f7591a6a15c36e8b332579e2.jpeg)
![9c7d77f4d81aff4a3a49234969065456.gif](https://i-blog.csdnimg.cn/blog_migrate/c3d844880a979424cdf6b2c748cd847d.gif)