在 Ubuntu 22.04 上运行 Filebeat 7.10.2
环境
操作系统:阿里云 Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)
软件版本:Filebeat 7.10.2
用户:root
运行
下载
从这里下载 filebeat 7.10.2。
配置
简单配置一下 filebeat.yml,从标准输入采集,写入到标准输出 :
运行
因为使用 root 用户,根据官方建议添加 --strict.perms=false
参数。
直接运行 ./filebeat -e --strict.perms=false:

出现异常:
分析
网上搜索一下问题,发现有位网友也遇到了同样问题,并且解决了,解决方案是添加如下配置:
通过官网文档了解 seccomp:在 Linux 3.17 及更高版本上,Filebeat 使用安全计算模式,也称为 Seccomp。Seccomp 限制进程可以发出的系统调用,默认开启。
结合网友的解决方案,得出初步结论:Filebeat 7.10.2 运行在 Ubuntu 22.04 上时缺少 rseq
系统调用,导致异常。
通过查找 syscall
错误:
在官网找到相关问题,因为 glibc >= 2.35
,但 beats 里允许的默认系统调用中没有 rseq 导致的异常。问题已在 7.17.2 版本修复。
验证 glibc 版本,确实为 2.35。

最终得出结论:因为 glibc >= 2.35,但 beats 里允许的默认系统调用中没有 rseq 导致的异常。
总结
通过上面的问题分析,得出有如下 2 种解决办法:
关闭 seccomp(不推荐)
添加 seccomp 配置,允许 rseq 系统调用
验证
关闭 seccomp

但关闭 seccomp,就不能基于最小特权原则限制 filebeat 的系统调用,进而最大限度的减少未知漏洞的影响。
添加 seccomp 配置,允许 rseq 系统调用

版权声明: 本文为 InfoQ 作者【极限实验室】的原创文章。
原文链接:【http://xie.infoq.cn/article/2bb8481810058e9972437c3e9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论