我有一个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 回答
您的配置的主要问题是,对于Filebeat 1.2.3,您将
prospectors
列表定义两次,第二个列表不在正确的位置 .第二个问题是您已将
config_dir
定义为/etc/filebeat
.config_dir
用于指定查找配置文件的其他目录 . 它永远不应该设置为/etc/filebeat
,因为这是主配置文件应该位于的位置 . 有关使用信息,请参阅https://stackoverflow.com/a/39987501/503798 .第三个问题是您在
to_files
和rotateeverybytes
中使用了字符串类型 . 它们应分别是布尔和整数类型 .以下是配置应该如何查找Filebeat 1.x.
我强烈建议您升级到Filebeat 5.x,因为它使用
filebeat -configtest
进行了更好的配置验证 .