openTelemetry Elastic'i Azure Container Apps'da dışarı aktarma

Bu yapılandırma kılavuzu, yönetilen OpenTelemetry aracısını kullanarak günlükleri, izlemeleri ve ölçümleri Elastik'e iletmek için Azure Container Apps yapılandırmayı gösterir.

Yönetilen OpenTelemetry aracısı hakkında daha fazla bilgi için bkz. Azure Container Apps'teki OpenTelemetry aracıları.

Bu kılavuzda şunların nasıl yapıldığını öğrenirsiniz:

  • Elastik alma belirteci oluşturun.
  • Bicep veya Azure portalını kullanarak Elastik OTLP hedefini yapılandırın.
  • Gerekli uygulama ortamı değişkenlerini yapılandırın.
  • Yapılandırma güncelleştirmelerini mevcut Container Apps ortamınıza ve uygulamanıza uygulayın.
  • Elastik'te telemetriyi denetleyin.

Prerequisites

  • Azure aboneliği
  • OTLP alımını kabul eden bir Elastic hesabı ve hedef dağıtım veya proje.
  • Azure CLI'nin yüklü olması ve Azure hesabınızda oturum açılmış olması.
  • Azure Container Apps CLI uzantısı yüklendi (Bicep için).
az extension add --name containerapp --upgrade

Elastic içe aktarma belirteci oluşturun

Hedef dağıtımınız için OpenTelemetry verilerini alabilen bir Elastik API anahtarı oluşturun.

Gerekli izinler, şu sinyaller için telemetri verilerinin yazılmasına izin vermelidir:

  • Günlükler içe aktarma/yazma
  • Alma/yazma izlemeleri
  • Metrik alımı/yazımı

Belirteç izinleri ve API anahtarları hakkında sağlayıcı kılavuzu için bkz . Elastik API anahtarları.

OpenTelemetry hedeflerini yapılandırma

Container Apps ortamınızda Elastik'i OTel uç noktası olarak yapılandırmak için aşağıdaki seçeneklerden birini kullanın.

Important

Yönetilen bir OpenTelemetry hedefini yapılandırmak otomatik olarak telemetri üretmez. Uygulamanızın, OpenTelemetry SDK’sı kullanılarak izler, ölçümler ve günlükler üretecek şekilde zaten yapılandırılmış olması gerekir.

Dağıtım için CLI değişkenlerini ayarlayın:

$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$ELASTIC_OTLP_ENDPOINT = "https://<YOUR_ELASTIC_ENDPOINT>:443"
$ELASTIC_API_KEY = "<ELASTIC_API_KEY_WITHOUT_PREFIX>"

Elastik OTLP temel uç nokta biçimini kullanın:

  • https://<YOUR_ELASTIC_ENDPOINT>:443

Yetkilendirme belirteci başlığı biçimini kullanın:

  • Üst bilgi anahtarı: Authorization
  • Üst bilgi değeri: ApiKey <TOKEN>

Hedef yönlendirmeyi yapılandırmak için bu yönetilen ortam kaynak örneğini kullanın:

@secure()
param elasticApiKey string
param elasticOtlpEndpoint string = 'https://<YOUR_ELASTIC_ENDPOINT>:443'

var elasticDestinationName = 'elastic-otlp'
var elasticAuthHeaderValue = 'ApiKey ${elasticApiKey}'

resource environment 'Microsoft.App/managedEnvironments@2026-03-02-preview' = {
  name: '<MANAGED_ENVIRONMENT_NAME>'
  location: '<REGION>'
  properties: {
    openTelemetryConfiguration: {
      destinationsConfiguration: {
        otlpConfigurations: [
          {
            name: elasticDestinationName
            endpoint: elasticOtlpEndpoint
            protocol: 'http'
            insecure: false
            headers: [
              {
                key: 'Authorization'
                value: elasticAuthHeaderValue
              }
            ]
          }
        ]
      }
      tracesConfiguration: {
        destinations: [
          elasticDestinationName
        ]
      }
      logsConfiguration: {
        destinations: [
          elasticDestinationName
        ]
      }
      metricsConfiguration: {
        destinations: [
          elasticDestinationName
        ]
      }
    }
  }
}

Gerekli uygulama ortamı değişkenlerini ayarlamak için bu uygulama kaynağı örneğini kullanın:

resource app 'Microsoft.App/containerApps@2023-05-01' = {
  name: '<CONTAINER_APP_NAME>'
  location: '<REGION>'
  properties: {
    managedEnvironmentId: environment.id
    template: {
      containers: [
        {
          name: '<CONTAINER_NAME>'
          image: '<IMAGE_NAME>'
          env: [
            {
              name: 'OTEL_SERVICE_NAME'
              value: '<SERVICE_NAME>'
            }
            {
              name: 'OTEL_TRACES_EXPORTER'
              value: 'otlp'
            }
            {
              name: 'OTEL_METRICS_EXPORTER'
              value: 'otlp'
            }
            {
              name: 'OTEL_LOGS_EXPORTER'
              value: 'otlp'
            }
            {
              name: 'OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE'
              value: 'cumulative'
            }
          ]
        }
      ]
    }
  }
}

Bicep yapılandırmanızı deponun kök dizininden uygulayın:

az deployment group create `
  --resource-group $RESOURCE_GROUP `
  --template-file infra/main.bicep `
  --parameters @infra/main.parameters.json `
  --parameters elasticOtlpEndpoint="$ELASTIC_OTLP_ENDPOINT" `
  --parameters elasticApiKey="$ELASTIC_API_KEY"

Kapsayıcı Uygulamanız artık Elastik'e telemetri gönderecek şekilde yapılandırıldı.

Elastik'te telemetriyi denetleme

Yapılandırmadan sonra günlüklerin, izlemelerin ve ölçümlerin uygulamanızdan gelip gelmediğini denetleyin ve beklenen hizmet kimliğiyle eşleyin.

İş akışınıza uygun Elastik görünümleri kullanın.

Elastic'de keşif ve analiz hakkında daha fazla bilgi için Bkz. Elastik Gözlemlenebilirlik belgeleri.