JUNIPER NETWORKS - logoRouting Active Testing Streaming API
Przewodnik

Wstęp

This guide describes how to extract data from Routing Active Testing via the product’s streaming API.
The API as well as the streaming client are included in the Routing Active Testing installation. However, a bit of configuration is needed before you can use the API. This is covered in the “Configuring the Streaming API” on page 1 chapter.
Konfigurowanie interfejsu API przesyłania strumieniowego

Nadview

W tym rozdziale opisano, jak skonfigurować interfejs API przesyłania strumieniowego, aby umożliwić subskrybowanie komunikatów metryk za pośrednictwem platformy Kafka.
Poniżej omówimy:

  • Jak włączyć interfejs API przesyłania strumieniowego
  • Jak skonfigurować Kafkę do nasłuchiwania klientów zewnętrznych
  • Jak skonfigurować Kafkę do korzystania z list ACL i skonfigurować szyfrowanie SSL dla wspomnianych klientów

Co to jest Kafka?
Kafka to platforma do strumieniowego przesyłania zdarzeń, która umożliwia przechwytywanie w czasie rzeczywistym danych przesyłanych z różnych źródeł zdarzeń (czujniki, bazy danych, urządzenia mobilne) w postaci strumieni zdarzeń, a także trwałe przechowywanie tych strumieni zdarzeń w celu późniejszego wyszukiwania i manipulacji.
Dzięki Kafce możliwe jest kompleksowe zarządzanie strumieniowaniem zdarzeń w sposób rozproszony, wysoce skalowalny, elastyczny, odporny na błędy i bezpieczny.
NOTATKA: Kafka can be configured in many different ways and was designed for scalability and redundant systems. This document focuses only on how to configure it to make use of the Streaming API feature found in Routing Active Testing Control Center. For more advanced setups we refer to the official Kafka documentation: kafka.apache.org/26/documentation.html.
Terminologia

  • Kafka: platforma do strumieniowego przesyłania wydarzeń.
  • Temat Kafki: Zbiór zdarzeń.
  • Abonent/konsument Kafki: Komponent odpowiedzialny za pobieranie zdarzeń przechowywanych w temacie Kafki.
  • Broker Kafka: serwer warstwy pamięci masowej klastra Kafka.
  • SSL/TLS: SSL to bezpieczny protokół opracowany w celu bezpiecznego przesyłania informacji przez Internet. TLS jest następcą protokołu SSL wprowadzonego w 1999 r.
  • SASL: Struktura zapewniająca mechanizmy uwierzytelniania użytkowników, sprawdzania integralności danych i szyfrowania.
  • Streaming API subscriber: Component responsible for retrieval of events stored in topics defined in Routing Active Testing and meant for external access.
  • Urząd certyfikacji: Zaufany podmiot, który wystawia i unieważnia certyfikaty klucza publicznego.
  • Certyfikat główny urzędu certyfikacji: certyfikat klucza publicznego identyfikujący urząd certyfikacji.

Jak działa interfejs API przesyłania strumieniowego
Jak wspomniano wcześniej, Streaming API umożliwia klientom zewnętrznym pobieranie informacji o metrykach z platformy Kafka.
Wszystkie metryki zebrane przez Agentów Testowych podczas zadania testowego lub monitorowania są wysyłane do usługi Stream.
Po fazie przetwarzania usługa Stream publikuje te metryki w platformie Kafka wraz z dodatkowymi metadanymi.
Tematyka Kafki
Kafka has the concept of topics to which all data is published. In Routing Active Testing there are many such Kafka topics available; however, only a subset of these are meant for external access.
Each Routing Active Testing account in Control Center has two dedicated topics. Below, ACCOUNT is the account short name:

  • paa.public.accounts.{KONTO}.metrics
  • Wszystkie komunikaty dotyczące metryk dla danego konta są publikowane w tym temacie
  • Duże ilości danych
  • Wysoka częstotliwość aktualizacji
  • paa.public.accounts.{KONTO}.metadane
  • Zawiera metadane związane z danymi metryk, npample test, monitor lub agent testowy powiązany z metrykami
  • Mała ilość danych
  • Niska częstotliwość aktualizacji

Włączanie interfejsu API przesyłania strumieniowego
NOTATKA: These instructions are to be run on the Control Center server using sudor.
Ponieważ interfejs API przesyłania strumieniowego dodaje pewne obciążenie do Centrum sterowania, nie jest on domyślnie włączony. Aby włączyć API, musimy najpierw włączyć publikowanie metryk do Kafki w głównej konfiguracji file:

  • /etc/netrounds/netrounds.conf

KAFKA_METRICS_ENABLED = Prawda
KAFKA_PUBLISH_METADATA_FOR_STREAMS = True

Ikona ostrzeżenia elektrycznego OSTRZEŻENIE: Włączenie tej funkcji może mieć wpływ na wydajność Centrum sterowania. Upewnij się, że odpowiednio zwymiarowałeś instancję.
Następnie, aby umożliwić przekazywanie tych metryk do właściwych tematów Kafki:

  • /etc/netrounds/metrics.yaml

streaming-api: prawda
Aby włączyć i uruchomić usługi Streaming API, uruchom:

  • Usługi sudo ncc umożliwiają metryki w skali czasowejb
  • Usługi sudo ncc rozpoczynają się od wskaźników czasowychb

Na koniec uruchom ponownie usługi:

  • ponowne uruchomienie usług sudo ncc

NOTATKA: The KAFKA_PUBLISH_RESOURCES setting has been deprecated. It should be removed from your configuration. Use KAFKA_PUBLISH_METADATA_FOR_STREAMS = True instead.
Sprawdzanie, czy interfejs API przesyłania strumieniowego działa w Centrum sterowania
NOTATKA: Instrukcje te należy uruchomić na serwerze Control Center.
You can now verify that you are receiving metrics on the correct Kafka topics. To do so, install the Kafka cat utility:

  • sudo apt-get update
  • sudo apt-get zainstaluj kafkacat

If you have a test or monitor running in Control Center, you should be able to use Kafka cat to receive metrics and metadata on these topics.
Zastąp moje konto krótką nazwą swojego konta (to jest to, co widzisz w Centrum sterowania URL):

  • eksportuj METRICS_TOPIC=paa.public.accounts.myaccount.metrics
  • eksportuj METADATA_TOPIC=paa.public.accounts.myaccount.metadata

Powinieneś teraz zobaczyć metryki, uruchamiając to polecenie:

  • kafkacat -b ${KAFKA_FQDN}:9092 -t ${METRICS_TOPIC} -C -e

Do view metadane, uruchom następujące polecenie (pamiętaj, że nie będzie ono aktualizowane tak często):

  • kafkacat -b ${KAFKA_FQDN}:9092 -t ${METADATA_TOPIC} -C -e

NOTATKA: This is just a sanity check to make sure things are being published correctly. The data you see being published will be in binary form, which kafkacat will not decode by default. For properly subscribing to these topics, please see the “Client Examples” on page 13 section.
To sprawdza, czy mamy działający interfejs API przesyłania strumieniowego z poziomu Centrum sterowania. Jednak najprawdopodobniej zamiast tego interesuje Cię dostęp do danych od klienta zewnętrznego. W następnej sekcji opisano, jak otworzyć Kafkę na dostęp zewnętrzny.
Otwieranie Kafki dla hostów zewnętrznych
UWAGA: Te instrukcje należy uruchomić na serwerze Control Center.
Domyślnie Kafka działająca w Centrum sterowania jest skonfigurowana tak, aby nasłuchiwać tylko na hoście lokalnym do użytku wewnętrznego.
Możliwe jest otwarcie Kafki dla klientów zewnętrznych poprzez modyfikację ustawień Kafki.
Łączenie z Kafką: zastrzeżenia
Ikona ostrzegawcza OSTROŻNOŚĆ:
Przeczytaj to uważnie, ponieważ jeśli nie rozumiesz tych pojęć, łatwo jest napotkać problemy z połączeniem z Kafką.
W konfiguracji Centrum sterowania opisanej w tym dokumencie istnieje tylko jeden broker Kafka.
Należy jednak pamiętać, że broker Kafka ma działać jako część klastra Kafka, który może składać się z wielu brokerów Kafka.
Podczas łączenia się z brokerem Kafka klient Kafka ustanawia połączenie początkowe. W związku z tym broker Kafka z kolei zwróci listę „reklamowanych słuchaczy”, która jest listą jednego lub większej liczby brokerów Kafki.
Po otrzymaniu tej listy klient Kafki rozłączy się, a następnie ponownie połączy z jednym z tych reklamowanych słuchaczy. Reklamowane odbiorniki muszą zawierać nazwy hostów lub adresy IP dostępne dla klienta Kafka, w przeciwnym razie klient nie będzie mógł się połączyć.
Jeśli używane jest szyfrowanie SSL, obejmujące certyfikat SSL powiązany z konkretną nazwą hosta, jeszcze ważniejsze jest, aby klient Kafki otrzymał prawidłowy adres, z którym może się połączyć, ponieważ w przeciwnym razie połączenie może zostać odrzucone.
Przeczytaj więcej o słuchaczach Kafki tutaj: www.confluent.io/blog/kafka-listeners-explained
Szyfrowanie SSL/TLS
Aby mieć pewność, że tylko zaufani klienci będą mieli dostęp do Kafki i API przesyłania strumieniowego, musimy skonfigurować następujące elementy:

  • Uwierzytelnianie: klienci muszą podać nazwę użytkownika i hasło za pośrednictwem bezpiecznego połączenia SSL/TLS między klientem a platformą Kafka.
  • Autoryzacja: Uwierzytelnieni klienci mogą wykonywać zadania regulowane przez listy ACL.

Oto ponadview:
Aby w pełni zrozumieć, jak działa szyfrowanie SSL/TLS w Kafce, zapoznaj się z oficjalną dokumentacją: https://docs.confluent.io/platforma/current/kafka/encryption.html
Certyfikat SSL/TLS dobiegł końcaview
NOTATKA:
W tym podrozdziale będziemy posługiwać się następującą terminologią:
Certyfikat: Certyfikat SSL podpisany przez urząd certyfikacji (CA). Każdy broker Kafka ma takiego.
Magazyn kluczy: Magazyn kluczy file który przechowuje certyfikat. Magazyn kluczy file zawiera klucz prywatny certyfikatu; dlatego należy go bezpiecznie przechowywać.
Magazyn zaufania: A file zawierające certyfikaty zaufanego urzędu certyfikacji.
Aby skonfigurować uwierzytelnianie między klientem zewnętrznym a Kafką działającą w Centrum sterowania, obie strony muszą mieć zdefiniowany magazyn kluczy z powiązanym certyfikatem podpisanym przez urząd certyfikacji (CA) wraz z certyfikatem głównym urzędu certyfikacji.
Oprócz tego klient musi także posiadać magazyn zaufanych certyfikatów z certyfikatem głównym urzędu certyfikacji.
Certyfikat główny urzędu certyfikacji jest wspólny dla brokera Kafka i klienta Kafka.
Tworzenie wymaganych certyfikatów
Omówiono to w „Załączniku” na stronie 16.
Konfiguracja protokołu SSL/TLS brokera Kafka w Centrum sterowania
NOTATKA: Instrukcje te należy uruchomić na serwerze Control Center.
NOTATKA: Before continuing, you must create the keystone which contains the SSL certificate by following the instructions in the “Appendix” on page 16. The paths mentioned below come from these instructions. The SSL keystore is a file zapisane na dysku z rozszerzeniem file rozszerzenie .jks.
Po utworzeniu wymaganych certyfikatów zarówno dla brokera Kafka, jak i klienta Kafka, możesz kontynuować konfigurowanie brokera Kafka działającego w Control Center. Musisz wiedzieć, co następuje:

  • : Publiczna nazwa hosta Centrum sterowania; musi to być możliwe do rozwiązania i dostępne dla klientów Kafki.
  • : Hasło magazynu kluczy podane podczas tworzenia certyfikatu SSL.
  • I : To są hasła, które chcesz ustawić odpowiednio dla administratora i klienta. Pamiętaj, że możesz dodać więcej użytkowników, jak wskazano w przykładzieample.

Edit or append (with sudo access) the properties below in /etc/kafka/server.properties, inserting the above
variables as shown:
Ikona ostrzeżenia elektrycznego OSTRZEŻENIE: Nie usuwaj PLAINTEXT://localhost:9092. Spowoduje to przerwanie działania Centrum sterowania, ponieważ wewnętrzne usługi nie będą mogły się komunikować.

# Adresy, na których nasłuchuje broker Kafka.
słuchacze=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
# To są hosty reklamowane każdemu klientowi łączącemu się.
reklamowane.listeners=PLAINTEXT://localhost:9092,SASL_SSL:// :9093
… ####### CUSTOM CONFIG
# KONFIGURACJA SSL
ssl.endpoint.identification.algorithm=
ssl.keystore.location=/var/ssl/private/kafka.server.keystore.jks
ssl.keystore.password=
ssl.key.password=
ssl.client.auth=brak
ssl.protocol=TLSv1.2
# Konfiguracja SASL
sasl.enabled.mechanisms=ZWYKŁY
Listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginMo
wymagany dule \
nazwa użytkownika=”administrator” \
hasło=” ” \
User:admin=”<admin_pwd>” \
user client=”<client_pwd>”;
# UWAGA, za pomocą user_ można dodać więcej użytkowników =
# Autoryzacja, włącz listy ACL
autoryzator.klasa.name=kafka.security.authorizer.AclAuthorizer
superusers=User:admin
Konfigurowanie list kontroli dostępu (ACL)
Włączanie list ACL na serwerze lokalnym
Ikona ostrzeżenia elektrycznego  OSTRZEŻENIE: Musimy najpierw skonfigurować listy ACL dla hosta lokalnego, aby samo Centrum sterowania nadal mogło uzyskać dostęp do Kafki. Jeśli nie zostanie to zrobione, wszystko się zepsuje.
######### Wpisy ACL dla użytkowników anonimowych
/usr/lib/kafka/bin/kafka-acls.sh \
–autor kafka.security.authorizer.AclAuthorizer \
–właściwości autora zookeeper.connect=localhost:2181 \
–add –allow-principal User: ANONYMOUS –allow-host 127.0.0.1 –cluster
/usr/lib/kafka/bin/kafka-acls.sh \
–autor kafka.security.authorizer.AclAuthorizer \
–właściwości autora zookeeper.connect=localhost:2181 \
–add –allow-principal Użytkownik:ANONYMOUS –allow-host 127.0.0.1 –temat „*”
/usr/lib/kafka/bin/kafka-acls.sh \
–autor kafka.security.authorizer.AclAuthorizer \
–właściwości autora zookeeper.connect=localhost:2181 \
–add –allow-principal User: ANONYMOUS –allow-host 127.0.0.1 –group ‘*’
Następnie musimy włączyć listy ACL dla zewnętrznego dostępu tylko do odczytu, aby użytkownicy zewnętrzni mogli czytać tematy paa.public.*.
NOTATKA: Aby uzyskać bardziej szczegółową kontrolę, zapoznaj się z oficjalną dokumentacją Kafki.
######### Wpisy ACL dla użytkowników zewnętrznych
/usr/lib/kafka/bin/kafka-acls.sh \
–autor kafka.security.authorizer.AclAuthorizer \
–właściwości autora zookeeper.connect=localhost:2181 \
–add –allow-principal Użytkownik:* –operacja odczyt –operacja opisz \
–grupa „NCC”
/usr/lib/kafka/bin/kafka-acls.sh \
–autor kafka.security.authorizer.AclAuthorizer \
–właściwości autora zookeeper.connect=localhost:2181 \
–add –allow-principal Użytkownik:* –operacja odczyt –operacja opisz \
–temat paa.public. –typ wzorca zasobu z prefiksem
Gdy już to zrobisz, musisz ponownie uruchomić usługi:
ponowne uruchomienie usług sudo ncc
Aby sprawdzić, czy klient może nawiązać bezpieczne połączenie, uruchom następujące polecenie na zewnętrznym komputerze klienckim (nie na serwerze Control Center). Poniżej PUBLIC_HOSTNAME to nazwa hosta Centrum sterowania:
openssl s_client -debug -connect ${PUBLIC_HOSTNAME}:9093 -tls1_2 | grep „Bezpieczna renegocjacja jest obsługiwana”
W wynikach polecenia powinieneś zobaczyć certyfikat serwera oraz następujące informacje:
Obsługiwana jest bezpieczna renegocjacja
Aby upewnić się, że usługi wewnętrzne otrzymały dostęp do serwera Kafka, sprawdź poniższy logfiles:

  • /var/log/kafka/server.log
  • /var/log/kafka/kafka-authorizer.log

Sprawdzanie łączności klienta zewnętrznego
kafkakot
NOTATKA: Instrukcje te należy uruchomić na komputerze klienckim (nie na serwerze Control Center).
NOTATKA: Aby wyświetlić informacje o metrykach, upewnij się, że w Centrum sterowania działa co najmniej jeden monitor.
Aby zweryfikować i potwierdzić łączność jako klient zewnętrzny, można użyć narzędzia kafkacat, które zostało zainstalowane w sekcji „Sprawdzanie, czy API przesyłania strumieniowego działa w Centrum sterowania” na stronie 4.
Wykonaj następujące kroki:
NOTATKA: Poniżej CLIENT_USER to użytkownik określony wcześniej w pliku file /etc/kafka/ server.properties in Control Center: namely, user_client and the password set there. The CA root certificate used to sign the server side SSL certificate must be present on the client.
Utwórz file client.properties o następującej treści:
security.protocol=SASL_SSL
ssl.ca.location={PATH_TO_CA_CERT}
sasl.mechanisms=ZWYKŁY
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
Gdzie

  • {PATH_TO_CA_CERT} to lokalizacja certyfikatu głównego urzędu certyfikacji używanego przez brokera Kafka
  • {CLIENT_USER} i {CLIENT_PASSWORD} to dane uwierzytelniające użytkownika klienta.
  • Uruchom następujące polecenie, aby zobaczyć wiadomość wykorzystaną przez kafkacat:

eksportuj KAFKA_FQDN=
eksportuj METRICS_TOPIC=paa.public.accounts. .metryka
kafkacat -b ${KAFKA_FQDN}:9093 -F właściwości klienta -t ${METRICS_TOPIC} -C -e
gdzie {METRICS_TOPIC} to nazwa tematu Kafki z przedrostkiem „paa.public.”.
NOTATKA: Starsze wersje kafkacat nie udostępniają opcji -F do odczytywania ustawień klienta z pliku file. Jeśli używasz takiej wersji, musisz podać te same ustawienia z wiersza poleceń, jak pokazano poniżej.
kafkacat -b ${KAFKA_FQDN}:9093 \
-X security.protocol=SASL_SSL \
-X ssl.ca.location={PATH_TO_CA_CERT} \
-X sasl.mechanisms=ZWYKŁY \
-X sasl.username={CLIENT_USER} \
-X sasl.hasło={CLIENT_HASŁO} \
-t ${METRICS_TOPIC} -C -e
Aby debugować łączność, możesz użyć opcji -d:
Debuguj komunikację konsumencką
kafkacat -d konsument -b ${KAFKA_FQDN}:9093 -F właściwości klienta -t ${METRICS_TOPIC} -C -e
# Debuguj komunikację brokera
kafkacat -d broker -b ${KAFKA_FQDN}:9093 -F właściwości klienta -t ${METRICS_TOPIC} -C -e
Pamiętaj, aby zapoznać się z dokumentacją używanej biblioteki klienta Kafka, ponieważ właściwości mogą różnić się od tych w pliku client.properties.
Format wiadomości
The messages used for the metrics and metadata topics are serialized in the Protocol buffers (protobuf)format (see Developers.google.com/protocol-buffers). Schematy tych komunikatów mają następujący format:
Metryki Schemat Protobufa
składnia = „proto3”;
zaimportuj „google/protobuf/timestamp.proto”;
pakiet paa.streamingapi;
opcja go_package = „.;paa_streamingapi”;
Metryki wiadomości {
google.protobuf.Timestamp godzinaamp = 1;
mapa wartości = 2;
int32 id_strumienia = 3;
}
/**
* Wartość metryki może być liczbą całkowitą lub zmiennoprzecinkową.
*/
wiadomość Wartość metryki {
jeden z typów {
int64 int_val = 1;
float float_val = 2;
}
}
Schemat metadanych Protobuf
składnia = „proto3”;
pakiet paa.streamingapi;
opcja go_package = „.;paa_streamingapi”;
metadane wiadomości {
int32 id_strumienia = 1;
string nazwa_strumienia = 2;
mapa tags = 13;
}
Klient Examples
NOTATKA:
Polecenia te są przeznaczone do uruchamiania na kliencie zewnętrznym, npample na swoim laptopie lub podobnym urządzeniu, a nie w Control Center.
NOTATKA: Aby wyświetlić informacje o metrykach, upewnij się, że co najmniej jeden monitor działa w Centrum sterowania.
Paczka tar Centrum sterowania zawiera archiwum paa-streaming-api-client-examples.tar.gz (klient-npamples), który zawiera example Skrypt w języku Python pokazujący, jak korzystać z interfejsu API przesyłania strumieniowego.
Instalacja i konfiguracja klienta Examples
Znajdujesz byłego klientaamples in the Routing Active Testing Control Center folder:
eksportuj CC_VERSION=4.6.0
cd ./paa-control-center_${CC_VERSION}
ls paa-streaming-api-client-examplas*
Aby zainstalować klienta-exampplików na zewnętrznym komputerze klienckim, wykonaj następujące czynności:
# Utwórz katalog do wyodrębnienia zawartości klienta npampplik tarball
mkdir paa-streaming-api-client-examples
# Wyodrębnij zawartość klienta npampplik tarball
tar xzf paa-streaming-api-client-examples.tar.gz -C paa-streaming-api-client-examples
# Przejdź do nowo utworzonego katalogu
cd paa-streaming-api-client-examples
były klientamples wymaga uruchomienia Dockera. Pliki do pobrania i instrukcje instalacji dla Dockera można znaleźć pod adresem https://docs.docker.com/engine/install.
Korzystanie z klienta Examples
Klient-byłyampNarzędzia les mogą działać w trybie podstawowym lub zaawansowanym, aby zbudować npamppliki o różnym stopniu złożoności. W obu przypadkach możliwe jest także uruchomienie examppliki z konfiguracją file zawierające dodatkowe właściwości umożliwiające dalszą personalizację strony klienta.
Tryb podstawowy
W trybie podstawowym metryki i ich metadane są przesyłane strumieniowo osobno. W tym celu klient odsłuchuje każdy temat Kafki dostępny do dostępu zewnętrznego i po prostu drukuje odebrane wiadomości na konsolę.
Aby rozpocząć wykonywanie podstawowego examples, uruchom:
./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
gdzie ACCOUNT_SHORTNAME to krótka nazwa konta, z którego chcesz uzyskać dane.
Aby zakończyć wykonywanie example, naciśnij Ctrl + C. (Przed zatrzymaniem wykonywania może wystąpić niewielkie opóźnienie, ponieważ klient czeka na przekroczenie limitu czasu).
Tryb zaawansowany
NOTATKA: Metryki są wyświetlane tylko dla monitorów HTTP działających w Control Center.
Wykonanie w trybie zaawansowanym pokazuje korelację między metrykami i komunikatami metadanych. Jest to możliwe dzięki obecności w każdym komunikacie metryki pola identyfikatora strumienia, które odnosi się do odpowiedniego komunikatu metadanych.
Aby wykonać zaawansowany examples, uruchom:
./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
gdzie ACCOUNT_SHORTNAME to krótka nazwa konta, z którego chcesz uzyskać dane.
Aby zakończyć wykonywanie example, naciśnij Ctrl + C. (Przed zatrzymaniem wykonywania może wystąpić niewielkie opóźnienie, ponieważ klient czeka na przekroczenie limitu czasu).
Ustawienia dodatkowe
Istnieje możliwość uruchomienia examppliki z dodatkową konfiguracją klienta za pomocą opcji –config-file opcja, po której następuje a file nazwa zawierająca właściwości w postaci klucz=wartość.
./build.sh run-advanced \
–kafka-brokers localhost:9092 \
–konto ACCOUNT_SHORTNAME \
–konfiguracja-file Client_config.properties
NOTATKA: Wszystko files, do których odwołuje się powyższe polecenie, muszą znajdować się w bieżącym katalogu i odnosić się do nich wyłącznie za pomocą ścieżek względnych. Dotyczy to zarówno –config-file argumentu i do wszystkich wpisów w konfiguracji file które opisują file lokalizacje.
Sprawdzanie uwierzytelnienia klienta zewnętrznego
Aby sprawdzić uwierzytelnienie klienta spoza Centrum sterowania przy użyciu Client-examples, wykonaj następujące kroki:

  • From the Routing Active Testing Control Center folder, switch to the paa-streaming-api-client-exampfolder plików:
    cd paa-streaming-api-client-examples
  • Skopiuj certyfikat główny urzędu certyfikacji ca-cert do bieżącego katalogu.
  • Utwórz plik client.properties file o następującej treści:
    security.protocol=SASL_SSL
    ssl.ca.location=ca-cert
    sasl.mechanizm=ZWYKŁY
    sasl.username={CLIENT_USER}
    sasl.password={CLIENT_PASSWORD}
    gdzie {CLIENT_USER} i {CLIENT_PASSWORD} to dane uwierzytelniające użytkownika klienta.
  • Uruchom podstawowy npamples:
    eksportuj KAFKA_FQDN=
    ./build.sh run-basic –kafka-brokers ${KAFKA_FQDN}:9093 \
    –konto ACCOUNT_SHORTNAME
    –konfiguracja-file właściwości klienta
    gdzie ACCOUNT_SHORTNAME to krótka nazwa konta, z którego chcesz uzyskać dane.
  • Uruchom zaawansowane npamples:
    eksportuj KAFKA_FQDN=
    ./build.sh run-advanced –kafka-brokers ${KAFKA_FQDN}:9093 \
    –konto ACCOUNT_SHORTNAME
    –konfiguracja-file właściwości klienta

Załącznik

W tym dodatku opisujemy jak utworzyć:

  • magazyn kluczy file do przechowywania certyfikatu SSL brokera Kafka
  • magazyn zaufania file do przechowywania certyfikatu głównego urzędu certyfikacji (CA) używanego do podpisywania certyfikatu brokera Kafka.

Tworzenie certyfikatu brokera Kafka
Tworzenie certyfikatu przy użyciu prawdziwego urzędu certyfikacji (zalecane)
Zalecane jest uzyskanie prawdziwego certyfikatu SSL od zaufanego urzędu certyfikacji.
Kiedy już zdecydujesz się na urząd certyfikacji, skopiuj jego certyfikat główny urzędu certyfikacji ca-cert file na własną ścieżkę, jak pokazano poniżej:
eksport CA_PATH=~/my-ca
mkdir ${CA_PATH}
cp ca-cert ${CA_PATH}
Utwórz własny urząd certyfikacji
NOTATKA:
Zwykle powinieneś mieć swój certyfikat podpisany przez prawdziwy urząd certyfikacji; patrz poprzedni podrozdział. To, co następuje, to tylko byłyample.
Tutaj tworzymy własny certyfikat główny urzędu certyfikacji (CA). file ważny 999 dni (niezalecany w produkcji):
# Utwórz katalog do przechowywania urzędu certyfikacji
eksport CA_PATH=~/my-ca
mkdir ${CA_PATH}
# Wygeneruj certyfikat CA
openssl req -new -x509 -keyout ${CA_PATH}/ca-key -out ${CA_PATH}/ca-cert -days 999
Tworzenie magazynu zaufania klienta
Teraz możesz utworzyć magazyn zaufanych certyfikatów file który zawiera wygenerowany powyżej certyfikat ca-cert. Ten file will be needed by the Kafka client that will access the Streaming API: keytool -keystore kafka.client.truststore.jks \
-alias CARoot \
-certyfikat importu -file ${CA_PATH}/ca-cert
Teraz, gdy certyfikat urzędu certyfikacji znajduje się w magazynie zaufanych certyfikatów, klient będzie ufał każdemu certyfikatowi podpisanemu za jego pomocą.
Powinieneś skopiować file kafka.client.truststore.jks do znanej lokalizacji na komputerze klienckim i wskaż ją w ustawieniach.
Tworzenie magazynu kluczy dla brokera Kafka
Aby wygenerować certyfikat SSL brokera Kafka, a następnie magazyn kluczy kafka.server.keystore.jks, wykonaj następujące czynności:
Generowanie certyfikatu SSL
Use these commands to generate the SSL certificate. Below, 999 is the number of days of validity of the keystore.
sudo mkdir -p /var/ssl/private
sudo chown -R $USER: /var/ssl/private
cd /var/ssl/private
export CC_IP=<Control Center IP>
keytool -keystore kafka.server.keystore.jks \
-alias serwer \
-ważność 999 \
-genkey -keyalg RSA -ext SAN=ip:${CC_IP}
To verify the SSL certificate, you can use the following command:
keytool -v -list -keystore kafka.server.keystore.jks -alias server
You should ensure that the port 9093 is accessible from external clients.
Utwórz żądanie podpisania certyfikatu i zapisz je w pliku file o nazwie żądanie serwera certyfikatu:
keytool -keystore kafka.server.keystore.jks \
-alias serwer \
-certreq \
-file żądanie serwera certyfikatu
Powinieneś teraz wysłać file cert-server-request do urzędu certyfikacji (CA), jeśli używasz prawdziwego. Następnie zwrócą podpisany certyfikat. Poniżej będziemy nazywać to certyfikatem-serwerem-podpisanym.
Podpisywanie certyfikatu SSL przy użyciu samodzielnie utworzonego certyfikatu CA
NOTATKA: Ponownie, używanie własnego urzędu certyfikacji nie jest zalecane w systemie produkcyjnym.
Podpisz certyfikat za pomocą urzędu certyfikacji za pomocą polecenia file cert-server-request, który generuje podpisany certyfikat cert-server-signed. Zobacz poniżej; ca-password to hasło ustawione podczas tworzenia certyfikatu CA.
cd /var/ssl/private
openssl x509 -req \

  • -CA ${CA_PATH}/ca-cert \
  • -CAkey ${CA_PATH}/ca-key \
  • -w żądaniu serwera certyfikatu \
  • -out certyfikat-serwer-podpisany \
  • -dni 999 -CAcreateserial \
  • -passin pass:{ca-hasło}

Importowanie podpisanego certyfikatu do magazynu kluczy
Zaimportuj certyfikat główny ca-cert do magazynu kluczy:
keytool -keystore kafka.server.keystore.jks \
-alias ca-cert \
-importuj \
-file ${CA_PATH}/ca-cert
Zaimportuj podpisany certyfikat o nazwie cert-server-signed:
keytool -keystore kafka.server.keystore.jks \
-alias serwer \
-importuj \
-file podpisany przez serwer certyfikatu
Ten file kafka.server.keystore.jks należy skopiować do znanej lokalizacji na serwerze Control Center, a następnie odnieść się do pliku /etc/kafka/server.properties.
Korzystanie z interfejsu API przesyłania strumieniowego

Ogólny

Interfejs API przesyłania strumieniowego pobiera dane testowe i monitorujące. Nie da się wyodrębnić jednej z tych kategorii.
Interfejs API przesyłania strumieniowego nie pobiera danych z testów opartych na skryptach (tych reprezentowanych przez prostokąt zamiast elementu układanki w graficznym interfejsie użytkownika Centrum sterowania), takich jak testy aktywacji usług Ethernet i testy przezroczystości.

Nazwy tematów Kafki

Nazwy tematów Kafki dla API przesyłania strumieniowego są następujące, gdzie %s to krótka nazwa konta Centrum sterowania (wskazywana podczas tworzenia konta):
stała (
nazwa_eksportera = „kafka”
metadataTopicTpl = „paa.public.accounts.%s.metadata”
metricsTopicTpl = „paa.public.accounts.%s.metrics”
)
Examppliki dotyczące korzystania z interfejsu API przesyłania strumieniowego
ByłyampPoniższe pliki znajdują się w archiwum paa-streaming-api-client-examples.tar.gz zawarty w archiwum tar Centrum sterowania.
Po pierwsze, istnieje podstawowy przykładampplik demonstrujący, w jaki sposób metryki i ich metadane są przesyłane strumieniowo oddzielnie i po prostu drukują odebrane komunikaty na konsoli. Można go uruchomić w następujący sposób:
sudo ./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME There is also a more advanced exampplik, w którym skorelowane są metryki i metadane. Użyj tego polecenia, aby go uruchomić:
sudo ./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME You need to use sudo to run Docker commands such as the ones above. Optionally, you can follow the Linux post-installation steps to be able to run Docker commands without sudo. For details, go to https://docs.docker.com/engine/install/linux-postinstall.
Juniper Networks, logo Juniper Networks, Juniper i Junos są zastrzeżonymi znakami towarowymi firmy Juniper Networks, Inc. w Stanach Zjednoczonych i innych krajach. Wszystkie inne znaki towarowe, znaki usługowe, znaki zastrzeżone lub zastrzeżone znaki usługowe są własnością ich odpowiednich właścicieli. Juniper Networks nie ponosi żadnej odpowiedzialności za jakiekolwiek nieścisłości w tym dokumencie. Juniper Networks zastrzega sobie prawo do zmiany, modyfikacji, przeniesienia lub innej korekty tej publikacji bez powiadomienia. Prawa autorskie © 2025 Juniper Networks,
Inc. Wszelkie prawa zastrzeżone.

JUNIPER NETWORKS - logo

Dokumenty / Zasoby

JUNIPER NETWORKS Routing Active Testing Solution Brief [plik PDF] Instrukcja użytkownika
Routing Active Testing Solution Brief, Active Testing Solution Brief, Testing Solution Brief, Solution Brief

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *