Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Azure Log Analytics — это централизованная платформа ведения журнала, которая объединяет журналы из приложений, ресурсов Azure, виртуальных машин, контейнеров и т. д. Интеграция с построителем API данных (DAB) помогает предприятиям соответствовать требованиям соответствия, управлению и наблюдаемости. В отличие от Application Insights (который фокусируется на APM), Log Analytics обеспечивает более широкую агрегирование журналов с поддержкой языка запросов Kusto (KQL).
Предпосылки
- Существующий файл конфигурации DAB.
- Подписка Azure с разрешениями на создание ресурсов Log Analytics.
- Рабочая область Azure Log Analytics с помощью:
- Настраиваемая таблица (заканчивается на
_CL) - Правило сбора данных (DCR)
- Конечная точка сбора данных (DCE)
- Настраиваемая таблица (заканчивается на
- Управляемое удостоверение активировано на узле DAB (служба приложений Azure, приложения контейнеров, виртуальная машина и т. д.).
- CLI инструмента построения API данных. Установка интерфейса командной строки
Настройка ресурсов Azure Log Analytics
Перед настройкой DAB создайте необходимые ресурсы Azure.
Создание рабочей области Log Analytics
- Перейдите к порталу Azure>рабочим пространствам Log Analytics.
- Нажмите кнопку +Создать.
- Выберите подписку, группу ресурсов и регион.
- Укажите имя рабочей области.
- Выберите Просмотреть и создать>Создать.
Создание настраиваемой таблицы
Пользовательские таблицы для API приема журналов должны заканчиваться _CL.
- В рабочей области Log Analytics перейдите к таблицам.
- Выберите и создайте>настраиваемый журнал (на основе DCR).
- Введите имя таблицы (например,
DabLogs_CL). - Определите схему со следующими столбцами:
-
Time(дата и время) -
LogLevel(строка) -
Message(строка) -
Component(строка) -
Identifier(строка)
-
- Нажмите кнопку "Создать".
Создание конечной точки сбора данных (DCE)
- Перейдите в раздел "Мониторинг>конечных точек сбора данных".
- Нажмите кнопку +Создать.
- Выберите подписку, группу ресурсов и регион.
- Укажите имя (например,
my-dce). - Выберите Просмотреть и создать>Создать.
- Скопируйте URL-адрес конечной точки приема журналов (например,
https://my-dce.eastus-1.ingest.monitor.azure.com).
Создание правила сбора данных (DCR)
- Перейдите к разделу "Мониторинг>правил сбора данных".
- Нажмите кнопку +Создать.
- Выберите подписку, группу ресурсов, регион.
- Укажите имя (например,
my-dcr). - В источниках данных выберите настраиваемые текстовые журналы.
- Настроить:
- Конечная точка сбора данных: выберите DCE.
- Назначение: рабочая область Log Analytics.
-
Таблица: настраиваемая таблица (
DabLogs_CL).
- Выберите Просмотреть и создать>Создать.
- Скопируйте неизменяемый идентификатор (начинается с
dcr-).
Настройка проверки подлинности
DAB использует управляемое удостоверение Azure для проверки подлинности в Log Analytics. Учетные данные не хранятся в конфигурации.
Включить управляемое удостоверение
az webapp identity assign \
--name my-app \
--resource-group my-rg
Назначьте разрешения
Предоставьте роль издателя метрик мониторинга управляемому удостоверению в DCR.
# Get Managed Identity principal ID
PRINCIPAL_ID=$(az webapp identity show \
--name my-app \
--resource-group my-rg \
--query principalId -o tsv)
# Get DCR resource ID
DCR_ID=$(az monitor data-collection rule show \
--name my-dcr \
--resource-group my-rg \
--query id -o tsv)
# Assign role
az role assignment create \
--assignee $PRINCIPAL_ID \
--role "Monitoring Metrics Publisher" \
--scope $DCR_ID
Это важно
Без этого назначения роли DAB не может отправлять журналы в Log Analytics даже с правильной конфигурацией.
Настройка Log Analytics
В вашем файле конфигурации добавьте раздел azure-log-analytics под runtime.telemetry.
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": true,
"dab-identifier": "my-dab-instance",
"flush-interval-seconds": 10,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Свойства конфигурации
| Недвижимость | Description | По умолчанию | Constraints |
|---|---|---|---|
enabled |
Включение или отключение интеграции Log Analytics. | false |
Boolean |
dab-identifier |
Уникальная строка для идентификации записей журнала из этого экземпляра DAB. | DabLogs |
Любая строка. |
flush-interval-seconds |
Как часто (в секундах) журналы отправляются в Log Analytics. | 5 |
Должно быть > 0 |
auth.custom-table-name |
Имя настраиваемой таблицы в рабочей области Log Analytics. | (обязательно) | Должен заканчиваться с _CL |
auth.dcr-immutable-id |
Неизменяемый идентификатор правила сбора данных. | (обязательно) | Начинается с dcr- |
auth.dce-endpoint |
URL-адрес конечной точки сбора данных. | (обязательно) | URL-адрес HTTPS |
Command-line
Настройка Log Analytics с помощью dab configure.
Включение Log Analytics
dab configure \
--runtime.telemetry.azure-log-analytics.enabled true
Установка идентификатора DAB
dab configure \
--runtime.telemetry.azure-log-analytics.dab-identifier my-dab-instance
Установка интервала очистки
dab configure \
--runtime.telemetry.azure-log-analytics.flush-interval-seconds 10
Задайте имя пользовательской таблицы
dab configure \
--runtime.telemetry.azure-log-analytics.auth.custom-table-name DabLogs_CL
Установка неизменяемого идентификатора DCR
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Настройка конечной точки DCE
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dce-endpoint https://my-dce.eastus-1.ingest.monitor.azure.com
Запустить DAB
Запустите DAB с файлом конфигурации:
dab start
Проверьте журналы запуска DAB для:
Azure Log Analytics is enabled.
Принцип работы
Если log Analytics включен, DAB:
- Выполняет проверку подлинности в Azure с помощью управляемого удостоверения узла.
- Группирует записи журнала в пакеты на основе
flush-interval-seconds. - Отправляет журналы в конечную точку сбора данных (DCE).
- DCE направляет журналы через правило сбора данных (DCR) для преобразования.
- DCR загружает журналы в вашу настраиваемую таблицу Log Analytics.
Поток данных
DAB Application
↓
ILogger (ASP.NET Core)
↓
Log Analytics Logger Provider
↓
Managed Identity Authentication
↓
Data Collection Endpoint (DCE)
↓
Data Collection Rule (DCR)
↓
Log Analytics Workspace (Custom Table)
Что фиксируется
| Тип телеметрии | Исходный материал | Примеры |
|---|---|---|
| Следы |
ILogger звонки в DAB |
Журналы запуска, журналы выполнения запросов, предупреждения |
| Errors | Обработка исключений | Ошибки среды выполнения, ошибки конфигурации, ошибки базы данных |
| Сведения о компоненте | Внутренние компоненты DAB | Какой модуль создал журнал |
| Идентификатор экземпляра | Конфигурация |
dab-identifier значение для фильтрации |
Структура журнала
Каждая запись журнала, отправленная в Log Analytics, содержит следующие поля:
| Поле | Тип | Description | Example |
|---|---|---|---|
Time |
datetime | Метка времени (ISO 8601) | 2026-01-27T14:30:00Z |
LogLevel |
струна | Степень серьезности логов |
Information
Warning
Error
|
Message |
струна | Журнал сообщений | Request completed successfully |
Component |
струна | Компонент DAB, создающий журнал | Azure.DataApiBuilder.Service.Startup |
Identifier |
струна | Значение из dab-identifier конфигурации |
my-dab-instance |
Замечание
Настраиваемые столбцы таблицы в Log Analytics добавляют суффиксы: _s для строк, _d для двойных _t , для дат и т. д.
Запрос журналов в Log Analytics
Откройте рабочую область Log Analytics на портале Azure.
Перейдите к журналам и запустите запрос KQL:
DabLogs_CL | where Identifier_s == "my-dab-instance" | where LogLevel_s in ("Warning", "Error") | where TimeGenerated > ago(1h) | project TimeGenerated, LogLevel_s, Message_s, Component_s | order by TimeGenerated desc
Примеры запросов
Подсчет логов по уровню:
DabLogs_CL
| where TimeGenerated > ago(24h)
| summarize Count=count() by LogLevel_s
Поиск ошибок в определенном компоненте:
DabLogs_CL
| where Component_s contains "SqlQueryExecutor"
| where LogLevel_s == "Error"
| project TimeGenerated, Message_s
Рекомендации по производительности и затратам
Поведение пакетной обработки
DAB пакетирует журналы и отправляет их каждый flush-interval-seconds:
- 5 секунд (по умолчанию) — хороший баланс для большинства сценариев.
- 1–2 секунды: ведение журнала почти в режиме реального времени (более высокие вызовы API, более высокая стоимость).
- 10–60 секунд: сокращены вызовы API, но задержка в записи журналов.
Оптимизация затрат
Цены на Log Analytics основаны на:
- Поглощение данных: за ГБ загруженного.
- Хранение данных: за ГБ в месяц после бесплатного пакета.
Сокращение затрат:
- Увеличьте
flush-interval-seconds, чтобы обрабатывать больше журналов одновременно. - Используйте фильтры уровня логов для исключения подробных или избыточных логов. Для получения дополнительной информации см. раздел «Настройка детализации журнала».
- Задайте соответствующее хранение данных в рабочей области Log Analytics.
Пример: фильтрация для уменьшения объема
{
"runtime": {
"telemetry": {
"log-level": {
"Default": "Warning",
"Microsoft": "Error"
},
"azure-log-analytics": {
"enabled": true,
"flush-interval-seconds": 30,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Это отправляет только журналы предупреждений и ошибок , значительно уменьшая объем.
Хранение данных
Хранение данных Log Analytics настраивается для каждой рабочей области:
| Тир | Хранение по умолчанию | Максимальное хранение |
|---|---|---|
| Free tier | 7 дней | 7 дней |
| Pay-as-you-go | 30 дней | 730 дней (2 года) |
Настройка хранения: рабочая область Log Analytics → использование и предполагаемые затраты → хранения данных.
Подсказка
Для обеспечения соответствия требованиям рекомендуется архивировать старые журналы в службу хранилища Azure для долгосрочного хранения.
Устранение неполадок
Журналы не отображаются в Log Analytics
Симптом: DAB запускается успешно, но журналы не отображаются в рабочей области Log Analytics.
Возможные причины:
Неполная конфигурация: проверьте журналы запуска DAB для ошибок, таких как
Logs won't be sent to Azure Log Analytics because the Custom Table Name is not available in the config file.убедитесь, что все обязательные свойства аутентификации:custom-table-name,dcr-immutable-id,dce-endpoint.Управляемое удостоверение не назначено: убедитесь, что управляемое удостоверение включено.
az webapp identity show --name my-app --resource-group my-rgПроверьте распределение ролей с помощьюaz role assignment list --assignee <principal-id> --scope <dcr-id>.Неправильная конечная точка DCE или идентификатор DCR: проверьте формат
https://<dce-name>.<region>-1.ingest.monitor.azure.comконечной точки DCE. Убедитесь, что неизменяемый идентификатор DCR начинается сdcr-.Пользовательская таблица не существует: Пользовательские таблицы должны заканчиваться на
_CL. Схема таблицы должна соответствовать структуре журнала.
Ошибка: интервал "flush" должен быть положительным
Причина: flush-interval-seconds задано значение 0 или отрицательное значение.
Решение. Задайте flush-interval-seconds для положительного целого числа (минимум 1).
Журналы DAB отображают, что Azure Log Analytics является отключенным.
Причина: enabled отсутствует или false отсутствует в конфигурации.
Решение. Задайте enabled: true в конфигурации.
Log Analytics и Application Insights
| Capability | Application Insights | Log Analytics |
|---|---|---|
| Фокус | Мониторинг производительности приложений (APM) | Централизованное агрегирование журналов |
| Язык запросов | KQL | KQL |
| Scope | Одно приложение | Приложения, виртуальные машины, контейнеры, ресурсы Azure |
| Сценарий использования | Производительность, исключения, трассировки | Соответствие, управление, межресурсная корреляция |
| Authentication | строка подключения | Управляемое удостоверение (через DCR/DCE) |
Используйте Application Insights, если вам нужны функции APM, такие как отслеживание запросов, сопоставление зависимостей и профилирование производительности. Используйте Log Analytics, если требуется централизованное ведение журнала в нескольких ресурсах с требованиями к соответствию корпоративным требованиям.