Dodawanie eksporterów i potoków do wdrożenia routera telemetrii

Uwaga

  • Router telemetrii jest w publicznej wersji zapoznawczej i powinien zostać wdrożony tylko do celów testowych.
  • Chociaż router telemetrii jest w publicznej wersji zapoznawczej, należy pamiętać, że przyszłe wersje zapoznawcze mogą obejmować zmiany specyfikacji CRD, poleceń interfejsu wiersza polecenia i/lub komunikatów routera telemetrii.
  • Bieżąca wersja zapoznawcza nie obsługuje uaktualnień w miejscu kontrolera danych wdrożonego z włączonym routerem telemetrii arc. Aby zainstalować lub uaktualnić kontroler danych w przyszłej wersji, należy odinstalować kontroler danych, a następnie ponownie zainstalować.

Co to są eksporterzy i potoki?

Eksporterzy i potoki są dwoma głównymi składnikami routera telemetrii. Eksporterzy opisują sposób wysyłania danych do systemu docelowego, takiego jak Kafka. Podczas tworzenia eksportera należy skojarzyć go z potokiem w celu kierowania tego typu danych telemetrycznych do tego miejsca docelowego. Dla każdego potoku można mieć wielu eksporterów.

W tym artykule przedstawiono przykłady konfigurowania własnych eksporterów i potoków w celu kierowania danych telemetrycznych monitorowania do własnego obsługiwanego eksportera.

Obsługiwani eksporterzy

Eksporter Obsługiwane typy potoków
Kafka dzienniki, metryki
Elasticsearch dzienniki

Konfiguracje

Wszystkie konfiguracje są określane za pośrednictwem niestandardowej specyfikacji zasobów routera telemetrii i obsługują konfigurację eksporterów i potoków.

Eksporterzy

W publicznej wersji zapoznawczej eksporterzy mogą częściowo konfigurować i obsługiwać następujące rozwiązania:

Eksporter Obsługiwane typy telemetrii
Kafka dzienniki, metryki
Elasticsearch dzienniki

Następujące właściwości są obecnie konfigurowalne w publicznej wersji zapoznawczej:

Ustawienia eksportera ogólnego

Ustawienie opis
nazwa_certyfikatu Certyfikat klienta w celu wyeksportowania do rozwiązania do monitorowania
caCertificateName Urząd certyfikacji klastra lub certyfikat dostarczony przez klienta dla eksportera

Ustawienia eksportera platformy Kafka

Ustawienie opis
topic Nazwa tematu do wyeksportowania
Brokerów Lista brokerów do nawiązania połączenia z
encoding Kodowanie danych telemetrycznych: otlp_json lub otlp_proto

Ustawienia eksportera Elasticsearch

Ustawienie opis
index To ustawienie może być nazwą indeksu lub nazwy strumienia danych do publikowania zdarzeń
endpoint Punkt końcowy programu Elasticsearch do wyeksportowania do

Pipelines

Router telemetrii obsługuje potoki dzienników i metryk. Te potoki są uwidocznione w niestandardowej specyfikacji zasobów routera telemetrii Arc i dostępne do modyfikacji.

Nie można usunąć ostatniego potoku z routera telemetrii. Jeśli zastosujesz plik yaml, który usunie ostatni potok, usługa odrzuci aktualizację.

Ustawienia potoku

Ustawienie opis
dzienniki Może zadeklarować tylko nowe potoki dzienników
metrics Może zadeklarować tylko nowe potoki metryk
Eksporterów Lista eksporterów. Może być wiele tego samego typu

Poświadczenia

Poświadczenia Ustawienia

Ustawienie opis
nazwa_certyfikatu Nazwa certyfikatu musi odpowiadać nazwie certyfikatu określonej w deklaracji eksportera
secretName Nazwa wpisu tajnego dostarczonego za pośrednictwem platformy Kubernetes
secretNamespace Przestrzeń nazw z wpisem tajnym udostępnianym za pośrednictwem platformy Kubernetes

Przykładowa specyfikacja telemetriiroutera

apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
  name: arc-telemetry-router
  namespace: <namespace>
spec:
  credentials:
    certificates:
    - certificateName: arcdata-elasticsearch-exporter
    - certificateName: cluster-ca-certificate
  exporters:
    elasticsearch:
    - caCertificateName: cluster-ca-certificate
      certificateName: arcdata-elasticsearch-exporter
      endpoint: https://logsdb-svc:9200
      index: logstash-otel
      name: arcdata
  pipelines:
    logs:
      exporters:
      - elasticsearch/arcdata

Przykład 1. Dodawanie eksportera platformy Kafka dla potoku metryk

Możesz przetestować tworzenie eksportera platformy Kafka dla potoku metryk, który może wysyłać dane metryk do własnego wystąpienia platformy Kafka. Musisz prefiksować nazwę potoku metryk za pomocą polecenia kafka/. Dla każdego typu telemetrii można mieć jedno nienazwane wystąpienie. Na przykład "kafka" to prawidłowa nazwa potoku metryk.

  1. Podaj certyfikaty klienta i urzędu certyfikacji w credentials sekcji za pomocą wpisów tajnych platformy Kubernetes
  2. Zadeklaruj exporters nowego eksportera w sekcji z wymaganymi ustawieniami — nazwa, certyfikaty, broker i indeks. Pamiętaj, aby wyświetlić listę nowego eksportera zgodnie z odpowiednim typem ("kakfa:")
  3. Wyświetl listę eksporterów w pipelines sekcji specyfikacji jako potok metryk. Nazwa eksportera musi być poprzedzona typem eksportera. Na przykład kafka/myMetrics

W tym przykładzie dodaliśmy potok metryk o nazwie "metrics" z pojedynczym eksporterem (kafka/myMetrics), który kieruje do twojego wystąpienia platformy Kafka.

arc-telemetry-router.yaml

apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
  name: arc-telemetry-router
  namespace: <namespace>
spec:
  credentials:
    certificates:
    # Step 1. Provide your client and ca certificates through Kubernetes secrets
    # where the name of the secret and its namespace are specified.
    - certificateName: <kafka-client-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
    - certificateName: <ca-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
  exporters:
    kafka:
    # Step 2. Declare your Kafka exporter with the needed settings 
    # (name, certificates, endpoint, and index to export to)
    - name: myMetrics
      # Provide your client and CA certificate names
      # for the exporter as well as any additional settings needed
      caCertificateName: <ca-certificate-name>
      certificateName: <kafka-client-certificate-name>
      broker: <kafka_broker>
      # Index can be the name of an index or datastream name to publish events to
      index: <kafka_index>
  pipelines:
    metrics:
      exporters:
      # Step 3. Assign your kafka exporter to the list
      # of exporters for the metrics pipeline.
      - kafka/myMetrics
kubectl apply -f arc-telemetry-router.yaml -n <namespace>

Dodano potok metryk, który eksportuje do wystąpienia platformy Kafka. Po zastosowaniu zmian do pliku yaml zasób niestandardowy TelemetryRouter przejdzie do stanu aktualizacji, a usługa modułu zbierającego zostanie ponownie uruchomiona.

Przykład 2. Dodawanie eksportera Elasticsearch dla potoku dzienników

Wdrożenie routera telemetrii może być eksportowane do wielu miejsc docelowych, konfigurując więcej eksporterów. W danym wdrożeniu routera telemetrii jest obsługiwanych wiele typów eksporterów. W tym przykładzie pokazano dodanie eksportera Elasticsearch jako drugiego eksportera. Aktywujemy tego drugiego eksportera, dodając go do potoku dzienników.

  1. Podaj certyfikaty klienta i urzędu certyfikacji w credentials sekcji za pomocą wpisów tajnych platformy Kubernetes
  2. Zadeklaruj nowego eksportera pod exporters sekcją z wymaganymi ustawieniami — nazwa, certyfikaty, punkt końcowy i indeks. Pamiętaj, aby wyświetlić listę nowego eksportera w odpowiednim typie ("Elasticsearch:").
  3. Wyświetl eksportera w pipelines sekcji specyfikacji jako potok dzienników. Nazwa eksportera musi być poprzedzona typem eksportera. Na przykład elasticsearch/myLogs

Ten przykład opiera się na poprzednim przykładzie przez dodanie potoku dzienników dla eksportera Elasticsearch (elasticsearch/myLogs). Na końcu przykładu mamy dwóch eksporterów z każdym eksporterem dodanym do innego rurociągu.

arc-telemetry-router.yaml

apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
  name: arc-telemetry-router
  namespace: <namespace>
spec:
  credentials:
    certificates:
    # Step 1. Provide your client and ca certificates through Kubernetes secrets
    # where the name of the secret and its namespace are specified.
    - certificateName: <elasticsearch-client-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
    - certificateName: <kafka-client-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
    - certificateName: <ca-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
  exporters:
    Elasticsearch:
    # Step 2. Declare your Elasticsearch exporter with the needed settings 
    # (certificates, endpoint, and index to export to)
    - name: myLogs
      # Provide your client and CA certificate names
      # for the exporter as well as any additional settings needed
      caCertificateName: <ca-certificate-name>
      certificateName: <elasticsearch-client-certificate-name>
      endpoint: <elasticsearch_endpoint>
      # Index can be the name of an index or datastream name to publish events to
      index: <elasticsearch_index>
    kafka:
    - name: myMetrics
      caCertificateName: <ca-certificate-name>
      certificateName: <kafka-client-certificate-name>
      broker: <kafka_broker>
      index: <kafka_index>
  pipelines:
    logs:
      exporters:
        # Step 3. Add your Elasticsearch exporter to 
        # the exporters list of a logs pipeline.
      - elasticsearch/myLogs
    metrics:
      exporters:
      - kafka/myMetrics
kubectl apply -f arc-telemetry-router.yaml -n <namespace>

Masz teraz eksporterów Platformy Kafka i Elasticsearch dodanych do potoków metryk i dzienników. Po zastosowaniu zmian do pliku yaml zasób niestandardowy TelemetryRouter przejdzie do stanu aktualizacji, a usługa modułu zbierającego zostanie ponownie uruchomiona.