Конфигурация панели мониторинга
Панель мониторинга настраивается при запуске. Конфигурация включает интерфейсные и OpenTelemetry адреса протокола OTLP, конечную точку службы ресурсов, проверку подлинности, ограничения телеметрии и многое другое.
Когда панель мониторинга запускается с помощью проекта узла приложения .NET.NET Aspire, она автоматически настраивается для отображения ресурсов и телеметрии приложения. Конфигурация предоставляется при запуске панели мониторинга в автономном режиме .
Существует множество способов предоставления конфигурации:
- Аргументы командной строки.
- Переменные среды. Разделитель
:
должен быть заменен двойным подчеркиванием (__
) в именах переменных среды. - Необязательный файл конфигурации JSON. Параметр
DOTNET_DASHBOARD_CONFIG_FILE_PATH
можно использовать для указания файла конфигурации JSON.
Рассмотрим следующий пример, в котором показано, как настроить панель мониторинга при запуске из контейнера Docker:
docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard \
-e DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT='1000' \
-e DASHBOARD__TELEMETRYLIMITS__MAXTRACECOUNT='1000' \
-e DASHBOARD__TELEMETRYLIMITS__MAXMETRICSCOUNT='1000' \
mcr.microsoft.com/dotnet/aspire-dashboard:9.0
Кроме того, эти же значения можно настроить с помощью файла конфигурации JSON, указанного с помощью DOTNET_DASHBOARD_CONFIG_FILE_PATH
:
{
"Dashboard": {
"TelemetryLimits": {
"MaxLogCount": 1000,
"MaxTraceCount": 1000,
"MaxMetricsCount": 1000
}
}
}
Важный
На панели мониторинга отображаются сведения о ресурсах, включая их конфигурацию, журналы консоли и подробные данные телеметрии.
Данные, отображаемые на панели мониторинга, могут быть конфиденциальными. Например, секреты в переменных среды и конфиденциальные данные среды выполнения в телеметрии. Необходимо учесть, чтобы настроить панель мониторинга для безопасного доступа.
Дополнительные сведения см. в безопасности панели мониторинга.
Заметка
Конфигурация, описанная на этой странице, предназначена для автономной панели мониторинга. Сведения о настройке проекта узла приложения
Общая конфигурация
Проверка подлинности внешнего интерфейса
Проверка подлинности интерфейсной конечной точки панели мониторинга настроена с Dashboard:Frontend:AuthMode
. Интерфейс можно защитить с помощью OpenID Connect (OIDC) или проверки подлинности маркера браузера.
Проверка подлинности маркера браузера работает интерфейсной частью, запрашивая маркер. Маркер можно ввести в пользовательский интерфейс или в качестве значения строки запроса на страницу входа. Например, https://localhost:1234/login?t=TheToken
. Когда маркер успешно прошел проверку подлинности, cookie сохраняется в браузере, а браузер перенаправляется в приложение.
Выбор | Значение по умолчанию | Описание |
---|---|---|
Dashboard:Frontend:AuthMode |
BrowserToken |
Можно задать значение BrowserToken , OpenIdConnect или Unsecured .
Unsecured следует использовать только во время локальной разработки. Не рекомендуется размещать панель мониторинга публично или в других параметрах. |
Dashboard:Frontend:BrowserToken |
null |
Указывает маркер браузера. Если маркер браузера не указан, панель мониторинга создает ее. Средства, которые хотят автоматизировать вход с помощью проверки подлинности маркера браузера, могут указать маркер и открыть браузер с маркером в строке запроса. При каждом запуске панели мониторинга необходимо создать новый маркер. |
Dashboard:Frontend:OpenIdConnect:NameClaimType |
name |
Указывает один или несколько типов утверждений, которые должны использоваться для отображения полного имени пользователя, прошедшего проверку подлинности. Может быть одним типом утверждений или списком типов утверждений с разделителями-запятыми. |
Dashboard:Frontend:OpenIdConnect:UsernameClaimType |
preferred_username |
Указывает один или несколько типов утверждений, которые должны использоваться для отображения имени пользователя, прошедшего проверку подлинности. Может быть одним типом утверждений или списком типов утверждений с разделителями-запятыми. |
Dashboard:Frontend:OpenIdConnect:RequiredClaimType |
null |
Указывает утверждение, которое должно присутствовать для авторизованных пользователей. Авторизация завершается ошибкой без этого утверждения. Это значение является необязательным. |
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue |
null |
Указывает значение требуемого утверждения. Используется только в том случае, если Dashboard:Frontend:OpenIdConnect:RequireClaimType также указан. Это значение является необязательным. |
Authentication:Schemes:OpenIdConnect:Authority |
null |
URL-адрес поставщика удостоверений (IdP). |
Authentication:Schemes:OpenIdConnect:ClientId |
null |
Удостоверение проверяющей стороны (RP). |
Authentication:Schemes:OpenIdConnect:ClientSecret |
null |
Секрет, который будет знать только настоящий RP. |
Другие свойства OpenIdConnectOptions | null |
Значения внутри раздела конфигурации Authentication:Schemes:OpenIdConnect:* привязаны к OpenIdConnectOptions , например Scope . |
Заметка
Дополнительная конфигурация может потребоваться при использовании OpenIdConnect
в качестве режима проверки подлинности за обратным прокси-сервером, который завершает SSL. Проверьте, нужно ли задать ASPNETCORE_FORWARDEDHEADERS_ENABLED
значение true
.
Дополнительные сведения см. в разделе Настройка ASP.NET Core для работы с прокси-серверами и подсистемами балансировки нагрузки.
Проверка подлинности OTLP
Проверка подлинности конечной точки OTLP настроена с Dashboard:Otlp:AuthMode
. Конечную точку OTLP можно защитить с помощью ключа API или сертификата клиента проверки подлинности.
Проверка подлинности ключа API выполняется путем требования к каждому запросу OTLP иметь допустимое значение заголовка x-otlp-api-key
. Он должен соответствовать первичному или вторичному ключу.
Выбор | Значение по умолчанию | Описание |
---|---|---|
Dashboard:Otlp:AuthMode |
Unsecured |
Можно задать значение ApiKey , Certificate или Unsecured .
Unsecured следует использовать только во время локальной разработки. Не рекомендуется размещать панель мониторинга публично или в других параметрах. |
Dashboard:Otlp:PrimaryApiKey |
null |
Указывает первичный ключ API. Ключ API может быть любым текстом, но рекомендуется использовать значение не менее 128 бит энтропии. Это значение необходимо, если режим проверки подлинности является ключом API. |
Dashboard:Otlp:SecondaryApiKey |
null |
Указывает дополнительный ключ API. Ключ API может быть любым текстом, но рекомендуется использовать значение не менее 128 бит энтропии. Это значение является необязательным. Если указан второй ключ API, входящий x-otlp-api-key значение заголовка может соответствовать первичному или вторичному ключу. |
OTLP CORS
Общий доступ к ресурсам между источниками (CORS) можно настроить, чтобы разрешить приложениям браузера отправлять данные телеметрии на панель мониторинга.
По умолчанию приложения браузера ограничены выполнением междоменных вызовов API. Это влияет на отправку телеметрии на панель мониторинга, так как панель мониторинга и приложение браузера всегда находятся в разных доменах. Чтобы настроить CORS, используйте раздел Dashboard:Otlp:Cors
и укажите допустимые источники и заголовки:
{
"Dashboard": {
"Otlp": {
"Cors": {
"AllowedOrigins": "http://localhost:5000,https://localhost:5001"
}
}
}
}
Рассмотрим следующие параметры конфигурации:
Выбор | Значение по умолчанию | Описание |
---|---|---|
Dashboard:Otlp:Cors:AllowedOrigins |
null |
Указывает допустимые источники для CORS. Это строка с разделителями-запятыми и может включать подстановочный знак * , чтобы разрешить любой домен. Этот параметр является необязательным и можно задать с помощью переменной среды DASHBOARD__OTLP__CORS__ALLOWEDORIGINS . |
Dashboard:Otlp:Cors:AllowedHeaders |
null |
Строка с разделителями-запятыми, представляющая разрешенные заголовки для CORS. Этот параметр является необязательным и можно задать с помощью переменной среды DASHBOARD__OTLP__CORS__ALLOWEDHEADERS . |
Заметка
Панель мониторинга поддерживает только метод POST
для отправки данных телеметрии и не разрешает настройку разрешенных методов (Access-Control-Allow-Methods
) для CORS.
Ресурсы
Панель мониторинга подключается к службе ресурсов для загрузки и отображения сведений о ресурсах. Клиент настроен на панели мониторинга для подключения к службе.
Проверка подлинности клиента службы ресурсов настраивается с Dashboard:ResourceServiceClient:AuthMode
. Клиент можно настроить для поддержки ключа API или проверки подлинности сертификата клиента.
Выбор | Значение по умолчанию | Описание |
---|---|---|
Dashboard:ResourceServiceClient:Url |
null |
Конечная точка gRPC, к которой панель мониторинга подключается для своих данных. Если это значение не указано, панель мониторинга отображает данные телеметрии, но нет списка ресурсов или журналов консоли. |
Dashboard:ResourceServiceClient:AuthMode |
null |
Можно задать значение ApiKey , Certificate или Unsecured .
Unsecured следует использовать только во время локальной разработки. Не рекомендуется размещать панель мониторинга публично или в других параметрах. Это значение необходимо, если указан URL-адрес службы ресурсов. |
Dashboard:ResourceServiceClient:ApiKey |
null |
API для отправки в службу ресурсов в заголовке x-resource-service-api-key . Это значение необходимо, если режим проверки подлинности является ключом API. |
Dashboard:ResourceServiceClient:ClientCertificate:Source |
null |
Можно задать значение File или KeyStore . Это значение необходимо, если режим проверки подлинности является сертификатом клиента. |
Dashboard:ResourceServiceClient:ClientCertificate:FilePath |
null |
Путь к файлу сертификата. Это значение необходимо, если источник File . |
Dashboard:ResourceServiceClient:ClientCertificate:Password |
null |
Пароль для файла сертификата. Это значение является необязательным. |
Dashboard:ResourceServiceClient:ClientCertificate:Subject |
null |
Субъект сертификата. Это значение необходимо, если источник KeyStore . |
Dashboard:ResourceServiceClient:ClientCertificate:Store |
My |
Сертификат StoreName. |
Dashboard:ResourceServiceClient:ClientCertificate:Location |
CurrentUser |
Сертификат StoreLocation. |
Ограничения телеметрии
Данные телеметрии хранятся в памяти. Чтобы избежать чрезмерного использования памяти, панель мониторинга имеет ограничения на количество и размер хранимой телеметрии. Когда достигнуто ограничение количества, добавляется новая телеметрия, а самая старая телеметрия удаляется. По достижении предельного размера данные усечены до предела.
Ограничения телеметрии имеют разные области в зависимости от типа телеметрии:
-
MaxLogCount
иMaxTraceCount
совместно используются между ресурсами. Например,MaxLogCount
значение 5000 настраивает панель мониторинга для хранения до 5000 общих записей журнала для всех ресурсов. -
MaxMetricsCount
— это ресурс. Например,MaxMetricsCount
значение 10 000 настраивает панель мониторинга для хранения до 10 000 точек данных на ресурс.
Выбор | Значение по умолчанию | Описание |
---|---|---|
Dashboard:TelemetryLimits:MaxLogCount |
10,000 | Максимальное количество записей журнала. Ограничение совместно используется между ресурсами. |
Dashboard:TelemetryLimits:MaxTraceCount |
10,000 | Максимальное количество трассировок журналов. Ограничение совместно используется между ресурсами. |
Dashboard:TelemetryLimits:MaxMetricsCount |
50,000 | Максимальное количество точек данных метрик. Ограничение равно каждому ресурсу. |
Dashboard:TelemetryLimits:MaxAttributeCount |
128 | Максимальное количество атрибутов телеметрии. |
Dashboard:TelemetryLimits:MaxAttributeLength |
null |
Максимальная длина атрибутов. |
Dashboard:TelemetryLimits:MaxSpanEventCount |
null |
Максимальное количество событий в атрибутах диапазона. |
Другой
Выбор | Значение по умолчанию | Описание |
---|---|---|
Dashboard:ApplicationName |
Aspire |
Имя приложения, отображаемое в пользовательском интерфейсе. Это применяется только в том случае, если URL-адрес службы ресурсов не указан. Если служба ресурсов существует, служба указывает имя приложения. |
Дальнейшие действия
вопросы безопасности для запуска .NET.NET Aspire панели мониторинга
.NET Aspire