日志收集filebeat+logstash

1、概述

web服务产生的日志文件,需要进行日志收集并进行可视化展示,一般使用filebeat和logstash组合。

2、组件介绍

2.1 Logstash

Logstash是具有实时收集日志功能,可以动态统一来自不同来源的数据,任何类型的事件都可以通过各种各样的输入,过滤器和输出插件来丰富和转换。是一个重量级的服务,很占用内存,会影响到部署到本机器上的服务。

2.2 Filebeat

Filebeat是用于转发和集中日志数据的轻量级服务。能监视您指定的日志文件或位置,收集日志事件,并将它们转发到Logstash或elasticsearch

3、单点部署

3.1、 部署流程

3.2、 Filebeat.yml文件

 

filebeat.prospectors:
# 输入设置
- input_type: log
  paths:
    # 指定日志文件位置,可以使用正则方式,也可以指定多个路径的日志
    - /mnt/log/log.*

# 输出设置
output.logstash:
  # logstsh的ip地址 
  hosts: ["127.0.0.1:5044"]
  loadbalance: true
  index: filebeat

3.3、 Logstash.conf文件

 

input {
  # 接收filebeat读取的数据
  beats {
    port => 5044
    codec => "json"
  }
}

output {
  # 输出到es
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "test"
    document_type => "log"
    manage_template => false
  }
}

3.4、Logstash.yml文件

 

http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
xpack.monitoring.enabled: false

3.5、 容器创建

Logstash

 

sudo docker run \
--restart always \
--name logstash \
-itd \
-p 5044:5044 \
-p 9600:9600 \
-v /path/logstash/pipeline/:/usr/share/logstash/pipeline/ \
-v /path/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
elastic/logstash

Filebeat

 

sudo docker run \
--restart always \
--name filebeat \
-itd \
-v /path/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /path/mylog:/data \
elastic/filebeat

4、多个日志源输出到不同存储位置

4.1、修改filebeat.yml

 

filebeat.prospectors:
# 日志源1
- input_type: log
  paths:
    - /data/video/log.*
  tags: ["log1"]  # 后面logstash用于区别哪个日志来源写入不同的位置
# 日志源2
- input_type: log
  paths:
    - /data/search/*.log
  tags: ["log2"]  # 后面logstash用于区别哪个日志来源写入不同的位置
 
# 输出位置
output.logstash:
  # The Logstash hosts
  hosts: ["127.0.0.1:5044"]
  loadbalance: true
  index: filebeat

4.2、修改logstash.conf

 

input {
  # 接收filebeat读取的数据
  beats {
    port => 5044
    codec => "json"
  }
}

# 不同的日志输出到不同的位置
output {
  if "log1" in [tags] {      
    elasticsearch{
      hosts => ["127.0.0.1:9200"]
      index => "test_logstash_log1"
      document_type => "log" 
    }
  }
  if "log2" in [tags] { 
    elasticsearch{
      hosts => ["127.0.0.1:9200"]
      index => "test_logstash_log2"
      document_type => "log"
    }
  }
}



 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值