Export OpenTelemetry do Elastic v Azure Container Apps

Tento průvodce konfigurací ukazuje, jak nakonfigurovat Azure Container Apps pro předávání protokolů, trasování a metrik do Elastic pomocí spravovaného agenta OpenTelemetry.

Další informace o spravovaném agentovi OpenTelemetry najdete v tématu AgentiOpenTelemetry v Azure Container Apps.

V této příručce se naučíte:

  • Vytvořte token pro ingest v Elasticu.
  • Nakonfigurujte cíl elastického OTLP pomocí Bicep nebo portálu Azure.
  • Nakonfigurujte požadované proměnné prostředí aplikace.
  • Použijte aktualizace konfigurace pro stávající prostředí a aplikaci Container Apps.
  • Zkontrolujte telemetrii v Elastic.

Předpoklady

  • Předplatné Azure
  • Účet Elastic a cílové nasazení nebo projekt, které podporují příjem dat přes OTLP.
  • Azure CLI nainstalovaný a přihlášený k vašemu účtu Azure.
  • Nainstalované rozšíření rozhraní příkazového řádku pro Azure Container Apps (pro Bicep).
az extension add --name containerapp --upgrade

Vytvořit ingest token Elastic

Vytvořte klíč elastického rozhraní API, který může ingestovat data OpenTelemetry pro vaše cílové nasazení.

Požadovaná oprávnění by měla umožňovat zápis telemetrických dat pro tyto signály:

  • Protokoly – příjem/zápis
  • Trasování ingestování/zápisu
  • Ingestování a zápis metrik

Pokyny k oprávněním zprostředkovatele a klíčům rozhraní API najdete v tématu Klíče elastického rozhraní API.

Konfigurace cílů OpenTelemetry

Pomocí jedné z následujících možností nakonfigurujte Elastic jako koncový bod OTel ve vašem prostředí Container Apps.

Important

Konfigurace spravovaného cíle OpenTelemetry automaticky nevede k vytváření telemetrie. Vaše aplikace už musí být instrumentována tak, aby pomocí sady OpenTelemetry SDK odesílala trasy, metriky a logy.

Nastavte proměnné rozhraní příkazového řádku pro nasazení:

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

Použijte formát základního koncového bodu Elastic OTLP:

  • https://<YOUR_ELASTIC_ENDPOINT>:443

Použijte formát hlavičky autorizačního tokenu:

  • Klíč záhlaví: Authorization
  • Hodnota záhlaví: ApiKey <TOKEN>

Pomocí tohoto příkladu prostředku spravovaného prostředí nakonfigurujte cílové směrová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
        ]
      }
    }
  }
}

Pomocí tohoto příkladu prostředku aplikace můžete nastavit požadované proměnné prostředí aplikace:

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'
            }
          ]
        }
      ]
    }
  }
}

Použijte konfiguraci Bicep z kořenového adresáře úložiště:

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"

Vaše aplikace kontejneru je teď nakonfigurovaná tak, aby odesílala telemetrická data do Elastic.

Kontrola telemetrie v Elastic

Po konfiguraci zkontrolujte, že logy, trasy a metriky přicházejí z aplikace a odpovídají očekávané identitě služby.

Použijte elastická zobrazení, která odpovídají vašemu pracovnímu postupu.

Další informace o zkoumání a analýze v Elastic najdete v dokumentaci k elastické pozorovatelnosti.