开发与工程 ✓ Microsoft · 官方 azure-monitorlog-analyticslogs-ingestion-apipython-sdkdata-collection-rulescustom-logs

Azure Monitor 自定义日志采集

帮助 Python 编码代理通过 Logs Ingestion API 发送自定义日志。

FollowSkills 评估 · FSRS-2.0
不推荐
53/ 100 五分制 2.7 / 5
信任安全17 / 25 · 3.4/5

证据显示优先使用 DefaultAzureCredential、生产环境可限制凭据链,并避免连接字符串及 API 密钥,降低凭据暴露风险;但未说明敏感日志字段处理、上传前用户确认、最小 RBAC 权限、外部数据流和失败后的回滚,且提供了静默忽略错误的示例,因此扣分。

可靠稳定8 / 20 · 2.0/5

主路径覆盖同步、异步、部分失败和批处理,且有上下文管理器建议;但示例之间不完全一致:前文称本地可直接使用 DefaultAzureCredential,同时使用 require_envvar=True,异步主示例未关闭异步凭据,且未给出参数校验、重试边界或可诊断的异常处理,因此静态评估不超过10并扣分。

适用触发8 / 15 · 2.7/5

名称、描述、触发词、输入环境变量、同步/异步及主流场景较清楚,也包含主权云示例;但未明确非适用范围、所需 Azure 权限、网络限制、schema 兼容边界或中文使用说明。核心功能依赖 Azure 服务,网络可达性取决于用户环境,未提供大陆网络适配证据。

规范维护9 / 15 · 3.0/5

具备 YAML 元数据、MIT 许可证、版本号、安装说明、分层参考文件和概念表,结构较易阅读;但缺少变更日志、维护责任人和明确更新路径,参考文件主要是索引/重复内容,且文档中的生命周期示例存在不一致,因此扣分。

有效结果7 / 15 · 2.3/5

能够直接指导安装客户端、上传日志、读取 JSON、处理部分失败以及使用异步和主权云模式,核心任务基本覆盖;但缺少资源创建/权限配置、DCR schema 验证、敏感数据过滤、生产重试与可观测性验证,代码仍需用户补充配置和审查,按静态校准不超过7。

证据核验4 / 10 · 2.0/5

技能文件包含具体代码和参数,但没有针对该技能的提交测试套件、真实 CI 覆盖或第三方执行结果;仓库级测试/工作流主要验证通用 harness,不能证明此技能关键路径正确,因此仅给有限可审计证据。

证据充分度: 评估于 2026年7月20日 审查版本 9ccaf7c3704a
使用前请注意
  • 上传操作会将日志发送到 Azure Monitor;执行前应确认日志不含凭据、个人信息或其他不应外传的数据,并验证 DCR schema 与 RBAC 权限。
  • 不要直接使用“静默忽略错误”示例;应记录失败、定义重试上限,并确认重复上传是否可接受。
  • 检查 DefaultAzureCredential(require_envvar=True) 与本地开发说明是否匹配,并在异步代码中显式关闭 DefaultAzureCredential。
查看完整评分方法 →

它能做什么 & 适用场景

这是一个面向 Azure Monitor Ingestion SDK for Python 的 Agent Skill,用于将自定义日志发送到 Log Analytics 工作区。它覆盖同步与异步客户端、DefaultAzureCredential 身份验证、数据收集端点(DCE)、数据收集规则(DCR)和流名称配置。Skill 还说明了部分失败处理、重试、批量上传、gzip 压缩、并行上传及 Azure Government 主权云配置。采用前提是已有 Log Analytics 工作区、DCE、DCR 和自定义表。

指导编码代理安装 azure-monitor-ingestion 和 azure-identity,读取 DCE、DCR 规则 ID 与流名称等环境变量,生成 LogsIngestionClient 或异步客户端代码,并调用 upload 发送日志。它还提供从 JSON 文件读取日志、通过 on_error 回调收集失败日志并重试、忽略上传错误、使用 DefaultAzureCredential 或托管身份凭据,以及配置主权云端点和凭据范围的示例。

  1. 负责 Azure 后端的 Python 开发者,需要把应用生成的结构化自定义日志写入 Log Analytics。
  2. 已经配置 DCE、DCR 和自定义表的运维或平台工程师,需要编写日志上传脚本。
  3. 处理大量日志的开发团队,需要使用异步客户端和 SDK 自动批处理、压缩及并行上传。
  4. 需要可靠处理部分上传失败的团队,希望收集失败记录并执行重试。
  5. 面向 Azure Government 部署的团队,需要按主权云端点和凭据范围配置日志采集。

优缺点一览

优点
  • 覆盖同步和异步 Python 客户端,并明确资源清理方式。
  • 提供 DefaultAzureCredential、托管身份和 Azure Government 配置指导。
  • 包含部分失败回调、失败日志重试和忽略错误示例。
  • 说明 SDK 会自动将日志拆分为不超过 1MB 的块、gzip 压缩并并行上传。
局限
  • 不能替代 DCE、DCR、Log Analytics 工作区或自定义表的创建与配置。
  • 要求使用者预先准备 DCE、DCR、流名称和匹配的日志模式。
  • Skill 专注于日志写入,没有覆盖 Log Analytics 查询或摄取状态查询的代码。
  • 提供的材料没有给出该单个 Skill 的专属测试结果。

如何安装

先将技能集合安装到所选 Agent 配置目录:

npx skills add microsoft/skills

在安装向导中选择 azure-monitor-ingestion-py。运行 Python 示例前,再安装 SDK 依赖:

pip install azure-monitor-ingestion
pip install azure-identity

源码没有说明特定 Agent 的手工安装目标目录以外的额外步骤。

如何使用

可用触发词包括 “azure-monitor-ingestion”、“LogsIngestionClient”、“custom logs”、“DCR” 和 “Log Analytics”。例如:

“请使用 azure-monitor-ingestion 为 Python 服务编写向 Log Analytics 上传自定义日志的代码,采用 DefaultAzureCredential、上下文管理器和失败重试。”

使用前需设置 AZURE_DCE_ENDPOINT、AZURE_DCR_RULE_ID 和 AZURE_DCR_STREAM_NAME;若生产环境使用 DefaultAzureCredential,还需设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据。日志字段必须符合 DCR 模式,并包含 TimeGenerated。

常见问题

这个 Skill 会自动创建 DCE、DCR 或自定义表吗?
不会。材料将这些列为使用 SDK 前的前提条件,Skill 只指导通过 Logs Ingestion API 上传日志。
上传失败时会发生什么?
可以传入 on_error 回调处理部分失败;示例会收集 failed_logs,并再次调用 upload 重试。也可以提供空回调忽略错误。
生产环境应使用哪种身份验证?
优先使用 DefaultAzureCredential;生产环境可设置 AZURE_TOKEN_CREDENTIALS=prod,或直接使用 ManagedIdentityCredential 等具体凭据。
大批量日志是否需要手动分批?
SDK 会自动按不超过 1MB 的块拆分、gzip 压缩并并行上传,但材料仍建议发送合理大小的批次。

同仓库的其他 Skills

均来自 microsoft/agent-skills

开发与工程 ✓ Microsoft · 官方

Azure Identity Python 认证技能

为 Python Azure 应用提供基于 Microsoft Entra ID 的可复用身份认证指导。

开发与工程 ✓ Microsoft · 官方

Azure Event Hubs Java 开发技能

帮助 Java 开发者构建高吞吐、可 checkpoint 的 Azure 事件流应用。

开发与工程 ✓ Microsoft · 官方

Azure Tables Python 技能

帮助 Python 开发者使用 Azure Tables 完成安全认证、实体管理、查询与批量事务操作。

开发与工程 ✓ Microsoft · 官方

Azure Identity TypeScript

为 TypeScript Azure 应用配置安全、可切换的 Microsoft Entra ID 身份验证。

自动化与运维 ✓ Microsoft · 官方

Azure 应用可靠性顾问

评估并提升 Azure Functions 与 App Service 的可靠性。

开发与工程 ✓ Microsoft · 官方

Azure 云架构师

帮助编码代理按照 Azure 架构中心最佳实践设计和审查生产级云系统。

开发与工程 ✓ Microsoft · 官方

Azure AI 文本分析 Python 技能

为 Python 开发者提供 Azure 文本分析与自然语言处理集成指导。

自动化与运维 ✓ Microsoft · 官方

Azure 资源架构可视化器

分析 Azure 资源组及其依赖关系,生成详细的 Mermaid 架构图。

开发与工程 ✓ Microsoft · 官方

Azure Maps .NET 开发技能

为 .NET 应用提供地理搜索、路线、地图、定位与天气开发指导。

开发与工程 ✓ Microsoft · 官方

Azure AI Vision 图像分析技能

为 Python 编码代理提供 Azure AI Vision 图像理解实现指南。

开发与工程 ✓ Microsoft · 官方

Azure Blob Storage Python 技能

帮助 Python 开发者安全高效地操作 Azure Blob Storage。

开发与工程 ✓ Microsoft · 官方

Azure Queue Storage Python 技能

帮助编码代理使用 Python 构建安全、可靠的 Azure Queue Storage 异步消息处理。

自动化与运维 ✓ Microsoft · 官方

Azure AI 网关治理

用 Azure API Management 统一治理 AI 模型、MCP 工具和智能体流量。

自动化与运维 ✓ Microsoft · 官方

AKS Automatic 就绪评估

评估 Kubernetes 工作负载能否迁移到 AKS Automatic,并定位兼容性阻塞项。

开发与工程 ✓ Microsoft · 官方

Azure Cosmos DB .NET 资源管理技能

用 .NET 通过 ARM 部署和管理 Azure Cosmos DB 资源。

开发与工程 ✓ Microsoft · 官方

Azure Playwright 工作区管理技能

用 .NET 通过 Azure Resource Manager 配置和管理 Microsoft Playwright Testing 工作区。

开发与工程 ✓ Microsoft · 官方

Azure Cosmos DB Python 技能

帮助 Python 开发者可靠地构建和操作 Azure Cosmos DB NoSQL 应用。

开发与工程 ✓ Microsoft · 官方

Azure Key Vault Python SDK 技能

帮助 Python 编码代理安全管理 Azure Key Vault 中的机密、加密密钥和证书。

开发与工程 ✓ Microsoft · 官方

Azure API Management Python 技能

帮助编码代理使用 Python SDK 管理 Azure API Management 的服务、API、产品、订阅与策略。

开发与工程 ✓ Microsoft · 官方

Azure Monitor 查询 Python 技能

帮助 Python 开发者查询 Azure Monitor 日志与指标。

相关 Skills