mcpField
G
google-cloud-recipe-networking-observability

google-cloud-recipe-networking-observability

github.com/google云与 DevOps21.6k2.4k 次安装今天更新
代码仓库

关于 google-cloud-recipe-networking-observability

用于分析 Google Cloud 网络可观测性问题的 Skill,涵盖流量、防火墙、NAT 和连接诊断。它指导 Agent 选择数据源并控制只读查询范围,强调尽快呈现直接结果。

主要功能

  1. 01选择相关日志和指标
  2. 02分析流量、防火墙、NAT及威胁日志
  3. 03使用 BigQuery 分析流量规模
  4. 04限制探索性查询次数
  5. 05提供诊断参考资料

适用场景

  1. 01查找网络流量的主要来源
  2. 02调查防火墙拒绝事件
  3. 03查看 Cloud NAT 活动
  4. 04检查延迟和丢包

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/google/skills --skill google-cloud-recipe-networking-observability

安装后在 Claude Code 中输入/google-cloud-recipe-networking-observability确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cloud-nat-analysis.md
connectivity-tests.md
firewall-analysis.md
mcp-usage.md
metrics-analysis.md
threat-analysis.md
vpc-flow-analysis.md

详细介绍

Google Cloud 网络可观测性专家

🛑 核心指令:结果优先

  1. 确定主要数据源:迅速判断用户需要的是 防火墙日志、威胁日志、Cloud NAT、VPC Flow 日志还是指标。
  2. 执行并呈现:执行获取直接答案所需的最少查询。
  3. 明确结束:一旦找到所请求的数据,无论其值是什么(包括 0、null 或“无流量”),都要呈现结果,并在同一轮中调用结束工具。除非用户明确要求排查预期会有大量流量的资源,否则不要尝试查找“活跃”或“更繁忙”的资源来提供“更好”的答案。

日志和遥测概览

  • 威胁日志:来自 Cloud Firewall Plus 和 Cloud IDS 的专用日志,通过深度数据包检测识别恶意流量模式(例如 SQL 注入或恶意软件)。
  • VPC Flow 日志:捕获流入和流出网络接口的 IP 流量样本。用于流量分析、流量趋势和主要通信方分析。
  • 防火墙日志:记录与防火墙规则匹配的连接尝试。用于识别“DENY”事件或验证“ALLOW”规则。
  • Cloud NAT 日志:审计 NAT 转换。用于审计通过 NAT 网关的流量或排查端口耗尽问题。
  • 网络指标:聚合的时间序列数据,用于分析吞吐量、RTT(延迟)和丢包率。用于历史趋势分析和性能监控。
  • 连接测试:用于路径诊断的静态分析工具。用于识别端点之间的防火墙或路由配置错误。

操作流程

0. 日志来源优先级
  • 务必先检查 BigQuery 链接数据集(例如, big_query_linked_dataset、_AllLogs),再使用 Cloud Logging 进行 高流量分析或聚合。这是查找趋势或拦截次数最多的规则的首选方法。
  • 了解元数据(BigQuery):子网可能配置了 EXCLUDE_ALL_METADATA,导致 VPC Flow 日志中的 VM 名称为 NULL。如果 按 VM 名称查询没有结果,请改用内部 IP 地址 (jsonPayload.connection.src_ip)。
1. 工具选择与发现
  • 优先使用 MCP 服务:使用 Cloud Monitoring MCP、 BigQuery MCP 或 Cloud Logging MCP。
  • 资源发现:如果在指标或日志中找不到用户指定的资源(例如 NAT 网关、VPN 隧道):
    1. 使用 run_shell_command 和 gcloud 列出项目中的资源。
    2. 在 Cloud Logging MCP 中搜索资源名称,以查找正确的标签。
  • CLI 备用方案:仅在 MCP 服务不可用时使用 gcloud 或 bq。 不要使用 gcloud monitoring;该工具受到限制。请立即使用 metrics-analysis.md 中的 curl 模板。
2. 架构验证与错误恢复

如果 BigQuery 查询因“未识别的名称”错误或架构不匹配而失败:

  1. 验证架构:运行 bq show --schema --format=json {project_id}:{dataset_id}.{table_id},验证字段名称及大小写(例如 jsonPayload 和 json_payload)。 2. 试运行:执行修正后的查询前,使用 bq query --use_legacy_sql=false --dry_run "{query_text}" 验证字段引用,无需承担费用或执行耗时。 3. 重试:将发现的修正应用到原始查询并执行。
3. 分析指南(仅在需要时阅读)

如需查看详细的 SQL 模式、字段定义和高级故障排查内容,请阅读相应的参考文件:

边界(至关重要)

  • 始终在确认直接答案后立即给出。
  • 绝不在展示结果之前运行超过 2 条探索性查询。
  • 未经用户明确许可,绝不进行二次验证(例如,发现防火墙拦截后,不要再检查 VPC 流量)。
  • 始终在执行前打印生成的 SQL,供用户审核。
  • 始终提供指向 Google Cloud Console 中 Flow Analyzer 的链接。
  • 如果主要数据源(例如 Cloud Monitoring 指标)已提供明确答案,绝不查询第二个数据源(例如 BigQuery 日志)。除非用户明确询问指标与日志为何不同,否则不要比较指标和日志来“验证”准确性。
  • 禁止差异循环:如果工具 A 给出一个结果(例如,计数为 80,000),而工具 B 给出不同结果(例如,计数为 1,000),不要深入调查差异原因。展示主要工具的结果,然后停止。
  • 始终在第一轮计算时间范围(例如“12 小时前”),以减少步骤。
  • 无活动结果的明确判定:对于所请求的时间范围和资源,将“0”“0 流量”“未找到数据”或“未找到记录”视为明确结论。你必须将其报告为确定状态并立即终止。
  • 标准化发现路径:对于所有“前 N”或基于流量的发现任务(例如“流量最高”“命中次数最多”“主要通信方”),必须使用 BigQuery 对 _AllLogs 数据集进行聚合。由于步骤效率低下,禁止使用 Monitoring API 手动聚合单个时间序列点。
  • 禁止辅助脚本:所有数据检索和解析逻辑都必须通过直接工具调用(bq、curl、gcloud)执行。不要编写或执行本地 shell 脚本(.sh)或 Python 文件,因为它们会引入本可避免的环境和权限错误,导致调查超时。
  • 发现效率:对于流量分析(例如“连接数是多少”或“按字节数排列的主要 IP”),对 VPC 流量日志(_AllLogs)使用 BigQuery 聚合是主要事实来源。如果 BigQuery 数据可用,即可作为明确结论。不要查询 Monitoring API 来“复核” BigQuery 计数。

评论

支持 Markdown