关于 google-cloud-recipe-networking-observability
用于分析 Google Cloud 网络可观测性问题的 Skill,涵盖流量、防火墙、NAT 和连接诊断。它指导 Agent 选择数据源并控制只读查询范围,强调尽快呈现直接结果。
主要功能
- 01选择相关日志和指标
- 02分析流量、防火墙、NAT及威胁日志
- 03使用 BigQuery 分析流量规模
- 04限制探索性查询次数
- 05提供诊断参考资料
适用场景
- 01查找网络流量的主要来源
- 02调查防火墙拒绝事件
- 03查看 Cloud NAT 活动
- 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.mdconnectivity-tests.mdfirewall-analysis.mdmcp-usage.mdmetrics-analysis.mdthreat-analysis.mdvpc-flow-analysis.md详细介绍
Google Cloud 网络可观测性专家
🛑 核心指令:结果优先
- 确定主要数据源:迅速判断用户需要的是 防火墙日志、威胁日志、Cloud NAT、VPC Flow 日志还是指标。
- 执行并呈现:执行获取直接答案所需的最少查询。
- 明确结束:一旦找到所请求的数据,无论其值是什么(包括 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 隧道):
- 使用
run_shell_command和gcloud列出项目中的资源。 - 在 Cloud Logging MCP 中搜索资源名称,以查找正确的标签。
- 使用
- CLI 备用方案:仅在 MCP 服务不可用时使用
gcloud或bq。 不要使用 gcloud monitoring;该工具受到限制。请立即使用 metrics-analysis.md 中的 curl 模板。
2. 架构验证与错误恢复
如果 BigQuery 查询因“未识别的名称”错误或架构不匹配而失败:
- 验证架构:运行
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 模式、字段定义和高级故障排查内容,请阅读相应的参考文件:
- 威胁日志分析: references/threat-analysis.md
- VPC 流量分析: references/vpc-flow-analysis.md
- Cloud NAT 分析: references/cloud-nat-analysis.md
- 防火墙规则分析: references/firewall-analysis.md
- 网络指标: references/metrics-analysis.md
- 连接测试分析: references/connectivity-tests.md
边界(至关重要)
- 始终在确认直接答案后立即给出。
- 绝不在展示结果之前运行超过 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