配置Filebeat 来收集当前月份的日志
假设你要收集/var/log/myapp.log日志文件中当前月份的日志
在你的Filebeat配置文件中(例如filebeat.yml),添加如下配置:
filebeat.inputs: - type: log enabled: true paths: - /var/log/myapp.log scan_frequency: 10s # 设置扫描频率 ignore_older: 24h # 忽略24小时前的日志文件 close_inactive: 1h # 设置多久不活动文件关闭 clean_inactive: 48h # 设置多久不活动文件清理 close_removed: true # 关闭已删除的文件 processors: - add_locale: format: "yyyy.MM" - drop_event: when: not: equals: "@timestamp": "%{[beat][hostname]}" output.elasticsearch: hosts: ["your_elasticsearch_host:9200"] index: "myapp-%{[agent][version]}-%{[beat][hostname]}-%{[fileset][module]}-%{[file][path]}-%{[@metadata][beat]}-%{[agent][ephemeral_id]}-%{+yyyy.MM}" # 设置索引名称按日期格式化
在上面的配置中,我们将/var/log/myapp.log添加为一个日志输入,并且设置了一些参数来控制日志文件的轮转和索引名称的格式化。我们还添加了一个处理器(processor),用于根据日志的时间戳来设置日志的格式。最后,我们使用%{+yyyy.MM}来将索引名称格式化为当前年份和月份。
配置完成后,启动或重启Filebeat服务,它将按照配置定期扫描myapp.log文件,并根据当前月份创建相应的索引。
请注意,上述配置仅供参考,你需要根据实际需求和环境对Filebeat进行适当的配置。另外,确保你已经正确配置了Elasticsearch输出,以确保日志数据被正确发送到Elasticsearch中。
相关参数详解:
-
scan_frequency: 10s:设置文件扫描的频率为每 10 秒。这意味着 Filebeat 将每隔 10 秒检查一次指定目录下的文件,以查找新的日志数据。 -
ignore_older: 24h:设置忽略 24 小时前的日志文件。这意味着 Filebeat 将忽略任何修改时间早于 24 小时前的文件,不会对这些文件进行读取和发送日志数据的操作。 -
close_inactive: 1h:设置文件在多久不活动后关闭。如果一个文件在 1 小时内没有被修改过,Filebeat 将关闭这个文件的句柄,以释放资源。 -
clean_inactive: 48h:设置多久不活动文件被清理。如果一个文件在 48 小时内没有被修改过,Filebeat 将关闭这个文件的句柄,并从状态列表中清除。 -
close_removed: true:设置是否关闭已删除的文件。如果设置为true,当文件被删除时,Filebeat 将关闭它们的句柄,并不再监视这些文件。

浙公网安备 33010602011771号