Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide de configuration montre comment configurer Azure Container Apps pour transférer des journaux, des suivis et des métriques vers Elastic à l’aide de l’assistant OpenTelemetry géré.
Pour plus d’informations sur l’agent OpenTelemetry managé, consultez les agents OpenTelemetry dans Azure Container Apps.
Dans ce guide, vous apprendrez comment :
- Créez un jeton d’ingestion élastique.
- Configurez une destination Elastic OTLP à l’aide de Bicep ou du portail Azure.
- Configurez les variables d’environnement d’application requises.
- Appliquez des mises à jour de configuration à votre environnement et application Container Apps existants.
- Vérifiez les données de télémétrie dans Elastic.
Prerequisites
- Un abonnement Azure
- Un compte Elastic et un déploiement ou projet cible qui accepte l’ingestion OTLP.
- Azure CLI installé et connecté à votre compte Azure.
- extension CLI Azure Container Apps installée (pour Bicep).
az extension add --name containerapp --upgrade
Créer un jeton d’ingestion élastique
Créez une clé API élastique qui peut ingérer des données OpenTelemetry pour votre déploiement cible.
Les autorisations requises doivent autoriser l’écriture de données de télémétrie pour ces signaux :
- Journaux d’ingestion et d’écriture
- Ingestion/écriture des suivis
- Ingestion/écriture des métriques
Pour obtenir des conseils sur les autorisations de jeton et les clés API, consultez clés API élastiques.
Configurer des destinations OpenTelemetry
Utilisez l’une des options suivantes pour configurer Elastic en tant que point de terminaison OTel dans votre environnement Container Apps.
Important
La configuration d’une destination OpenTelemetry managée ne produit pas automatiquement de données de télémétrie. Votre application doit déjà être instrumentée pour émettre des traces, des métriques et des logs à l’aide d’un SDK OpenTelemetry.
Définissez les variables CLI pour le déploiement :
$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$ELASTIC_OTLP_ENDPOINT = "https://<YOUR_ELASTIC_ENDPOINT>:443"
$ELASTIC_API_KEY = "<ELASTIC_API_KEY_WITHOUT_PREFIX>"
Utilisez le format de point de terminaison de base OTLP élastique :
https://<YOUR_ELASTIC_ENDPOINT>:443
Utilisez le format d’en-tête du jeton d’autorisation :
- Clé d’en-tête :
Authorization - Valeur d’en-tête :
ApiKey <TOKEN>
Utilisez cet exemple de ressource d’environnement managé pour configurer le routage de destination :
@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
]
}
}
}
}
Utilisez cet exemple de ressource d’application pour définir les variables d’environnement d’application requises :
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'
}
]
}
]
}
}
}
Appliquez votre configuration Bicep à partir de la racine du référentiel :
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"
Votre application conteneur est maintenant configurée pour envoyer des données de télémétrie à Elastic.
Vérifier la télémétrie dans Elastic
Une fois la configuration effectuée, vérifiez que les journaux, les suivis et les métriques proviennent bien de votre application et sont associés à l’identité de service attendue.
Utilisez les vues élastiques qui correspondent à votre flux de travail.
Pour plus d’informations sur l’exploration et l’analyse dans Elastic, consultez la documentation sur l’observabilité élastique.