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
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 中设置以下内容:
- 创建 Log Analytics 工作区(如果您还没有的话)
- 在 Log Analytics 工作区中创建自定义表(例如
LiteLLM_CL) - 创建数据收集规则 (DCR),包含:
- 与您的数据结构匹配的流声明 (Stream declaration)
- 将数据映射到自定义表的转换 (Transformation)
- 授予您的应用程序注册访问权限
- 在 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 步:启动代理并发送测试请求
启动代理
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 中查看日志
- 在 Azure 门户中导航到您的 Azure Sentinel 工作区
- 转到“日志 (Logs)”并查询您的自定义表(例如
LiteLLM_CL) - 运行类似以下的查询
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_ENDPOINT | DCR 日志注入端点 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 工作区

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

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

- 点击“查看 + 创建”

第 2 步:创建自定义表
- 转到您的 Log Analytics 工作区并点击“表”

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

- 输入表名称(例如 "LITELLM_PROD_CL")

第 3 步:创建数据收集规则 (DCR)
- 点击“创建新的数据收集规则”

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

- 选择一个数据收集端点

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

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

第 4 步:获取 DCR 不可变 ID 和日志注入端点
- 转到“数据收集规则”并选择您的 DCR

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

- 复制 日志注入端点 URL

第 5 步:获取流名称
- 在 DCR 中点击“JSON 视图”

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

第 6 步:注册应用并授予权限
- 转到 Microsoft Entra ID → 应用注册 → 新注册
- 创建一个新应用并记下 客户端 ID 和 租户 ID
- 转到 证书和密码 → 创建新客户端密码并复制 密码值 (Secret Value)
- 回到您的 DCR → 访问控制 (IAM) → 添加角色分配
- 为您的应用程序注册分配 "监控指标发布者 (Monitoring Metrics Publisher)" 角色
总结:在何处查找每个值
| 环境变量 | 查找位置 |
|---|---|
AZURE_SENTINEL_DCR_IMMUTABLE_ID | DCR 概览页面 → 不可变 ID (以 dcr- 开头) |
AZURE_SENTINEL_ENDPOINT | DCR 概览页面 → 日志注入端点 |
AZURE_SENTINEL_STREAM_NAME | DCR JSON 视图 → streamDeclarations 部分 |
AZURE_SENTINEL_TENANT_ID | 应用注册 → 概览 → 目录 (租户) ID |
AZURE_SENTINEL_CLIENT_ID | 应用注册 → 概览 → 应用程序 (客户端) ID |
AZURE_SENTINEL_CLIENT_SECRET | 应用注册 → 证书和密码 → 密码值 |
有关更多详细信息,请参阅 Microsoft 日志注入 API 文档。