Deteksi anomali dengan Amazon Ingestion OpenSearch - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Deteksi anomali dengan Amazon Ingestion OpenSearch

Anda dapat menggunakan Amazon OpenSearch Ingestion untuk melatih model dan menghasilkan anomali hampir real-time pada peristiwa gabungan timeseries. Anda dapat menghasilkan anomali baik pada peristiwa yang dihasilkan dalam pipeline, atau pada peristiwa yang datang langsung ke pipeline, seperti OpenTelemetry metrik.

Anda dapat memasukkan peristiwa timeseries gabungan jendela jatuh ini ke prosesor detektor Anomali, yang melatih model dan menghasilkan anomali dengan skor nilai. Kemudian, tulis anomali ke indeks terpisah untuk membuat monitor dokumen dan memicu peringatan cepat.

Selain contoh-contoh ini, Anda juga dapat menggunakan pipeline anomali Log to metric dan Trace to metric anomaly pipeline blueprints. Untuk informasi selengkapnya tentang cetak biru, lihat Menggunakan cetak biru untuk membuat pipeline.

Metrik dari log

Pipeline berikut menerima log melalui sumber HTTP seperti FluentBit, mengekstrak nilai-nilai penting dari log dengan mencocokkan nilai dalam log kunci terhadap pola log Apache umum grok, dan kemudian meneruskan log grokked ke kedua log-to-metrics-pipeline sub-pipeline, serta ke indeks bernama. OpenSearch logs

log-to-metrics-pipelineSub-pipeline menerima log grokked dari apache-log-pipeline-with-metrics sub-pipeline, menggabungkannya, dan memperoleh metrik histogram berdasarkan nilai dalam dan kunci. clientip request Kemudian mengirimkan metrik histogram ke OpenSearch indeks bernamahistogram_metrics, serta ke sub-pipeline. log-to-metrics-anomaly-detector

log-to-metrics-anomaly-detector-pipelineSub-pipeline menerima metrik histogram agregat dari log-to-metrics-pipeline sub-pipeline dan mengirimkannya ke prosesor detektor Anomali untuk mendeteksi anomali menggunakan algoritma Random Cut Forest. Jika mendeteksi anomali, ia mengirimkannya ke indeks bernama OpenSearch . log-metric-anomalies

version: "2" apache-log-pipeline-with-metrics: source: http: # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline. # In this case it would be "/apache-log-pipeline-with-metrics/logs". This will be the FluentBit output URI value. path: "/${pipelineName}/logs" processor: - grok: match: log: [ "%{COMMONAPACHELOG_DATATYPED}" ] sink: - opensearch: ... index: "logs" - pipeline: name: "log-to-metrics-pipeline" log-to-metrics-pipeline: source: pipeline: name: "apache-log-pipeline-with-metrics" processor: - aggregate: # Specify the required identification keys identification_keys: ["clientip", "request"] action: histogram: # Specify the appropriate values for each the following fields key: "bytes" record_minmax: true units: "bytes" buckets: [0, 25000000, 50000000, 75000000, 100000000] # Pick the required aggregation period group_duration: "30s" sink: - opensearch: ... index: "histogram_metrics" - pipeline: name: "log-to-metrics-anomaly-detector-pipeline" log-to-metrics-anomaly-detector-pipeline: source: pipeline: name: "log-to-metrics-pipeline" processor: - anomaly_detector: # Specify the key on which to run anomaly detection keys: [ "bytes" ] mode: random_cut_forest: sink: - opensearch: ... index: "log-metric-anomalies"

Metrik dari jejak

Anda dapat memperoleh metrik dari jejak dan menemukan anomali dalam metrik yang dihasilkan ini. Dalam contoh ini, entry-pipeline sub-pipeline menerima data jejak dari OpenTelemetry Kolektor dan meneruskannya ke sub-pipeline berikut:

  • span-pipeline— Ekstrak bentang mentah dari jejak. Ini mengirimkan bentang mentah ke indeks apa pun yang OpenSearch diawali dengan. otel-v1-apm-span

  • service-map-pipeline— Mengagregat dan menganalisisnya untuk membuat dokumen yang mewakili koneksi antar layanan. Ini mengirimkan dokumen-dokumen ini ke OpenSearch indeks bernamaotel-v1-apm-service-map. Anda kemudian dapat melihat visualisasi peta layanan melalui plugin Trace Analytics untuk OpenSearch Dasbor.

  • trace-to-metrics-pipeline-—Mengagregat dan menurunkan metrik histogram dari jejak berdasarkan nilai. serviceName Kemudian mengirimkan metrik turunan ke OpenSearch indeks bernamametrics_for_traces, serta ke trace-to-metrics-anomaly-detector-pipeline sub-pipeline.

trace-to-metrics-anomaly-detector-pipelineSub-pipeline menerima metrik histogram agregat dari trace-to-metrics-pipeline dan mengirimkannya ke prosesor detektor Anomali untuk mendeteksi anomali menggunakan algoritma Random Cut Forest. Jika mendeteksi anomali, ia mengirimkannya ke indeks bernama OpenSearch. trace-metric-anomalies

version: "2" entry-pipeline: source: otel_trace_source: # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline. # In this case it would be "/entry-pipeline/v1/traces". This will be endpoint URI path in OpenTelemetry Exporter # configuration. # path: "/${pipelineName}/v1/traces" processor: - trace_peer_forwarder: sink: - pipeline: name: "span-pipeline" - pipeline: name: "service-map-pipeline" - pipeline: name: "trace-to-metrics-pipeline" span-pipeline: source: pipeline: name: "entry-pipeline" processor: - otel_trace_raw: sink: - opensearch: ... index_type: "trace-analytics-raw" service-map-pipeline: source: pipeline: name: "entry-pipeline" processor: - service_map: sink: - opensearch: ... index_type: "trace-analytics-service-map" trace-to-metrics-pipeline: source: pipeline: name: "entry-pipeline" processor: - aggregate: # Pick the required identification keys identification_keys: ["serviceName"] action: histogram: # Pick the appropriate values for each the following fields key: "durationInNanos" record_minmax: true units: "seconds" buckets: [0, 10000000, 50000000, 100000000] # Pick the required aggregation period group_duration: "30s" sink: - opensearch: ... index: "metrics_for_traces" - pipeline: name: "trace-to-metrics-anomaly-detector-pipeline" trace-to-metrics-anomaly-detector-pipeline: source: pipeline: name: "trace-to-metrics-pipeline" processor: - anomaly_detector: # Below Key will find anomalies in the max value of histogram generated for durationInNanos. keys: [ "max" ] mode: random_cut_forest: sink: - opensearch: ... index: "trace-metric-anomalies"

OpenTelemetry metrik

Anda dapat membuat pipeline yang menerima OpenTelemetry metrik dan mendeteksi anomali dalam metrik ini. Dalam contoh ini, entry-pipeline menerima data metrik dari OpenTelemetry Kolektor. Jika metrik adalah tipe GAUGE dan nama metriknyatotalApiBytesSent, prosesor mengirimkannya ke ad-pipeline sub-pipeline.

ad-pipelineSub-pipeline menerima data metrik dari jalur masuk dan melakukan deteksi anomali pada nilai metrik menggunakan prosesor detektor Anomali.

entry-pipeline: source: otel_metrics_source: processor: - otel_metrics: route: - gauge_route: '/kind = "GAUGE" and /name = "totalApiBytesSent"' sink: - pipeline: name: "ad-pipeline" routes: - gauge_route - opensearch: ... index: "otel-metrics" ad-pipeline: source: pipeline: name: "entry-pipeline" processor: - anomaly_detector: # Use "value" as the key on which anomaly detector needs to be run keys: [ "value" ] mode: random_cut_forest: sink: - opensearch: ... index: otel-metrics-anomalies

Selain contoh ini, Anda juga dapat menggunakan cetak biru jalur Trace to metric anomaly. Untuk informasi selengkapnya tentang cetak biru, lihat Menggunakan cetak biru untuk membuat pipeline.