Kafka也是Logstash的常用輸出之一,一般拿來作數(shù)據(jù)的中轉(zhuǎn)。
常規(guī)的Kafka輸出配置文件如下所示:
output {
kafka {
bootstrap_servers => "localhost:9092" #生產(chǎn)者
topic_id => "nginx-access-log" #設(shè)置寫入kafka的topic
compression_type => "snappy" #消息壓縮模式,默認(rèn)是none,可選gzip、snappy。
}
}
logstash-out-kafka 的其他配置還包括:
compression_type:消息壓縮模式,默認(rèn)是none,有效值為:none、gzip、snappy。
asks:消息確認(rèn)模式,默認(rèn)為1,有效值為:0、1、all。設(shè)置為0,生產(chǎn)者不等待 broker 回應(yīng);設(shè)置為1,生產(chǎn)者會(huì)收到 leader 寫入之后的回應(yīng);設(shè)置為all, leader 將要等待 in-sync 中所有的 replication 同步確認(rèn)。
send_buffer_bytes: TCP發(fā)送數(shù)據(jù)時(shí)的緩沖區(qū)的大小。
logstash-kafka 插件輸入和輸出默認(rèn) codec 為 json 格式。在輸入和輸出的時(shí)候注意下編碼格式。消息傳遞過程中 logstash 默認(rèn)會(huì)為消息編碼內(nèi)加入相應(yīng)的時(shí)間戳和 hostname 等信息。如果不想要以上信息(一般做消息轉(zhuǎn)發(fā)的情況下),可以使用以下配置,例如:
output {
kafka {
codec => plain {
format => "%{message}"
}
}
}