Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anwendungstelemetrie aufnehmen
Um die Observability-Funktionen in Amazon OpenSearch Service nutzen zu können, müssen Sie Anwendungs-Traces, Protokolle und Metriken aufnehmen. Auf dieser Seite wird die Konfiguration der OpenTelemetry Collector- und OpenSearch Ingestion-Pipelines zur Verarbeitung und Weiterleitung von Telemetriedaten an Amazon Managed Service for OpenSearch Prometheus beschrieben.
OpenTelemetry Konfiguration des Collectors
Der Collector OpenTelemetry (OTel) ist der Einstiegspunkt für die gesamte Anwendungstelemetrie. Es empfängt Daten über OTLP und leitet Traces und Logs an OpenSearch Ingestion weiter, während es Metriken an Prometheus sendet.
Sie können den OTel Collector mit einem der folgenden Ansätze konfigurieren:
Der OTel Collector exportiert mithilfe der SigV4-Authentifizierung Traces und Logs an einen OpenSearch Ingestion-Endpunkt und mithilfe des Prometheus Remote Write Exporter Metriken an Amazon Managed Service for Prometheus. OpenSearch Ingestion kümmert sich um die Verarbeitung, Anreicherung und Weiterleitung an. OpenSearch
OTel Collector-Konfiguration mit Ingestion OpenSearch
Die folgende Beispielkonfiguration verwendet die SigV4-Authentifizierung, um Traces und Logs an einen OpenSearch Ingestion-Endpunkt und Metriken an Prometheus zu exportieren:
extensions: sigv4auth: region:us-west-2service: osis exporters: otlphttp/osis-traces: traces_endpoint: ${OSIS_ENDPOINT}/v1/traces auth: { authenticator: sigv4auth } compression: none otlphttp/osis-logs: logs_endpoint: ${OSIS_ENDPOINT}/v1/logs auth: { authenticator: sigv4auth } compression: none # Amazon Managed Service for Prometheus via Prometheus Remote Write with SigV4 auth prometheusremotewrite/amp: endpoint: "https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write" auth: authenticator: sigv4auth service: extensions: [sigv4auth] pipelines: traces: receivers: [otlp] processors: [batch] exporters: [otlphttp/osis-traces] logs: receivers: [otlp] processors: [batch] exporters: [otlphttp/osis-logs] metrics: receivers: [otlp] processors: [batch] exporters: [prometheusremotewrite/amp]
Anmerkung
Der IAM-Principal, der Daten sendet, benötigt osis:Ingest und aps:RemoteWrite genehmigt den Pipeline-ARN.
Konfiguration von OpenSearch Ingestion-Pipelines
OpenSearch Ingestion (oder selbstverwalteter Data Prepper) empfängt Telemetriedaten vom OTel Collector und verarbeitet sie für die Überwachung der Anwendungsleistung (APM).
Pipeline-Architektur
Die Pipeline verarbeitet Telemetriedaten in den folgenden Phasen:
-
Die Eingangspipeline empfängt alle Telemetriedaten und leitet Protokolle und Traces an separate Sub-Pipelines weiter.
-
Die Protokollpipeline schreibt Protokolldaten OpenSearch unter Verwendung des
log-analytics-plainIndextyps. -
Die Trace-Pipeline verteilt die Spans auf die Rohspeicher-Pipeline und die Service Map-Pipeline.
-
Die unbearbeiteten Trace-Pipeline-Prozesse erstrecken sich über den
otel_tracesProzessor und speichern sie imtrace-analytics-plain-rawIndextyp. -
Die Service Map-Pipeline verwendet den
otel_apm_service_mapProzessor, um Topologie- und RED-Metriken (Rate, Errors, Duration) zu generieren. Es schreibt per Fernschreiben zu OpenSearch und zu Prometheus.
Pipeline-Konfiguration
Das folgende Beispiel zeigt eine vollständige Pipeline-Konfiguration für OpenSearch Ingestion, die alle Arten von Beobachtbarkeitssignalen abdeckt — Logs, Traces und Metriken. Sie können alle Pipelines oder nur die Pipelines einbeziehen, die für Ihren Anwendungsfall relevant sind. Ersetzen Sie die placeholder Werte durch Ihre eigenen Informationen.
version: '2' # Main OTLP pipeline - receives all telemetry and routes by signal type otlp-pipeline: source: otlp: logs_path: '/pipeline-name/v1/logs' traces_path: '/pipeline-name/v1/traces' metrics_path: '/pipeline-name/v1/metrics' route: - logs: 'getEventType() == "LOG"' - traces: 'getEventType() == "TRACE"' - metrics: 'getEventType() == "METRIC"' processor: [] sink: - pipeline: name: otel-logs-pipeline routes: - logs - pipeline: name: otel-traces-pipeline routes: - traces - pipeline: name: otel-metrics-pipeline routes: - metrics # Log processing pipeline otel-logs-pipeline: source: pipeline: name: otlp-pipeline processor: - copy_values: entries: - from_key: "time" to_key: "@timestamp" sink: - opensearch: hosts: - 'https://opensearch-endpoint' index_type: log-analytics-plain aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" # Trace fan-out pipeline otel-traces-pipeline: source: pipeline: name: otlp-pipeline processor: [] sink: - pipeline: name: traces-raw-pipeline routes: [] - pipeline: name: service-map-pipeline routes: [] # Raw trace storage pipeline traces-raw-pipeline: source: pipeline: name: otel-traces-pipeline processor: - otel_traces: sink: - opensearch: hosts: - 'https://opensearch-endpoint' index_type: trace-analytics-plain-raw aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" # Service map generation pipeline (APM) service-map-pipeline: source: pipeline: name: otel-traces-pipeline processor: - otel_apm_service_map: group_by_attributes: - telemetry.sdk.language # Add any resource attribute to group by window_duration: 30s route: - otel_apm_service_map_route: 'getEventType() == "SERVICE_MAP"' - service_processed_metrics: 'getEventType() == "METRIC"' sink: - opensearch: hosts: - 'https://opensearch-endpoint' aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" routes: - otel_apm_service_map_route index_type: otel-v2-apm-service-map - prometheus: url: 'https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write' aws: region: 'region' routes: - service_processed_metrics # Metrics processing pipeline otel-metrics-pipeline: source: pipeline: name: otlp-pipeline processor: - otel_metrics: sink: - prometheus: url: 'https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write' aws: region: 'region'
Die Einnahme wird überprüft
Nachdem Sie den OTel Collector und die Pipelines konfiguriert haben, stellen Sie sicher, dass die Telemetriedaten korrekt übertragen werden.
-
OpenSearch Indizes überprüfen — Stellen Sie sicher, dass die folgenden Indizes in Ihrer Domain vorhanden sind:
otel-v1-apm-span-*, und.otel-v2-apm-service-maplogs-otel-v1-* -
Prometheus-Ziele verifizieren — Stellen Sie sicher, dass das Prometheus-Remote-Write-Ziel Metriken von der Service Map-Pipeline empfängt.
-
In der OpenSearch Benutzeroberfläche verifizieren — Navigieren Sie zu Observability und dann zu Application Monitoring, um zu überprüfen, ob Ihre Services angezeigt werden.
Nächste Schritte
Nachdem Sie überprüft haben, ob Telemetriedaten aufgenommen wurden, sollten Sie sich mit den folgenden Themen befassen:
-
Anwendungsüberwachung— Überwachen Sie den Zustand von Anwendungen mithilfe von Service Maps und RED-Metriken.
-
Spuren entdecken — Entdecken und analysieren Sie verteilte Traces.
-
Protokolle entdecken — Anwendungsprotokolle entdecken und abfragen.
-
Metriken entdecken — Entdecken und fragen Sie Prometheus-Metriken mit PromQL ab.