news 2026/7/17 17:02:49

Agith入门教程:如何监控Linux进程的系统调用与影响面

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agith入门教程:如何监控Linux进程的系统调用与影响面

Agith入门教程:如何监控Linux进程的系统调用与影响面

【免费下载链接】Agithlinux command influence analysis项目地址: https://gitcode.com/openeuler/Agith

前往项目官网免费下载:https://ar.openeuler.org/ar/

Agith是一款强大的Linux命令影响分析工具,专为IT运维场景设计,能够监控变更操作并输出变更影响面,帮助运维人员构建确定性运维能力,有效降低系统故障风险。

为什么需要Agith监控Linux进程?

在IT运维过程中,变更操作是系统故障的主要诱因之一。据公开论文分析,云厂商公开故障案例中84.7%的故障发生在系统升级与维护过程中。传统的命令日志记录方式无法完整表征操作意图,而系统调用监控工具如strace又会产生大量冗余数据,难以直接用于安全审计与故障根因定位。

Agith通过创建"变更影响面"这一新型运维数据,完美解决了上述问题。它采用图结构展示运维操作对系统的影响,既保留了关键信息,又避免了数据冗余,让运维人员能够直观地了解变更操作带来的影响。

Agith的核心功能与优势

Agith主要提供以下核心功能:

  • 系统调用监控:精准捕获进程执行的系统调用,包括文件操作、网络通信、进程管理等关键行为
  • 变更影响面分析:将系统调用数据整理为直观的图结构,展示进程、文件、网络节点之间的关联关系
  • 实时告警:内置监控模块,可检测危险操作并及时发出告警
  • 低性能损耗:采用eBPF技术,对系统性能影响小,适合生产环境长期运行

Agith系统架构图,展示了数据采集、处理和监控的完整流程

快速上手:Agith安装与配置

环境要求

Agith目前支持以下环境:

  • main分支:推荐使用openEuler 20.03版本(内核版本4.18~19)
  • 5.10分支:推荐使用openEuler 22.03版本(内核版本5.10)

安装步骤

1. 克隆代码仓库
git clone https://gitcode.com/openeuler/Agith cd Agith
2. 编译安装
./build.sh compile
3. Docker运行(可选)

如果您倾向于使用Docker,可以通过以下命令构建和运行镜像:

docker build -t agith . docker run -it -v /your_path:/Agith/build/output --privileged --pid=host --workdir=/Agith/build/prod agith -p XXXX

配置文件说明

Agith的配置文件位于config/agith.config,您可以根据需要调整以下关键配置项:

  • Controller.max_memory:最大内存用量(MB),默认100MB
  • Repository.output_dir:输出文件目录,默认../output
  • Monitor.risk_syscalls:风险系统调用列表,默认包含write、unlinkat等危险操作
  • Repository.concern_syscalls:需要关注的系统调用,用于简化生成的影响面图

开始监控:使用Agith追踪进程系统调用

基本使用方法

Agith的启动非常简单,只需指定要监控的进程PID:

agith -p <target_pid>

其中<target_pid>是您要监控的进程ID。Agith会自动追踪该进程及其子进程的系统调用,并生成变更影响面数据。

变更影响面分析

Agith将监控数据以图结构的形式呈现,直观展示进程、文件和网络节点之间的关系。例如,当监控一个执行脚本的bash进程时,您可能会看到如下的影响面图:

Agith生成的变更影响面图,展示了进程、文件和网络节点之间的关联关系

图中黄色节点表示进程,紫色节点表示文件,蓝色节点表示网络连接。通过这个图,您可以清晰地看到:

  • 初始bash进程(ID为0)执行了哪些命令
  • 每个命令操作了哪些文件
  • 进程之间的调用关系
  • 网络连接的目标和端口

性能监控结果

Agith对系统性能的影响非常小,即使在高负载场景下也能保持稳定运行。以下是不同测试场景下的性能数据:

手动变更场景下的CPU和内存使用情况

自动变更场景下的CPU和内存使用情况

极限场景(5000条命令)下的CPU和内存使用情况

从测试结果可以看出,Agith在大多数情况下CPU利用率低于4%,内存占用不到10MB,非常适合生产环境使用。

高级应用:定制监控规则与告警

自定义关注的系统调用

通过修改配置文件中的Repository.concern_syscalls项,您可以指定Agith关注哪些系统调用,从而定制生成的影响面图:

Repository.concern_syscalls = ["write", "clone", "unlinkat", "connect", "sendto"]

设置风险操作告警

Agith的Monitor模块可以监控危险操作并发出告警。您可以在配置文件中定义风险系统调用:

Monitor.risk_syscalls = ["unlinkat", "unlink", "delete_module"]

当Agith检测到这些系统调用时,会立即触发告警,帮助您及时发现潜在风险。

Agith的未来发展计划

Agith团队正在积极开发新功能,未来将支持更多监控场景,包括数据库访问、中间件交互、虚拟网络等:

Agith未来支持的监控场景扩展计划

同时,团队也在优化软件性能,适配更高版本的Linux内核,让Agith在更多环境中发挥作用。

总结

Agith作为一款专业的Linux命令影响分析工具,为IT运维人员提供了直观、高效的变更影响面监控方案。通过eBPF技术,Agith能够在低性能损耗的前提下,精准捕获进程的系统调用,并用图结构展示变更影响,帮助运维人员快速定位问题、评估风险。

无论是日常运维还是故障排查,Agith都能成为您的得力助手,让系统变更更加可控,运维工作更加高效。现在就尝试使用Agith,体验新一代Linux进程监控工具带来的便利吧!

【免费下载链接】Agithlinux command influence analysis项目地址: https://gitcode.com/openeuler/Agith

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 17:00:30

新手必看:gokr-rsync常见问题与解决方案大全

新手必看&#xff1a;gokr-rsync常见问题与解决方案大全 【免费下载链接】rsync rsync in Go! implements client and server, which can send or receive files (upload, download, all directions supported) 项目地址: https://gitcode.com/gh_mirrors/rsyn/rsync go…

作者头像 李华
网站建设 2026/7/17 16:59:28

终极指南:5分钟掌握psd2fgui,PSD到FairyGUI的快速转换工具

终极指南&#xff1a;5分钟掌握psd2fgui&#xff0c;PSD到FairyGUI的快速转换工具 【免费下载链接】psd2fgui A tool for converting psd file to fairygui package. 项目地址: https://gitcode.com/gh_mirrors/ps/psd2fgui psd2fgui是一款专门用于将Photoshop设计稿&am…

作者头像 李华
网站建设 2026/7/17 16:58:00

SillyTavern角色卡片系统:5步打造栩栩如生的AI对话伙伴终极指南

SillyTavern角色卡片系统&#xff1a;5步打造栩栩如生的AI对话伙伴终极指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern SillyTavern作为一款面向高级用户的LLM前端工具&#xff0c;其角…

作者头像 李华
网站建设 2026/7/17 16:56:04

Pokemon-GO-node-api源码解析:从Pokeio类设计看宝可梦GO API交互逻辑

Pokemon-GO-node-api源码解析&#xff1a;从Pokeio类设计看宝可梦GO API交互逻辑 【免费下载链接】Pokemon-GO-node-api Pokemon GO api node.js library 项目地址: https://gitcode.com/gh_mirrors/po/Pokemon-GO-node-api 欢迎来到宝可梦GO API开发的终极指南&#xf…

作者头像 李华
网站建设 2026/7/17 16:54:41

Orbit CSS调试技巧:如何使用开发者模式快速定位布局问题

Orbit CSS调试技巧&#xff1a;如何使用开发者模式快速定位布局问题 【免费下载链接】orbit &#x1f4ab; Orbit is a framework designed for building any kind of radial UI. 项目地址: https://gitcode.com/gh_mirrors/orbit14/orbit Orbit是一个专为构建径向UI设计…

作者头像 李华