Docker ELK Filebeat 不同日志采集配置

Docker 安装 (完整详细版)

Docker 日常命令大全(完整详细版)

Docker 安装 ELK (ElasticSearch、ElasticSearch-head、Logstash、Kibana、Filebeat) 容器 (完整详细图文版)

 说明

ELK做日志分析的时候,有时需要一个filebeat采集多个日志,送给ES,或者给logstash做解析。下面举例演示以下filebeat采集messages日志,secure日志,以及nginx日志送给ES或者送给logstash做解析的正确配置方法。

1、filebeat.yml 配置

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/logdir/serviceA/warn.log
  document_type: serviceA
  fields_under_root: true
  fields:
    appid: serviceA
    log_type: warn
- type: log
  enabled: true
  paths:
    - /var/logdir/serviceA/error.log
  document_type: serviceA
  fields_under_root: true
  fields:
    appid: serviceA
    log_type: error
- type: log
  enabled: true
  paths:
    - /var/logdir/serviceB/warn.log
  document_type: serviceB
  fields_under_root: true
  fields:
    appid: serviceB
    log_type: warn
- type: log
  enabled: true
  paths:
    - /var/logdir/serviceB/error.log
  document_type: serviceB
  fields_under_root: true
  fields:
    appid: serviceB
    log_type: error
output.logstash:
  hosts: ["172.17.0.3:5044"] 

2、logstash.conf 配置

input {
  beats {
    port => 5044
  }
}

output {
  if [log_type] == "warn" {
    elasticsearch {
      hosts => ["http://172.17.0.2:9200"]
      index => "warn-%{+YYYY.MM.dd}"
    }
    stdout{
      codec=>rubydebug
    }
  }
  else if [log_type] == "error" {
    elasticsearch {
      hosts => ["http://172.17.0.2:9200"]
      index => "error_-%{+YYYY.MM.dd}"
    }
    stdout{
      codec=>rubydebug
    }
  }
}

3、运行filebeat容器

日志文件

# -v 进行目录挂载
# /home/logdir 是日志文件的路径
docker run -d --name filebeat-up \
-v /home/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /home/logdir:/var/logdir \
-d elastic/filebeat:7.17.4

 4、测试结果

 

猜你喜欢

转载自blog.csdn.net/BThinker/article/details/125602779