ELK + Filebeat + Kafka 分布式日志管理平台搭建
log_source: authorization
type: log
enabled: true
paths:
/var/logs/springboot/sparksys-gateway.log
fields:
log_source: gateway
type: log
enabled: true
paths:
/var/logs/springboot/sparksys-file.log
fields:
log_source: file
type: log
enabled: true
paths:
/var/logs/springboot/sparksys-oauth.log
fields:
log_source: oauth
#================================ Outputs =====================================
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
Array of hosts to connect to.
hosts: ["192.168.3.3:9200"]
#----------------------------- Logstash output --------------------------------
#output.logstash:
The Logstash hosts
hosts: ["logstash:5044"]
#----------------------------- kafka output --------------------------------
output.kafka:
enabled: true
hosts: ["192.168.3.3:9092"]
topic: sparksys-log
添加 kafka 输出的配置,将 logstash 输出配置注释掉。hosts 表示 kafka 的 ip 和端口号,topic 表示 filebeat 将数据输出到 topic 为 sparksys-log 的主题下,此处也根据自己情况修改
[](()2.1.2 Logstash 变动
====================================================================================
logstash.conf 配置 input 由原来的输入源 beat 改为 kafka
input {
kafka {
codec => "json"
topics => ["sparksys-log"]
bootstrap_servers => "192.168.3.3:9092"
auto_offset_reset => "latest"
group_id => "logstash-g1"
}
}
output {
elasticsearch {
hosts => "es: 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 9200"
index => "filebeat_%{[fields][log_source]}-%{+YYYY.MM.dd}"
}
}
上述配置说明如下:
topics 后面的 sparksys-log 表示从 kafka 中 topic 为 sparksys-log 的主题中获取数据,此处的配置根据自己的具体情况去配置。
bootstrap_servers 表示配置 kafka 的 ip 与端口。
到此,ELFK 的变动部分结束,接下来就是 kafka 的搭建
[](()2.2 kafka 搭建
===============================================================================
[](()2.2.1 新建 docker-compose.yaml
===============================================================================================
配置如下:
version: '3'
services:
zookeeper:
image: zookeeper:latest
container_name: zookeeper
volumes:
/Users/zhouxinlei/docker/kafka/zookeeper/data:/data
/Users/zhouxinlei/docker/kafka/zookeeper/datalog:/datalog
ports:
2181:2181
restart: always
kafka:
image: wurstmeister/kafka
container_name: kafka
volumes:
/Users/zhouxinlei/docker/kafka/data:/kafka
ports:
9092:9092
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.3.3
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_PORT: 9092
KAFKA_LOG_RETENTION_HOURS: 120
KAFKA_MESSAGE_MAX_BYTES: 10000000
KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
KAFKA_NUM_PARTITIONS: 3
KAFKA_DELETE_RETENTION_MS: 1000
restart: always
kafka-manager:
image: kafkamanager/kafka-manager
container_name: kafka-manager
environment:
ZK_HOSTS: 192.168.3.3
ports:
9001:9000
restart: always
[](()2.2.3 创建并启 Java 开源项目【ali1024.coding.net/public/P7/Java/git】 动 kafka 容器
最后
整理的这些资料希望对 Java 开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
其实面试这一块早在第一个说的 25 大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
评论