Linux故障诊断场景工具

提供可重复的Linux系统故障场景用于AI驱动的故障诊断策略测试和评估。

  • by panyamkeerthana
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 panyamkeerthana/linux-mcp-diagnostics

使用说明

Linux MCP故障排除场景

此存储库包含要支持的Ansible剧本 rhel光速/linux mcp服务器.

这项工作的目的是创建可重复的损坏系统状态,可用于基准测试和比较不同的人工智能驱动的故障排除策略。

先决条件

  • 安塞波 本地安装
  • A. 红帽企业 Linux 具有SSH访问权限的虚拟机
  • VM的快照功能(QEMU或类似设备)

安装Ansible

# macOS
brew install ansible

# Fedora/RHEL
sudo dnf install ansible

# Ubuntu/Debian
sudo apt install ansible

设置

1.配置库存

复制清单模板并配置VM连接:

cp hosts.ini.example hosts.ini

VM自动化(可选)

该项目可以与 mcp虚拟机脚本 自动创建虚拟机并运行场景剧本,用于在隔离环境中测试故障排除场景。

安装

按照以下说明安装mcp vm脚本: GitHub 仓库.

安装后,您可以创建一个VM并自动运行场景剧本:

./tools/mcpvm setup --playbook=<path to linux-mcp-diagnostics>/scenarios/01_selinux_port_denial/scenario.yaml --version=<RHEL-VERSION>

此命令将创建一个新的RHEL VM,为其配置SSH访问权限,并运行指定的场景剧本以引入故障

用于管理虚拟机

# List all managed VMs
./tools/mcpvm list

# Delete a VM when done
./tools/mcpvm delete <vm-name>

有关详细的设置说明和VM管理命令,请参阅 mcp vm脚本文档.

场景

使用引入特定系统故障的Ansible标签触发场景。

场景 标签 命令 故障描述
SELinux端口拒绝 scenario1 ansible-playbook -i hosts.ini scenarios/01_selinux_port_denial/scenario.yaml -K Apache配置在端口8088上,被SELinux策略阻止
SSH权限锁定 scenario2 ansible-playbook -i hosts.ini scenarios/02_ssh_permissions/scenario.yaml -K .ssh 目录设置为 0777,阻止基于密钥的身份验证
OOM杀戮 scenario3 ansible-playbook -i hosts.ini scenarios/03_systemd_oom_limit/scenario.yaml -K chronyd 服务限制为1MB内存,触发OOM
级联故障 scenario4 ansible-playbook -i hosts.ini scenarios/04_cascading_db_failure/scenario.yaml -K MariaDB磁盘已满+日志目录所有权已损坏

与鹅一起跑步的场景

这 run_scenario.sh 该脚本使用Goose CLI助手自动执行故障排除场景。它根据量规处理场景选择和评估。

先决条件

  • GEMINI_API_键 环境变量集

用法

./run_scenario.sh <scenario-number> <vm-ip-address>

这将:

  1. 使用特定场景的提示启动Goose会话
  2. 创建唯一的会话名称
  3. 可选地将聊天会话导出为JSON
  4. 可选择使用量规工具包根据场景的量规评估会话

使用评估工具包进行评估

该项目与 量规套件 创建用于评估mcp服务器性能的评估量规。评估工具包提供了对人工智能代理如何处理这些故障场景的评估。

安装

pip install rubric-kit

有关详细的安装和设置说明,请参阅 量规套件文档 或 GitHub 仓库.

用法

从聊天会话生成评估标准

rubric-kit generate --from-chat-session scenarios/01_selinux_port_denial/<chat-session-file.txt> \
  --output-file scenarios/01_selinux_port_denial/rubric.yaml \
  --model <MODEL_FORMAT>

根据评估标准评估聊天会话

rubric-kit evaluate --from-chat-session <chat-session-file.txt> \
  --rubric-file scenarios/01_selinux_port_denial/rubric.yaml \
  --output-file results.yaml

将结果导出为PDF

rubric-kit export results.yaml --format pdf --output report.pdf

有关量规结构、评判小组和评估选项的更多信息,请参阅 量规工具包存储库.