我们的系统许多时候需要接收并解析日志,并存储到数据库中,有些时候客户环境中的日志量是非常大的,可以达到1w/s以上,种类也是非常多的,轻松也有上百种,为此需要一套高性能高可靠,并可灵活更新规则库的软件系统。
目前的架构基本上是这样的 rsyslog-heka-kafka-log_parser-es, 出于某些目的,有可能还会出现 rsyslog-heka-kafka-log_parser-kafka-msg_processor-es
主要的功能集中于 log_parser,kafka来的消息往往是json形式的string(有点浪费),最后回传给kafka的也是json形式的string
标准过程
1. kafka consume
2. string to json
3. process json.log.raw, get new json object
4. json to string,
5. produce to kafka
研究了挺久,每一步都可以折腾