logstash通过codec将完整的数据发送到kafka

业务需求,通过logstash解析日志后,需要发送一个份到kafka中。但在实际操作的时候发现一个很蛋疼的问题。就是logstash发送到kafka的数据竟然只是一个message。。对就是一个大括号包裹的message,其他什么都没有。。网上到处搜都没搜索相关问题,然后取官网看了看,发现一个codec插件很强大,用了一下果然能行。具体代码如下

 kafka {
          codec => json
          bootstrap_servers => "xxxx:9092"
          topic_id => "tomcat-log"
          codec => plain {
                format => "%{message}"
            }
       }
Logstash是一个开源的数据收集引擎,可以从各种来源(如日志文件、数据库、消息队列等)收集、转换和发送数据Kafka是一个分布式的流处理平台,用于高吞吐量的实时数据提取、传输和存储。 在Logstash中使用Kafka作为数据输入或输出的插件可以实现将数据Kafka中消费或者将数据发送Kafka中。 要使用LogstashKafka进行集成,首先需要安装LogstashKafka,并确保它们能够正常运行。然后,在Logstash的配置文件中配置Kafka插件,指定Kafka的相关参数(如主题、分区等),以及数据的格式转换和过滤规则。 例如,要从Kafka中消费数据,可以使用Logstashkafka插件作为输入插件,并指定要消费的主题和分区。配置示例: ``` input { kafka { bootstrap_servers => "kafka_host:port" topics => ["topic1", "topic2"] group_id => "consumer_group_id" } } output { stdout { codec => json_lines } } ``` 上述配置中,Logstash将从指定的Kafka集群(bootstrap_servers)中消费topic1和topic2的数据,并将其输出到标准输出(stdout)。 类似地,要将数据发送Kafka,可以使用Logstashkafka插件作为输出插件,并指定要发送的主题和Kafka集群的配置。配置示例: ``` input { stdin { codec => json_lines } } output { kafka { bootstrap_servers => "kafka_host:port" topic_id => "topic_name" } } ``` 上述配置中,Logstash将从标准输入(stdin)中读取数据,并将其发送到指定的Kafka集群的topic_name主题中。 需要注意的是,配置文件中的参数和配置选项可能因LogstashKafka的版本而略有差异,具体可参考官方文档或相关资源进行配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值