ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topic
filebeat.prospectors: - input_type: log encoding: GB2312 # fields_under_root: true fields: ##添加字段 serverip: 192.168.1.10 logtopic: wap enabled: True paths: - /app/wap/logs/catalina.out multiline.pattern: '^\[' #java报错过滤 multiline.negate: true multiline.match: after tail_files: false - input_type: log encoding: GB2312 # fields_under_root: true fields: ##添加字段 serverip: 192.168.1.10 logtopic: api enabled: True paths: - /app/api/logs/catalina.out multiline.pattern: '^\[' #java报错过滤 multiline.negate: true multiline.match: after tail_files: false #----------------------------- Logstash output -------------------------------- output.kafka: enabled: true hosts: ["192.168.16.222:9092","192.168.16.237:9092","192.168.16.238:9092"] topic: 'elk-%{[fields.logtopic]}' ##匹配fileds字段下的logtopic partition.hash: reachable_only: true compression: gzip max_message_bytes: 1000000 required_acks: 1 logging.to_files: true
0x01 查看是否输出到kafka
$ bin/kafka-topics.sh --list --zookeeper kafka-01:2181, kafka-02:2181,kafka-03:2181 elk-wap elk-api
0x02 配置logstash集群
input{ kafka{ bootstrap_servers => "kafka-01:9092,kafka-02:9092,kafka-03:9092" topics_pattern => "elk-.*" consumer_threads => 5 decorate_events => true codec => "json" auto_offset_reset => "latest" group_id => "logstash1"##logstash 集群需相同 } } filter { ruby { code => "event.timestamp.time.localtime" } mutate { remove_field => ["beat"] } grok { match => {"message" => "\[(?<time>\d+-\d+-\d+\s\d+:\d+:\d+)\] \[(?<level>\w+)\] (?<thread>[\w|-]+) (?<class>[\w|\.]+) (?<lineNum>\d+):(?<msg>.+)" } } } output { elasticsearch { hosts => ["192.168.16.221:9200","192.168.16.251:9200","192.168.16.252:9200"] # index => "%{[fields][logtopic}" ##直接在日志中匹配,索引会去掉elk index => "%{[@metadata][topic]}-%{+YYYY-MM-dd}" } stdout { codec => rubydebug }
0x03 Es查看是否创建索引
0x04 logstash集群配置
# 一机多实例,同一个配置文件,启动时只需更改数据路径 ./bin/logstash -f test.conf --path.data=/usr/local/logdata/ # 多台机器 logstash配置文件group_id 相同即可
分类:
ELK学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?