1.graylog配置輸出
在System-outputs,選擇GELF Output,填寫如下內容,其它選項默認
在要輸出的Stream中,選擇Manage Outputs
選擇GELF Output,右邊選擇剛才創建好的test。
2.安裝logstash,作為中間臨時的搬運工
下載logstash,最新版就可以。
https://www.elastic.co/cn/downloads/logstash/
上傳到服務器,編寫test.conf配置文件,內容如下
input{gelf {port => 12201codec => jsonhost => "0.0.0.0"}
}output{kafka{bootstrap_servers => ["kafkaserver1:9092,kafkaserver2:9092,kafkaserver3:9092"]topic_id => "test-kafka"codec => "json"}}
運行logstash,輸入以下命令
bin/logstash -f test.conf
3.kafka
前提:安裝好kafka集群,
創建topic
bin/kafka-topics.sh --bootstrap-server kafkaserver1:9092,kafkaserver2:9092,kafkaserver3:9092 --create --topic test-kafka
監聽topic
bin/kafka-console-consumer.sh --bootstrap-server kafkaserver1:9092,kafkaserver2:9092,kafkaserver3:9092 --topic test-kafka
最終消息傳遞到kafka上
filebeat配置
也可以使用filebeat將日志轉發到kafka中,原理一樣
- type: syslogenabled: trueprotocol.udp:host: "0.0.0.0:12201" 端口與graylog-outputs一致fields:logResource: "testkafka" #這些都是附加的標簽fields_under_root: true #將標簽放到頂頭,不然在message字段里output.kafka:enabled: truehosts: ["kafkaserver1:9092","kafkaserver2:9092","kafkaserver3:9092"]topic: "%{[logResource]}"required_acks: 1
3.graylog插件
插件下載:
https://codeload.github.com/asnowfox/graylog-kafka-output/zip/refs/heads/master
使用:mvn package編譯成jar包,放入到plugin目錄下,重啟graylog