利用logstash+filebeat采集logj4j日志

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33222871/article/details/80624060

    对于分布式系统,如果只是把日志存储在本地,或者直接输出到控制台,以后调试和差错将会非常麻烦,需要查看若干个服务器。

    因此,我采用logstash+filebeat的方法统一处理日志(完整应该使用elk+filebeat处理日志)


    材料:

  • 服务器1(bebian系列),ip为192.168.1.1,该服务器搭建logstash
  • 服务器2(bebian系列):ip为192.168.1.2,该服务器搭建应用程序及filebeat


    搭建filebeat

  • wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
  • tar -zxvf filebeat-6.2.4-linux-x86_64.tar.gz
  • vim filebeat.yml
  • 配置信息如下
  • filebeat.prospectors:
    - input_type: log
      paths:
        - /home/inkbox/log/test.log
    
    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: false
    
    setup.template.settings:
      index.number_of_shards: 3
    setup.kibana:
    
    output.logstash:
            hosts: ["192.168.1.1:4560"]
    注:/home/inkbox/log/test.log为log4j输出的文件位置;hosts为logstash所在服务器,4560为配置的端口


安装logstash

  • wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
  • tar -zxvf logstash-6.2.4.tar.gz
  • vim log4j.conf (这是一个新文件)
  • 配置信息如下
  • input { 
    	beats{ port => 4560}
    }
    output { stdout{
    	codec => rubydebug}}
    注:4560端口即为filebeat配置

log4j配置省略,注意文件位置和paths相同即可


启动logstash-> ./logstash -f log4j.conf

启动filebeat-> ./filebeat -e -c filebeat.yml &


启动java程序即可



关闭filebeat使用杀进程方式



注:在logstash中看到日志有一定的延迟。原打算采用log4j远程输出的方式,但是logstash的logstash-input-log4j在高版本下已过时,根本收不到消息;

再注:原有启动命令将会挂起线程,可以使用nohup命令启动服务



猜你喜欢

转载自blog.csdn.net/qq_33222871/article/details/80624060
今日推荐