首页 文章

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

提问于
浏览
0

我有一个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 回答

  • 2

    您的配置的主要问题是,对于Filebeat 1.2.3,您将 prospectors 列表定义两次,第二个列表不在正确的位置 .

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

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

    以下是配置应该如何查找Filebeat 1.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
    

    我强烈建议您升级到Filebeat 5.x,因为它使用 filebeat -configtest 进行了更好的配置验证 .

相关问题