Filebeat正在处理所有日志而不是指定的应用程序日志

时间:2017-01-13 09:41:10

标签: elasticsearch chef logstash elastic-stack filebeat

我有一个app服务器,我已经配置了filebeat(通过Chef)来提取日志并将其发布到logstash(一个单独的ELK服务器),然后发布到ES和Kibana。

我已经将filebeat配置为仅从/opt/app_logs/*.log处理日志,但它似乎也在从其他位置读取日志,因为在/ etc / filebeat配置目录中,我有filebeat.full.yml和其他yml文件自动生成,并且它们似乎具有所有其他文件位置,因此由于如此大量的日志,logstash服务在几分钟内使用logstash.log就会内存不足。我怎么能不自动生成其他yml文件? 我试图删除这个文件,并试图注释掉探矿者的所有/ var / log路径,但是filebeat本身没有启动。

filebeat.yml文件:

filebeat:
  prospectors: []
  registry_file: "/var/lib/filebeat/registry"
  config_dir: "/etc/filebeat"
output:
  logstash:
    hosts:
    - elk_host:5044
    index: logstash-filebeat
shipper:
  name: serverA
  tags:
  - A
logging:
  to_files: 'true'
  files:
    path: "/var/log/filebeat"
    name: filebeat_log
    rotateeverybytes: '10485760'
  level: info
prospectors:
- paths:
  - "/opt/app_logs/*.log"
  encoding: plain
  input_type: log
  ignore_older: 24h

1 个答案:

答案 0 :(得分:2)

您的配置的主要问题是,对于Filebeat 1.2.3,您将mydict['description_long'] = (another_dict['key1'] [0] ['a_really_long_key'] [etc.]) 列表定义两次,而第二个列表不在正确的位置。

第二个问题是您已将prospectors定义为config_dir/etc/filebeat用于指定查找配置文件的其他目录。它永远不应该设置为config_dir,因为这是主配置文件应该位于的位置。有关使用信息,请参阅https://stackoverflow.com/a/39987501/503798

第三个问题是您在/etc/filebeatto_files中使用了字符串类型。它们应分别是布尔和整数类型。

以下是配置应该如何查找Filebeat 1.x。

rotateeverybytes

我强烈建议您升级到Filebeat 5.x,因为它使用filebeat: registry_file: "/var/lib/filebeat/registry" config_dir: "/etc/filebeat/conf.d" prospectors: - paths: - "/opt/app_logs/*.log" encoding: plain input_type: log ignore_older: 24h output: logstash: hosts: - elk_host:5044 index: logstash-filebeat shipper: name: serverA tags: - A logging: to_files: true files: path: "/var/log/filebeat" name: filebeat_log rotateeverybytes: 10485760 level: info 进行了更好的配置验证。