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 |
Referencja
Ustawienia poświadczeń
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.
- Podaj certyfikaty klienta i urzędu certyfikacji w
credentials
sekcji za pomocą wpisów tajnych platformy Kubernetes - 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:") - Wyświetl listę eksporterów w
pipelines
sekcji specyfikacji jako potok metryk. Nazwa eksportera musi być poprzedzona typem eksportera. Na przykładkafka/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.
- Podaj certyfikaty klienta i urzędu certyfikacji w
credentials
sekcji za pomocą wpisów tajnych platformy Kubernetes - 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:"). - Wyświetl eksportera w
pipelines
sekcji specyfikacji jako potok dzienników. Nazwa eksportera musi być poprzedzona typem eksportera. Na przykładelasticsearch/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.