如何安装和配置Agith:从源码编译到Docker部署的完整指南

发布时间:2026/7/17 15:34:08
如何安装和配置Agith:从源码编译到Docker部署的完整指南 如何安装和配置Agith从源码编译到Docker部署的完整指南【免费下载链接】Agithlinux command influence analysis项目地址: https://gitcode.com/openeuler/Agith前往项目官网免费下载https://ar.openeuler.org/ar/Agith是一款基于eBPF技术的Linux命令影响分析工具能够监控变更操作并输出变更影响面帮助运维人员快速定位系统变更带来的风险。本文将为您提供从源码编译到Docker部署的完整安装配置指南让您快速掌握这款强大的变更监控工具。 Agith是什么Agith是一款专业的变更监控工具专门用于监控Linux系统中的变更操作。它通过eBPF技术实时追踪系统调用构建变更影响面拓扑图帮助运维人员直观了解变更对系统产生的影响。无论是手动操作还是自动化脚本Agith都能准确记录并分析变更过程为故障根因定位提供重要依据。 系统环境要求操作系统要求main分支推荐使用openEuler 20.03版本内核版本4.18~4.195.10分支推荐使用openEuler 22.03版本内核版本5.10其他Linux发行版未经充分测试建议在兼容环境中使用硬件要求CPU支持eBPF的x86_64架构处理器内存至少512MB可用内存磁盘空间至少1GB可用空间️ 源码编译安装方法步骤一安装依赖库Agith运行和编译需要以下依赖库请根据您的系统版本进行安装运行依赖库elfutils 0.180 jsoncpp 1.9.3 log4cplus 2.0.5 libbpf 0.1.1编译依赖库cmake 3.16.5 make 4.3 clang 10.0.1 llvm 10.0.1 elfutils-devel 0.180 jsoncpp-devel 1.9.3 log4cplus-devel 2.0.5 libbpf-devel 0.1.1 gtest-devel 1.8.1步骤二获取源代码首先从仓库克隆Agith项目git clone https://gitcode.com/openeuler/Agith cd Agith步骤三编译项目在Agith项目根目录下执行编译命令./build.sh compile编译过程会自动完成以下操作检查并生成vmlinux.h内核头文件配置CMake构建系统编译所有源代码文件生成可执行文件Agith系统架构图展示了五个核心模块的协同工作流程步骤四启用测试功能可选如果需要编译测试程序请编辑根目录下的CMakeLists.txt文件取消以下注释enable_testing() add_subdirectory(test) Docker容器化部署步骤一构建Docker镜像在Agith项目根目录下执行Docker构建命令docker build -t agith .Dockerfile会自动完成以下操作基于openEuler 22.03创建基础镜像安装所有必要的依赖库编译Agith项目配置运行环境步骤二运行Agith容器镜像构建完成后使用以下命令运行容器docker run -it -v /your_path:/Agith/build/output \ --privileged \ --pidhost \ --workdir/Agith/build/prod \ agith -p 目标PID参数说明/your_path宿主机映射目录用于存储监控输出文件-p 目标PID指定要监控的初始进程PID--privileged授予容器特权用于访问系统资源--pidhost使用主机PID命名空间⚙️ 配置文件详解Agith的配置文件位于config/agith.config采用JSON格式包含以下关键配置项控制器配置Controller: { max_memory: 100, // 最大内存用量MB max_cpu: 10, // 最大CPU单核利用率% check_cpu_mem_duration: 3 // 检查CPU和内存的周期秒 }存储库配置Repository: { output_dir: ../output, // 输出文件目录 file_save_time: 72, // 文件保留时间小时 concern_syscalls: [ // 关注的系统调用列表 write, clone, unlinkat, unlink, connect, sendto, recvfrom, mkdir, execve, finit_module, delete_module ], max_output_trace: 500 // 每轮写入文件的trace最大数目 }监控器配置Monitor: { risk_syscalls: [ // 风险系统调用列表 write, unlinkat, unlink, sendto ] }变更影响面拓扑图展示了进程、文件和网络节点之间的关联关系 启动参数说明Agith支持以下启动参数参数说明示例-p初始目标进程的PID-p 1234-c配置文件路径默认/etc/Agith.conf-c /path/to/config-q停止Agith程序-q基本使用示例监控指定进程./agith -p 1234使用自定义配置文件./agith -p 1234 -c /path/to/custom.config 性能测试结果Agith在不同场景下的性能表现手动变更场景Trace数目747条CPU利用率0.4%内存用量5.8MB输出文件大小95KB自动变更场景Trace数目306条CPU利用率0.2%内存用量5.6MB输出文件大小50KB极限场景5000条操作Trace数目126,544条CPU利用率3.8%内存用量9.2MB输出文件大小21.2MB 高级配置技巧自定义监控系统调用编辑config/agith.config文件中的concern_syscalls数组可以添加或删除需要监控的系统调用concern_syscalls: [ write, clone, unlinkat, unlink, connect, sendto, recvfrom, mkdir, execve, finit_module, delete_module, openat, read // 新增监控项 ]调整性能参数根据系统负载调整性能参数Controller: { max_memory: 200, // 增加内存限制 max_cpu: 20, // 提高CPU利用率上限 check_cpu_mem_duration: 5 // 延长检查周期 }输出目录配置修改输出目录位置Repository: { output_dir: /var/log/agith/output, file_save_time: 168 // 保留7天数据 }Agith开发计划展示了未来功能扩展方向 故障排除常见问题及解决方法编译失败缺少vmlinux.h# 手动生成vmlinux.h bpftool btf dump file /sys/kernel/btf/vmlinux format c src/BPF/vmlinux.h权限不足错误# 使用sudo运行 sudo ./agith -p PID # 或配置sudoers echo username ALL(ALL) NOPASSWD: /path/to/agith /etc/sudoersDocker容器无法启动# 检查内核版本 uname -r # 确保已启用eBPF支持 cat /proc/sys/kernel/unprivileged_bpf_disabled日志查看Agith的日志文件默认位于./agith.log可以通过配置文件修改路径Log: { path: /var/log/agith/agith.log } 最佳实践建议生产环境部署建议资源规划根据监控负载调整内存和CPU限制为输出文件预留足够的磁盘空间定期清理旧数据文件监控策略从关键业务进程开始监控逐步扩大监控范围建立监控基线识别异常行为数据管理定期备份重要监控数据设置合理的文件保留时间使用外部存储保存历史数据安全注意事项权限管理避免使用root权限运行为Agith创建专用用户限制对敏感目录的访问网络隔离在生产环境中使用网络隔离限制外部网络访问监控网络连接行为 总结Agith作为一款专业的变更监控工具通过eBPF技术实现了对Linux系统变更操作的深度监控。本文详细介绍了从源码编译到Docker部署的完整流程涵盖了配置优化、性能调优和故障排除等关键内容。无论您是运维工程师、系统管理员还是安全专家Agith都能为您提供强大的变更监控能力。通过本文的指南您可以快速部署和使用Agith提升系统的稳定性和安全性。记住正确的安装和配置是发挥Agith最大效能的关键。根据您的具体需求调整配置参数定期检查监控数据让Agith成为您运维工作中的得力助手【免费下载链接】Agithlinux command influence analysis项目地址: https://gitcode.com/openeuler/Agith创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考