容器环境下Filebeat配置logging.files.permissions为0644不生效
Filebeat日志权限配置不生效排查原因
- 配置缩进错误:你提供的
logging.files配置行前存在多余的前导空格,YAML对缩进规则要求严格,错误的缩进会导致配置层级识别异常,permissions参数未被Filebeat正确加载。你可以在容器内执行filebeat test config命令校验配置合法性,确认参数是否被正确识别。 - 进程umask限制:容器内Filebeat运行用户的默认umask如果为0027,创建文件时会先按umask屏蔽其他用户的读权限,部分版本的Filebeat不会在文件创建后主动执行二次chmod修正权限,最终生成的文件权限为640。你可以在容器内执行
runuser -u <Filebeat运行用户ID> -- umask确认当前umask值。 - 挂载目录权限限制:如果
/logs目录是从宿主机挂载到容器内的,挂载时设置的权限掩码、ACL规则或者宿主机文件系统的权限限制会覆盖容器内的权限设置,即使Filebeat尝试设置0644也会被挂载参数拦截。 - 版本已知BUG:7.8版本的Filebeat存在
logging.files.permissions参数不生效的已知问题,该参数在容器非root用户运行的场景下不会被正确应用,可升级到7.17及以上的稳定版本修复该问题。 - 旧文件未更新权限:如果当前的
filebeat.log是配置修改前就已经存在的旧文件,Filebeat不会主动修改已有文件的权限,只会对新生成的日志文件(包括滚动生成的新日志)应用配置的权限。你可以删除现有filebeat.log后重启Filebeat验证新生成文件的权限。
内容的提问来源于stack exchange,提问作者Aman
相关产品推荐
相关产品推荐

