Kafka也是Logstash的常用输出之一,一般拿来作数据的中转。
常规的Kafka输出配置文件如下所示:
output {
kafka {
bootstrap_servers => "localhost:9092" #生产者
topic_id => "nginx-access-log" #设置写入kafka的topic
compression_type => "snappy" #消息压缩模式,默认是none,可选gzip、snappy。
}
}
logstash-out-kafka 的其他配置还包括:
compression_type:消息压缩模式,默认是none,有效值为:none、gzip、snappy。
asks:消息确认模式,默认为1,有效值为:0、1、all。设置为0,生产者不等待 broker 回应;设置为1,生产者会收到 leader 写入之后的回应;设置为all, leader 将要等待 in-sync 中所有的 replication 同步确认。
send_buffer_bytes: TCP发送数据时的缓冲区的大小。
logstash-kafka 插件输入和输出默认 codec 为 json 格式。在输入和输出的时候注意下编码格式。消息传递过程中 logstash 默认会为消息编码内加入相应的时间戳和 hostname 等信息。如果不想要以上信息(一般做消息转发的情况下),可以使用以下配置,例如:
output {
kafka {
codec => plain {
format => "%{message}"
}
}
}