配置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中。

相关参数详解:

  1. scan_frequency: 10s:设置文件扫描的频率为每 10 秒。这意味着 Filebeat 将每隔 10 秒检查一次指定目录下的文件,以查找新的日志数据。

  2. ignore_older: 24h:设置忽略 24 小时前的日志文件。这意味着 Filebeat 将忽略任何修改时间早于 24 小时前的文件,不会对这些文件进行读取和发送日志数据的操作。

  3. close_inactive: 1h:设置文件在多久不活动后关闭。如果一个文件在 1 小时内没有被修改过,Filebeat 将关闭这个文件的句柄,以释放资源。

  4. clean_inactive: 48h:设置多久不活动文件被清理。如果一个文件在 48 小时内没有被修改过,Filebeat 将关闭这个文件的句柄,并从状态列表中清除。

  5. close_removed: true:设置是否关闭已删除的文件。如果设置为 true,当文件被删除时,Filebeat 将关闭它们的句柄,并不再监视这些文件。

posted @ 2023-11-15 15:50  太阳的阳ฅ  阅读(7)  评论(0)    收藏  举报