)
从源码到部署gala-filetrace完整编译安装教程支持多版本内核【免费下载链接】gala-filetraceReal-time monitoring component of configuration files based on eBPF项目地址: https://gitcode.com/openeuler/gala-filetrace前往项目官网免费下载https://ar.openeuler.org/ar/想要在openEuler系统中实时监控配置文件变更吗gala-filetrace正是您需要的终极解决方案这款基于eBPF技术的实时监控组件能够精确追踪配置文件的每一次修改为您的系统安全保驾护航。在本篇完整指南中我将为您详细介绍如何从源码编译到部署运行gala-filetrace即使面对不同内核版本也能轻松应对。 准备工作与环境检查系统要求与内核版本适配gala-filetrace支持多种openEuler版本和架构在开始安装前请确认您的系统环境系统版本架构适配状态特殊说明openEuler 2203_SP3aarch64/x86✅ 完全支持无需内核补丁openEuler 2403_SP1aarch64/x86✅ 完全支持需要内核helper_funcopenEuler 2503aarch64/x86✅ 完全支持需要内核helper_func检查当前内核版本uname -r如果您的内核版本为6.6.0或更高可能需要应用内核补丁。别担心我们会在后续章节详细说明内核升级步骤。 依赖安装全攻略基础依赖安装仓库存在时对于openEuler 2203_SP3系统直接使用yum安装所有依赖sudo yum install bpftrace libcurl-devel libbpf-devel cpp-httplib-devel \ zlib-devel nlohmann-json-devel bpftool clang llvm -y重要提示在openEuler 2203 LTS中cpp-httplib-devel需要替换为cpp-httplib同时确保libbpf版本在0.8以上。Prometheus-cpp源码安装仓库不存在时如果系统中没有prometheus-cpp库需要从源码编译安装git clone https://github.com/jupp0r/prometheus-cpp.git cd prometheus-cpp git submodule init git submodule update mkdir build cd build cmake .. -DBUILD_SHARED_LIBSON -DENABLE_PULLON -DENABLE_PUSHOFF make -j$(nproc) sudo make install安装完成后库文件默认位于/usr/local/include/目录。上图展示了gala-filetrace如何通过eBPF探针获取文件名这是监控配置文件变更的核心机制 三种编译方式详解方法一直接编译推荐这是最简单的编译方式适合快速部署# 安装所有依赖 make deps # 标准编译 make # 调试模式编译启用bpf_printk make DEBUG1编译过程会自动处理所有依赖关系生成可执行文件filetrace。方法二RPM包构建如果需要将gala-filetrace打包成RPM进行分发可以使用以下方法# 下载源码包 wget -O ~/rpmbuild/SOURCES/master.zip https://raw.atomgit.com/openeuler/gala-filetrace/archive/refs/heads/master.zip # 或者克隆仓库 git clone https://gitcode.com/openeuler/gala-filetrace.git # 构建RPM包 rpmbuild -ba config/gala-filetrace.spec构建成功后RPM包会生成在/root/rpmbuild/RPMS/arch/目录下。方法三手动编译高级用户如果您想深入了解编译过程可以查看Makefile文件了解每个编译步骤BPF程序编译filetrace.bpf.c→filetrace.bpf.o骨架头文件生成bpftool gen skeletonC源代码编译filetrace.cpp、exporter.cpp、post.cpp、logger.cpp最终链接生成filetrace可执行文件 安装与配置指南编译安装方式# 默认安装到系统目录 sudo make install # 自定义安装路径 sudo make install DESTDIR/your/custom/path默认安装位置包括/usr/bin/filetrace- 主程序/etc/gala-filetrace/gala-filetrace.json- 配置文件/usr/lib/systemd/system/gala-filetrace.service- systemd服务文件RPM安装方式如果您选择了RPM包构建安装更加简单cd ~/rpmbuild/RPMS/arch sudo rpm -ivh gala-filetrace-version-release.arch.rpm配置文件详解gala-filetrace的配置文件位于config/gala-filetrace.json主要配置项包括配置项默认值说明log_levelinfo日志级别debug/info/warn/errorconfig_list[/etc/hosts]要监控的配置文件列表publishfalse是否推送到ragdollexporter_address0.0.0.0:9090Prometheus监控地址ragdoll_apihttp://localhost:8080/conftrace/dataRagdoll API地址您可以根据需要修改config_list添加您关心的配置文件路径。 内核升级与补丁应用为什么需要内核升级在内核6.6.0及以上版本中无法直接从task_struct中获取进程的fd列表。gala-filetrace需要通过在内核中增加fd2pathhelper函数接口来实现文件路径获取。内核源码获取与准备# 下载内核源码包 sudo yum download kernel-source-6.6.0-72.6.0.56.oe2503.x86_64 # 安装内核源码 sudo rpm -ivh kernel-source-6.6.0-72.6.0.56.oe2503.x86_64* # 复制当前内核配置 cp /boot/config-$(uname -r) .config应用内核补丁gala-filetrace项目提供了必要的内核补丁位于patch/目录# 应用补丁文件 patch -p1 /path/to/bpf-add-new-helper-fd2path.patch编译与安装新内核# 编译内核 make Oout # 安装内核模块 make Oout modules_install # 安装内核映像 make Oout install编译完成后重启系统选择新内核即可。 启动与验证手动启动方式# 直接运行程序 filetracesystemd服务启动# 启动服务 sudo systemctl start gala-filetrace # 设置开机自启 sudo systemctl enable gala-filetrace # 查看服务状态 sudo systemctl status gala-filetrace验证监控功能查看日志输出sudo tail -f /var/log/filetrace.log访问Prometheus指标 打开浏览器访问http://服务器IP:9090/Metrics查看监控指标测试配置文件监控# 修改被监控的配置文件 sudo echo test /etc/hosts观察日志中是否记录到文件变更事件 常见问题与解决方案权限错误处理如果遇到以下错误permission error while running as root; try raising ulimit -l? current value: 64.0 KiB.解决方法# 增加内存锁定限制 ulimit -l 819200依赖库版本问题如果编译时提示libbpf版本过低# 检查当前libbpf版本 rpm -q libbpf-devel # 升级libbpf sudo yum update libbpf-develBPF程序加载失败如果BPF程序无法加载检查内核配置# 确认BPF支持已启用 cat /boot/config-$(uname -r) | grep BPF确保以下选项为yCONFIG_BPFyCONFIG_BPF_SYSCALLyCONFIG_BPF_JITy 监控功能扩展自定义监控文件列表编辑配置文件添加您关心的配置文件config_list: [ /etc/hosts, /etc/passwd, /etc/ssh/sshd_config, /etc/sysctl.conf, /etc/resolv.conf ]集成Prometheus监控gala-filetrace内置了Prometheus exporter您可以直接配置Prometheus抓取# prometheus.yml 配置示例 scrape_configs: - job_name: filetrace static_configs: - targets: [localhost:9090]对接gala-ragdoll如果您有gala-ragdoll环境可以启用数据推送{ publish: true, ragdoll_api: http://ragdoll-server:8080/conftrace/data } 总结与最佳实践通过本教程您已经掌握了gala-filetrace的完整编译安装流程。总结几个关键要点环境检查先行确认系统版本和内核版本决定是否需要内核升级依赖安装要完整特别是prometheus-cpp库的安装编译方式灵活选择根据需求选择直接编译或RPM打包内核补丁按需应用只有内核6.6.0才需要应用fd2path补丁配置要合理根据实际监控需求调整配置文件服务管理用systemd便于监控和故障排查gala-filetrace作为openEuler生态中的重要监控组件为系统配置文件提供了强大的实时监控能力。无论是安全审计、配置变更追踪还是运维监控它都能提供可靠的技术支持。现在就开始使用gala-filetrace为您的系统配置文件加上一双火眼金睛吧【免费下载链接】gala-filetraceReal-time monitoring component of configuration files based on eBPF项目地址: https://gitcode.com/openeuler/gala-filetrace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考