使用旧注册表使 Filebeat 从旧文件偏移量开始

我正在使用 prima/filebeat 图像在 docker 容器上运行 Filebeat(过去称为“logstash-forwarder”)。


日志文件位于加载到容器的卷中,我希望能够删除容器并重新运行它,而无需将日志重新发送到 logstash。


我试图将 /.filebeat 注册表文件加载为一个卷,以便它会在启动时重新加载,但我得到的只是这些错误:


2016/02/03 13:47:29.107457 file_other.go:39: ERR Rotate error: rename /.filebeat.new /.filebeat: device or resource busy

2016/02/03 13:47:29.107788 registrar.go:105: ERR Writing of registry returned error: rename /.filebeat.new /.filebeat: device or resource busy. Continuing..

有没有人碰巧知道如何做这样的事情?


肥皂起泡泡
浏览 211回答 1
1回答

慕娘9325324

使用Filebeat 1.2.3版(其他版本可能一样,1.3版几天前才出来的,我还没试过)你需要指定注册表文件的路径。注册表文件是 Filebeat 保存读取偏移量的文件(换句话说,它正在处理的日志文件中的当前读取点)。您需要在filebeat.yml文件中的prospectors部分之后指定注册表路径。就像是:filebeat:  prospectors:    -      document_type: wildfly-server      input_type: log      paths:        - /path/to/my/log.log      multiline:         pattern: 'your pattern'         negate: true         match: after  registry_file: /data/.filebeatlogging:  level: debug  to_syslog: trueoutput:  logstash:    hosts:      - "127.0.0.1:5000"然后在您的 docker compose 文件中,您需要安装一个指向您的registry_file路径的卷。就像是:filebeat:  image: prima/filebeat:latest  volumes:     - /data/filebeat:/data  hostname: qa然后您应该在主机中看到.filebeat位于/data/filebeat文件夹中的文件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go