当前位置:   article > 正文

ELK+Filebeat+Kafka日志采集_filebeat采集日志到kafka

filebeat采集日志到kafka

一起探讨学习

欢迎大家进群,一起讨论学习

每天给大家提供技术干货

在这里插入图片描述

博主技术笔记 https://notes.xiyankt.com


博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star https://gitee.com/bright-boy/xiyan-blog


1.ELK


2. ELFK


3. 架构演进

ELK缺点:ELK架构,并且Spring Boot应用使用 logstash-logback-encoder 直接发送给 Logstash,缺点就是Logstash是重量级日志收集server,占用cpu资源高且内存占用比较高
ELFK缺点:一定程度上解决了ELK中Logstash的不足,但是由于Beats 收集的每秒数据量越来越大,Logstash 可能无法承载这么大量日志的处理

4. 日志新贵ELK + Filebeat + Kafka

随着 Beats 收集的每秒数据量越来越大,Logstash 可能无法承载这么大量日志的处理。虽然说,可以增加 Logstash 节点数量,提高每秒数据的处理速度,但是仍需考虑可能 Elasticsearch 无法承载这么大量的日志的写入。此时,我们可以考虑 引入消息队列 ,进行缓存:
Beats 收集数据,写入数据到消息队列中。

5.搭建

5.1需要的组件

1、elasticsearch-7.9.3
2、elasticsearch-head-5.0.0
3、filebeat-7.9.3
4、kibana-7.9.3
5、logstash-7.9.3
6、kafka_2.13-2.5.0
7、zipkin-server-2.14.0-exec

5.2修改elasticsearch-7.9.3/config/elasticsearch.yml 文件

修改配置:#ubuntu需要加上node.name sentos7可以不需要,尽量还是加上吧
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
#这里可以换未cluster.initial_master_nodes: ["node-1"]
cluster.initial_master_nodes: ["192.168.28.129:9300"]
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7


    5.3编辑 filebeat-7.9.3/filebeat.yml 文件 (不同的服务配置不同的日志路径

    filebeat.inputs:
    - type: log
      enabled: true
      paths:
       # 配置我们要读取的 Spring Boot 应用的日志
        - /home/aisys/logs/member-service/*.log
      fields:
      #         #定义日志来源,添加了自定义字段
        log_topic: member-service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    - type: log
    enabled: true
    paths:
    - /home/aisys/logs/yoostar-gateway/*.log
    fields:
    log_topic: yoostar-gateway


    #----------------------------- kafka output --------------------------------
    output.kafka:
    enabled: true
    hosts: [“192.168.28.128:9092”]
    topic: ‘tv-%{[fields][log_topic]}
    partition.round_robin:
    reachable_only: false
    required_acks: 1
    compression: gzip
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8




    5.4编辑 kibana-7.9.3/config/kibana.yml 文件

    server.host: “0.0.0.0
    elasticsearch.hosts: [“http://10.20.22.30:9200”]
    • 1
    • 2

    英文很6的可以忽略这个

    i18n.locale: “zh-CN


    5.5编辑 logstash-7.9.3/config/logstash.conf 文件(该文件需要手动创建)

    input {
    kafka {
    bootstrap_servers =>“192.168.28.128:9092”
    topics_pattern =>“tv-.*”
    consumer_threads =>5
    decorate_events =>true
    codec =>“json”
    auto_offset_reset =>“earliest”
    #集群需要相同
    group_id =>“logstash1”
    }
    }
    filter{
    json{
    source =>“message”
    target =>“doc”
    }
    }
    output{
    elasticsearch{
    action =>“index”
    hosts =>[“192.168.28.128:9200”]
    #索引里面如果有大写字母就无法根据topic动态生成索引,topic也不能有大写字母
    index =>“%{[fields][log_topic]}-%{+YYYY-MM-dd}”
    }
    stdout{
    codec =>rubydebug
    }
    }

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

      5.6启动elasticsearch-head

      // 下载
      
      • 1

      wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz

      tar xf node-v10.9.0-linux-x64.tar.xz // 解压

      cd node-v10.9.0-linux-x64/ // 进入解压目录

      ./bin/node -v // 执行node命令 查看版本

      v10.9.0
      配置环境变量
      vim /etc/profile
      export PATH=$PATH:/usr/local/node-v10.9.0-linux-x64/bin


      刷新配置

      source /etc/profile


        执行npm install -g grunt-cli 编译源码
        执行npm install 安装服务
        如果查询install.js错误执行npm -g install phantomjs-prebuilt@2.1.16 –ignore-script
        执行grunt server启动服务。或者 nohup grunt server >output 2>&1 &
        启动服务之后访问http
        声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/706285
        推荐阅读
        相关标签