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 => 12201
codec => json
host => "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: syslog
enabled: true
protocol.udp:
host: "0.0.0.0:12201" 端口与graylog-outputs一致
fields:
logResource: "testkafka" #这些都是附加的标签
fields_under_root: true #将标签放到顶头,不然在message字段里
output.kafka:
enabled: true
hosts: ["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