利用logstash/filebeat/插件,将graylog日志传输到kafka中

1.graylog配置输出

在System-outputs,选择GELF Output,填写如下内容,其它选项默认

在要输出的Stream中,选择Manage Outputs

选择GELF Output,右边选择刚才创建好的test。

2.安装logstash,作为中间临时的搬运工

下载logstash,最新版就可以。

bash 复制代码
https://www.elastic.co/cn/downloads/logstash/

上传到服务器,编写test.conf配置文件,内容如下

bash 复制代码
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,输入以下命令

bash 复制代码
bin/logstash -f test.conf

3.kafka

前提:安装好kafka集群,

创建topic

bash 复制代码
bin/kafka-topics.sh --bootstrap-server kafkaserver1:9092,kafkaserver2:9092,kafkaserver3:9092 --create --topic test-kafka

监听topic

bash 复制代码
bin/kafka-console-consumer.sh --bootstrap-server kafkaserver1:9092,kafkaserver2:9092,kafkaserver3:9092 --topic test-kafka

最终消息传递到kafka上

filebeat配置

也可以使用filebeat将日志转发到kafka中,原理一样

bash 复制代码
- 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插件

插件下载:

bash 复制代码
https://codeload.github.com/asnowfox/graylog-kafka-output/zip/refs/heads/master
使用:mvn package编译成jar包,放入到plugin目录下,重启graylog
相关推荐
卷毛的技术笔记20 分钟前
从零到一:深入浅出分布式锁原理与Spring Boot实战(Redis + ZooKeeper)
java·spring boot·redis·分布式·后端·面试·java-zookeeper
frankfishinwater1 小时前
Kafka 代码架构分析
分布式·架构·kafka
啾啾Fun1 小时前
工作流(4)——分布式与工作流
分布式
lifewange1 小时前
Hadoop 完整入门详解
大数据·hadoop·分布式
旷世奇才李先生1 小时前
Redis 7\.x实战:缓存设计与分布式锁实现
redis·分布式·缓存
Juicedata4 小时前
分布式架构下配额设计:JuiceFS 的实现与典型案例
分布式·架构
曾阿伦16 小时前
Spark flatMapToPair算子卡顿优化
大数据·分布式·spark
卷毛的技术笔记16 小时前
从“拆东墙补西墙”到“最终一致”:分布式事务在Spring Boot/Cloud中的破局之道
java·spring boot·分布式·后端·spring cloud·面试·rocketmq
大G的笔记本18 小时前
redis分布式锁过期问题和自动续期和主从延迟问题
redis·分布式