如何用kafka connect做分布式日志收集?

平丈 发表于: 2018-12-20   最后更新时间: 2018-12-24 18:43:42   2,923 游览

日志文件轮转存放到本地,需要监听日志文件的变化,如log -> log-2018-12-20,但是log这个软连接会变动,下一天会变成log -> log-2018-12-21

  1. 能监测到文件的变化,同时能读到软连接变化后的新的文件
  2. 能过滤需要的行

用kafka connector能做到吗?

发表于 2018-12-20
添加评论

加个logstash做过滤吧。

平丈 -> 半兽人 6年前

之前的方案是用flume来做过滤,但是现在的考虑是去掉多余的技术栈,想用kafka直接实现,有scala/java的例子吗?
```shell

import scala.sys.process._

def someProcessing(line: String): Unit = {
  // do whatever you want with that line
  print("[just read this line] ")
  println(line)
}

// the file to read
val file = "mylogfile.txt"

// the process to start
val tail = Seq("tail", "-f", file)

// continuously read lines from tail -f
tail.lineStream.foreach(someProcessing) 
// careful: this never returns (unless tail is externally killed)
````

这是我在stackoverflow上看到的,但是这个不能被打断恢复。

平丈 -> 平丈 6年前

过滤的问题我已经解决了,主要是怎么监听 按天滚动的日志文件,使能从正确位置读到最新的消息

半兽人 -> 平丈 6年前

你自己实现的话,就得实现相关的逻辑的。

你的答案

查看kafka相关的其他问题或提一个您自己的问题