filebeat+kafka+logstash收集java日志

  之前写过收集java日志的文档,但没有使用kafka,这次加了个kafka。

kafka安装

Dokcer 搭建 kafka_我的喵叫初六的博客-CSDN博客pull镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka安装zookeeper我这里做了资源限制docker run -d \--name zookeeper \-p 2181:2181 \--memory=1024m --cpus=1 \-t wurstmeister/zookeeper安装kafkadocker run -d \--name kafka \-p 9092https://blog.csdn.net/weixin_38367535/article/details/121103419创建topic :qcban-gw-log

filebeat+logstash+es+kibana安装

ELK + Filebeat 7.13_我的喵叫初六的博客-CSDN博客之前编写过低版本的ELK日志收集,最近换公司,部署了一套单节点7.13版本ELK,7.13版本较之前6.x版本还是有很大区别的。一、环境ELK部署在同一台Centos7.9服务器上Filebeat用于收集nginx日志java日志使用的是阿里云NAS共享存储,所以直接将日志目录挂载到了ELK服务器上JDK 1.8二、下载安装1、下载# elasticsearchwget https://artifacts.elastic.co/downloads/elasti..https://blog.csdn.net/weixin_38367535/article/details/119183688

filebeat 配置文件:

# cat java-logstash.yaml

filebeat.inputs:
- type: log
  enabled: true
  paths:
      - /usr/local/tomcat_18080/logs/catalina.out
  tail_files: true
  input_type: log
  fields.service: qcban-gw-1
  tags: ["qcban-gw-1"]

output.kafka:
  enabled: true
  hosts: ["172.16.105.20:9092"]
  topic: qcban-gw-log
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

filebeat启动:

我这里已经有了一个收集nginx日志的filebeat进程,所以这里是多实例启动

./filebeat -e -c conf/java-logstash.yaml -path.data /usr/local/filebeat-7.13.2-linux-x86_64/java_log/ -d publish

和logstash多实例启动一样,创建一个目录,然后--path.data指定即可

logstash配置文件

# cat qcban_java_log.conf

input {
    kafka {
        bootstrap_servers => ["172.16.105.20:9092"]
        client_id => "qcban_gw1"
        group_id => "qcban_gw_log"
        auto_offset_reset => "latest"
        consumer_threads => 5
        decorate_events => true
        topics => ["qcban-gw-log"]
        type => "qcban-gw-log"
        codec => json
    }
}


filter {
    if [type] == "qcban-gw-log" {
        mutate {
            remove_field => ["@metadata","log","fields","input","ecs","host","agent","[message][@metadata]","[message][input]","[message][fields]","[message][ecs]","[message][host]","[message][agent]","[message][log]"] # 删除字>段
        }
    }
}

output {
    stdout {
        codec => rubydebug
    }
    if [type] == 'qcban-gw-log' {
        elasticsearch {
            hosts => ["127.0.0.1:9200"]
            index => "qcban-gw-log-%{+YYYY.MM.dd}"
            template_overwrite => true
        }
    }
}

codec => json 这里很重要,不加的话日志输出的格式很不友好

另外 remove_field 这里我是在没加 code => json 的时候匹配的删除字段,现在似乎可以去掉了或者改改。

启动 logstash

nohup bin/logstash -f config/qcban_java_log.conf --path.data=/data/qcban_log_work/ > /data/nohup_logs/qcban_logstash.log &

去kibana添加索引后查看

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值