Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Konfigurationshandbuch wird gezeigt, wie Sie Azure Container Apps so konfigurieren, dass Protokolle, Ablaufverfolgungen und Metriken mithilfe des verwalteten OpenTelemetry-Agents an Elastic weitergeleitet werden.
Weitere Informationen zum verwalteten OpenTelemetry-Agent finden Sie unter OpenTelemetry-Agents in Azure Container Apps.
In diesem Leitfaden werden Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie ein Elastic Ingest-Token.
- Konfigurieren Sie ein Elastic OTLP-Ziel mithilfe von Bicep oder dem Azure-Portal.
- Konfigurieren Sie erforderliche App-Umgebungsvariablen.
- Wenden Sie Konfigurationsupdates auf Ihre vorhandene Container-Apps-Umgebung und -App an.
- Überprüfen Sie Telemetrie in Elastic.
Voraussetzungen
- Ein Azure-Abonnement
- Ein Elastic-Konto und ein Ziel für die Bereitstellung oder ein Projekt, das das Einbinden von OTLP akzeptiert.
- Azure CLI installiert und bei Ihrem Azure Konto angemeldet.
- Azure Container Apps CLI-Erweiterung installiert (für Bicep).
az extension add --name containerapp --upgrade
Elastic-Ingest-Token erstellen
Erstellen Sie einen Elastic API-Schlüssel, mit dem OpenTelemetry-Daten für Ihr Ziel-Deployment erfasst werden können.
Die erforderlichen Berechtigungen sollten das Schreiben von Telemetriedaten für diese Signale zulassen:
- Protokolle aufnehmen/schreiben
- Traces einbinden/schreiben
- Metriken erfassen/schreiben
Anleitungen zu Tokenberechtigungen und API-Schlüsseln finden Sie unter Elastic API Keys.
Konfigurieren von OpenTelemetry-Zielen
Verwenden Sie eine der folgenden Optionen, um Elastic als OTel-Endpunkt in Ihrer Container-Apps-Umgebung zu konfigurieren.
Important
Das Konfigurieren eines verwalteten OpenTelemetry-Ziels erzeugt nicht automatisch Telemetrie. Ihre Anwendung muss bereits so instrumentiert sein, dass sie Traces, Metriken und Protokolle über ein OpenTelemetry SDK ausgibt.
Festlegen von CLI-Variablen für die Bereitstellung:
$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$ELASTIC_OTLP_ENDPOINT = "https://<YOUR_ELASTIC_ENDPOINT>:443"
$ELASTIC_API_KEY = "<ELASTIC_API_KEY_WITHOUT_PREFIX>"
Verwenden Sie das Elastic OTLP-Basisendpunktformat:
https://<YOUR_ELASTIC_ENDPOINT>:443
Verwenden Sie das Header-Format des Autorisierungstokens:
- Kopfzeilentaste:
Authorization - Headerwert:
ApiKey <TOKEN>
Verwenden Sie dieses Beispiel für verwaltete Umgebung zum Konfigurieren des Zielroutings:
@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
]
}
}
}
}
Verwenden Sie dieses App-Ressourcenbeispiel, um erforderliche App-Umgebungsvariablen festzulegen:
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'
}
]
}
]
}
}
}
Wenden Sie Ihre Bicep-Konfiguration über das Stammverzeichnis des Repositorys an:
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"
Ihre Container-App ist jetzt so konfiguriert, dass Telemetrie an Elastic gesendet wird.
Überprüfen der Telemetrie in Elastic
Überprüfen Sie nach der Konfiguration, ob Protokolle, Traces und Metriken aus Ihrer Anwendung eingehen und der erwarteten Dienstidentität zugeordnet werden.
Verwenden Sie die elastischen Ansichten, die Ihrem Workflow entsprechen.
Weitere Informationen zur Untersuchung und Analyse in Elastic finden Sie in der Dokumentation zu Elastic Observability.