1. Vue d'ensemble #
Une solution intégrée à Kibana.
Les applications #
| Application | Usage |
|---|---|
| Logs (Discover, Logs Explorer) | Recherche et analyse des logs, catégorisation automatique |
| Infrastructure | Inventaire des hôtes, conteneurs et pods avec leurs métriques |
| APM | Services, transactions, erreurs, traces et carte des services |
| Synthetics / Uptime | Tests planifiés (HTTP, navigateur) et disponibilité |
| SLO | Objectifs de service et budgets d'erreur |
| AI Assistant | Aide à l'analyse (selon licence et configuration) |
2. Elastic Agent et Fleet #
Un agent unique, géré centralement.
Principe #
Elastic Agent remplace les différents Beats par un agent unique. Il est piloté depuis Kibana par Fleet : on définit des politiques composées d'intégrations (System, Nginx, PostgreSQL, Kubernetes...), et les agents les appliquent automatiquement.
# Commande fournie par Kibana (Fleet > Add agent), de la forme :
sudo ./elastic-agent install --url=https://fleet.example.org:8220 --enrollment-token=<jeton>Chaque intégration crée ses data streams (par exemple logs-nginx.access-default, metrics-system.cpu-default), ses pipelines d'ingestion et ses dashboards prêts à l'emploi.
Bonne Pratique : La conventiontype-dataset-namespacepermet de donner des droits et une rétention par namespace (par exempleproductionetstaging).
3. APM et OpenTelemetry #
Traces et performance applicative.
Instrumenter #
Elastic APM accepte les agents Elastic historiques (Java, .NET, Node.js, Python, Go, PHP, Ruby) et OpenTelemetry. Elastic publie ses distributions OpenTelemetry (EDOT) et recommande désormais cette voie.
# Exemple : application Java avec l'agent OpenTelemetry vers Elastic (OTLP)
export OTEL_SERVICE_NAME=checkout
export OTEL_EXPORTER_OTLP_ENDPOINT=https://apm.example.org
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey <cle>"
export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=production
java -javaagent:opentelemetry-javaagent.jar -jar checkout.jarL'application APM affiche par service le débit, la latence, le taux d'erreurs, les transactions les plus lentes, les traces et la carte des services construite à partir des appels observés.
Synthetics #
// journeys/panier.journey.ts (projet Synthetics, Playwright)
import { journey, step, expect } from '@elastic/synthetics';
journey('Ajout au panier', ({ page }) => {
step('Accueil', async () => { await page.goto('https://boutique.example.org'); });
step('Ajouter', async () => {
await page.click('text=Ajouter au panier');
expect(await page.isVisible('text=1 article')).toBeTruthy();
});
});