跳至主要内容

Azure Sentinel

LiteLLM 支持通过 Azure Monitor 日志注入 API (Logs Ingestion API) 将日志记录到 Azure Sentinel。Azure Sentinel 使用 Log Analytics 工作区进行数据存储,因此发送到该工作区的日志将可在 Sentinel 中用于安全监控和分析。

Azure Sentinel 集成

功能详情
记录的内容StandardLoggingPayload
事件成功 + 失败
产品链接Azure Sentinel
API 参考日志注入 API

我们将使用 --config 来设置 litellm.callbacks = ["azure_sentinel"],这将把所有成功和失败的 LLM 调用记录到 Azure Sentinel。

第 1 步:创建一个 config.yaml 文件并设置 litellm_settings: callbacks

config.yaml
model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
callbacks: ["azure_sentinel"] # logs llm success + failure logs to Azure Sentinel

第 2 步:设置 Azure 资源

在使用日志注入 API 之前,您需要在 Azure 中设置以下内容:

  1. 创建 Log Analytics 工作区(如果您还没有的话)
  2. 在 Log Analytics 工作区中创建自定义表(例如 LiteLLM_CL
  3. 创建数据收集规则 (DCR),包含:
    • 与您的数据结构匹配的流声明 (Stream declaration)
    • 将数据映射到自定义表的转换 (Transformation)
    • 授予您的应用程序注册访问权限
  4. 在 Microsoft Entra ID (Azure AD) 中注册应用程序,包含:
    • 客户端 ID (Client ID)
    • 客户端密码 (Client Secret)
    • 写入 DCR 的权限

有关详细的设置说明,请参阅 Microsoft 关于日志注入 API 的文档

第 3 步:设置必要的环境变量

使用您的 Azure 凭据设置以下环境变量

环境变量
# Required: Data Collection Rule (DCR) configuration
AZURE_SENTINEL_DCR_IMMUTABLE_ID="dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # DCR Immutable ID from Azure portal
AZURE_SENTINEL_STREAM_NAME="Custom-LiteLLM_CL_CL" # Stream name from your DCR
AZURE_SENTINEL_ENDPOINT="https://your-dcr-endpoint.eastus-1.ingest.monitor.azure.com" # DCR logs ingestion endpoint (NOT the DCE endpoint)

# Required: OAuth2 Authentication (App Registration)
AZURE_SENTINEL_TENANT_ID="your-tenant-id" # Azure Tenant ID
AZURE_SENTINEL_CLIENT_ID="your-client-id" # Application (client) ID
AZURE_SENTINEL_CLIENT_SECRET="your-client-secret" # Client secret value

注意AZURE_SENTINEL_ENDPOINT 应该是 DCR 的日志注入端点(在 DCR 概览页面中找到),而不是数据收集端点 (DCE)。DCR 端点与您的特定 DCR 相关联,格式如下:https://your-dcr-endpoint.{region}-1.ingest.monitor.azure.com

第 4 步:启动代理并发送测试请求

启动代理

启动 Proxy
litellm --config config.yaml --debug

测试请求

测试请求
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
"metadata": {
"your-custom-metadata": "custom-field",
}
}'

第 5 步:在 Azure Sentinel 中查看日志

  1. 在 Azure 门户中导航到您的 Azure Sentinel 工作区
  2. 转到“日志 (Logs)”并查询您的自定义表(例如 LiteLLM_CL
  3. 运行类似以下的查询
KQL 查询
LiteLLM_CL
| where TimeGenerated > ago(1h)
| project TimeGenerated, model, status, total_tokens, response_cost
| order by TimeGenerated desc

您应该会在 Azure 工作区中看到以下日志。

环境变量

环境变量描述默认值必需
AZURE_SENTINEL_DCR_IMMUTABLE_ID数据收集规则 (DCR) 不可变 ID✅ 是
AZURE_SENTINEL_ENDPOINTDCR 日志注入端点 URL(来自 DCR 概览页面)✅ 是
AZURE_SENTINEL_STREAM_NAME来自 DCR 的流名称(例如 "Custom-LiteLLM_CL_CL")"Custom-LiteLLM"❌ 无
AZURE_SENTINEL_TENANT_ID用于 OAuth2 身份验证的 Azure 租户 ID无(回退到 AZURE_TENANT_ID✅ 是
AZURE_SENTINEL_CLIENT_ID用于 OAuth2 身份验证的应用程序 (客户端) ID无(回退到 AZURE_CLIENT_ID✅ 是
AZURE_SENTINEL_CLIENT_SECRET用于 OAuth2 身份验证的客户端密码无(回退到 AZURE_CLIENT_SECRET✅ 是

工作原理

Azure Sentinel 集成使用 Azure Monitor 日志注入 API 将日志发送到您的 Log Analytics 工作区。该集成:

  • 使用您的应用程序注册通过 OAuth2 客户端凭据流进行身份验证
  • 将日志发送到数据收集规则 (DCR) 端点
  • 批量处理日志以实现高效传输
  • StandardLoggingPayload 格式发送日志
  • 自动处理成功和失败事件
  • 缓存 OAuth2 令牌并自动刷新

发送到 Log Analytics 工作区的日志会自动在 Azure Sentinel 中提供,用于安全监控、威胁检测和分析。

Azure Sentinel 设置指南

请按照此分步指南设置 Azure Sentinel 与 LiteLLM 的集成。

第 1 步:创建 Log Analytics 工作区

  1. 导航到 https://portal.azure.com/#home

  1. 搜索“Log Analytics 工作区”并点击“创建”

  1. 输入您的工作区名称(例如 "litellm-sentinel-prod")

  1. 点击“查看 + 创建”

第 2 步:创建自定义表

  1. 转到您的 Log Analytics 工作区并点击“表”

  1. 点击“创建” → “新自定义日志 (直接注入)”

  1. 输入表名称(例如 "LITELLM_PROD_CL")

第 3 步:创建数据收集规则 (DCR)

  1. 点击“创建新的数据收集规则”

  1. 输入 DCR 名称(例如 "litellm-prod")

  1. 选择一个数据收集端点

  1. 上传示例 JSON 文件以获取架构(使用 example_standard_logging_payload.json 文件)

  1. 点击“下一步”,然后点击“创建”

第 4 步:获取 DCR 不可变 ID 和日志注入端点

  1. 转到“数据收集规则”并选择您的 DCR

  1. 复制 DCR 不可变 ID (以 dcr- 开头)

  1. 复制 日志注入端点 URL

第 5 步:获取流名称

  1. 在 DCR 中点击“JSON 视图”

  1. streamDeclarations 部分中找到 流名称(例如 "Custom-LITELLM_PROD_CL_CL")

第 6 步:注册应用并授予权限

  1. 转到 Microsoft Entra ID应用注册新注册
  2. 创建一个新应用并记下 客户端 ID租户 ID
  3. 转到 证书和密码 → 创建新客户端密码并复制 密码值 (Secret Value)
  4. 回到您的 DCR → 访问控制 (IAM)添加角色分配
  5. 为您的应用程序注册分配 "监控指标发布者 (Monitoring Metrics Publisher)" 角色

总结:在何处查找每个值

环境变量查找位置
AZURE_SENTINEL_DCR_IMMUTABLE_IDDCR 概览页面 → 不可变 ID (以 dcr- 开头)
AZURE_SENTINEL_ENDPOINTDCR 概览页面 → 日志注入端点
AZURE_SENTINEL_STREAM_NAMEDCR JSON 视图 → streamDeclarations 部分
AZURE_SENTINEL_TENANT_ID应用注册 → 概览 → 目录 (租户) ID
AZURE_SENTINEL_CLIENT_ID应用注册 → 概览 → 应用程序 (客户端) ID
AZURE_SENTINEL_CLIENT_SECRET应用注册 → 证书和密码 → 密码值

有关更多详细信息,请参阅 Microsoft 日志注入 API 文档