Routing Active Testing Streaming API
Vodič
Uvod
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.
Konfiguriranje Streaming API-ja
Gotovoview
Ovo poglavlje opisuje kako konfigurirati Streaming API da omogući pretplatu na poruke metrike putem Kafke.
U nastavku ćemo proći kroz:
- Kako omogućiti Streaming API
- Kako konfigurirati Kafku da sluša eksterne klijente
- Kako konfigurirati Kafku da koristi ACL-ove i postaviti SSL enkripciju za navedene klijente
Šta je Kafka?
Kafka je platforma za striming događaja koja omogućava hvatanje podataka u realnom vremenu poslanih iz različitih izvora događaja (senzori, baze podataka, mobilni uređaji) u obliku tokova događaja, kao i trajno pohranjivanje ovih tokova događaja za kasnije pronalaženje i manipulaciju.
Sa Kafkom je moguće upravljati strimingom događaja od kraja do kraja na distribuiran, visoko skalabilan, elastičan, otporan na greške i siguran način.
NAPOMENA: 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.
Terminologija
- Kafka: Platforma za striming događaja.
- Kafka tema: Zbirka događaja.
- Kafka pretplatnik/potrošač: Komponenta odgovorna za preuzimanje događaja pohranjenih u Kafka temi.
- Kafka broker: Server sloja pohrane Kafka klastera.
- SSL/TLS: SSL je siguran protokol razvijen za bezbedno slanje informacija preko Interneta. TLS je nasljednik SSL-a, predstavljenog 1999. godine.
- SASL: Okvir koji pruža mehanizme za autentifikaciju korisnika, provjeru integriteta podataka i enkripciju.
- Streaming API subscriber: Component responsible for retrieval of events stored in topics defined in Routing Active Testing and meant for external access.
- Autoritet certifikata: Pouzdani entitet koji izdaje i opoziva certifikate javnog ključa.
- Osnovni certifikat ovlaštenja za certifikate: Certifikat javnog ključa koji identifikuje Izdavač certifikata.
Kako radi Streaming API
Kao što je ranije spomenuto, Streaming API omogućava vanjskim klijentima da dohvate informacije o metrikama iz Kafke.
Sve metrike koje su prikupili agenti za testiranje tokom testa ili zadatka praćenja šalju se usluzi Stream.
Nakon faze obrade, Stream servis objavljuje te metrike na Kafki zajedno s dodatnim metapodacima.
Kafka Topics
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.{ACCOUNT}.metrics
- Sve metričke poruke za dati račun su objavljene u ovoj temi
- Velike količine podataka
- Visoka učestalost ažuriranja
- paa.public.accounts.{ACCOUNT}.metadata
- Sadrži metapodatke koji se odnose na metričke podatke, nprampneka test, monitor ili agent za testiranje povezan sa metrikom
- Male količine podataka
- Niska učestalost ažuriranja
Omogućavanje Streaming API-ja
NAPOMENA: These instructions are to be run on the Control Center server using sudor.
Budući da Streaming API dodaje neke dodatne troškove Kontrolnom centru, on nije omogućen prema zadanim postavkama. Da bismo omogućili API, prvo moramo omogućiti objavljivanje metrike u Kafki u glavnoj konfiguraciji file:
- /etc/netrounds/netrounds.conf
KAFKA_METRICS_ENABLED = Tačno
KAFKA_PUBLISH_METADATA_FOR_STREAMS = True
UPOZORENJE: Omogućavanje ove funkcije može uticati na performanse Kontrolnog centra. Provjerite jeste li dimenzionirali svoju instancu u skladu s tim.
Zatim, da biste omogućili prosljeđivanje ovih metrika na ispravne Kafka teme:
- /etc/netrounds/metrics.yaml
streaming-api: istina
Da omogućite i pokrenete Streaming API usluge, pokrenite:
- sudo ncc usluge omogućavaju metriku s vremenskim razmjerom
- sudo ncc usluge start timescaledb metrike
Konačno, ponovo pokrenite servise:
- sudo ncc usluge restart
NAPOMENA: The KAFKA_PUBLISH_RESOURCES setting has been deprecated. It should be removed from your configuration. Use KAFKA_PUBLISH_METADATA_FOR_STREAMS = True instead.
Provjera da Streaming API radi u Kontrolnom centru
NAPOMENA: Ova uputstva treba da se izvode na serveru Kontrolnog centra.
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 install 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.
Zamijenite myaccount kratkim imenom vašeg računa (ovo je ono što vidite u vašem Kontrolnom centru URL):
- izvoz METRICS_TOPIC=paa.public.accounts.myaccount.metrics
- izvoz METADATA_TOPIC=paa.public.accounts.myaccount.metadata
Sada biste trebali vidjeti metriku pokretanjem ove naredbe:
- kafkacat -b ${KAFKA_FQDN}:9092 -t ${METRICS_TOPIC} -C -e
To view metapodataka, pokrenite sljedeću naredbu (imajte na umu da se ovo neće ažurirati tako često):
- kafkacat -b ${KAFKA_FQDN}:9092 -t ${METADATA_TOPIC} -C -e
NAPOMENA: 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.
Ovo potvrđuje da imamo funkcionalni Streaming API iz Kontrolnog centra. Međutim, najvjerovatnije ste umjesto toga zainteresirani za pristup podacima s vanjskog klijenta. Sljedeći odjeljak opisuje kako otvoriti Kafku za vanjski pristup.
Otvaranje Kafke za vanjske domaćine
NAPOMENA: Ova uputstva treba da se izvršavaju na serveru Kontrolnog centra.
Podrazumevano, Kafka koja radi na Kontrolnom centru je konfigurisana da sluša samo na lokalnom hostu za internu upotrebu.
Moguće je otvoriti Kafku za vanjske klijente modifikacijom Kafka postavki.
Povezivanje sa Kafkom: upozorenja
OPREZ: Molimo vas da ovo pažljivo pročitate, jer je lako naići na probleme u vezi sa Kafkom ako niste razumjeli ove koncepte.
U postavci Kontrolnog centra opisanom u ovom dokumentu postoji samo jedan Kafka broker.
Međutim, imajte na umu da Kafka broker treba da radi kao dio Kafka klastera koji se može sastojati od mnogih Kafka brokera.
Kada se povezujete sa Kafka brokerom, početnu vezu postavlja Kafka klijent. Preko ove veze Kafka broker će zauzvrat vratiti listu „oglašenih slušalaca“, koja je lista jednog ili više Kafka brokera.
Kada primi ovu listu, Kafka klijent će prekinuti vezu, a zatim se ponovo povezati sa jednim od ovih oglašenih slušalaca. Oglašeni slušaoci moraju sadržavati imena hostova ili IP adrese koje su dostupne Kafka klijentu, inače se klijent neće uspjeti povezati.
Ako se koristi SSL enkripcija, koja uključuje SSL certifikat koji je vezan za određeno ime hosta, još je važnije da Kafka klijent dobije ispravnu adresu za povezivanje, jer u suprotnom veza može biti odbijena.
Više o slušaocima Kafke pročitajte ovdje: www.confluent.io/blog/kafka-listeners-explained
SSL/TLS enkripcija
Da bismo bili sigurni da je samo pouzdanim klijentima dozvoljen pristup Kafki i Streaming API-ju, moramo konfigurirati sljedeće:
- Autentifikacija: Klijenti moraju dati korisničko ime i lozinku putem SSL/TLS sigurne veze između klijenta i Kafke.
- Autorizacija: Ovlašteni klijenti mogu obavljati zadatke regulirane ACL-ovima.
Ovdje je krajview:
Da biste u potpunosti razumjeli kako SSL/TLS enkripcija funkcionira za Kafku, pogledajte zvaničnu dokumentaciju: docs.confluent.io/platform/current/kafka/encryption.html
SSL/TLS certifikat je završenview
NAPOMENA: U ovom pododjeljku koristit ćemo sljedeću terminologiju:
Certifikat: SSL certifikat potpisan od strane Certificate Authority (CA). Svaki Kafka broker ima jednog.
Keystore: Skladište ključeva file koji pohranjuje certifikat. Skladište ključeva file sadrži privatni ključ certifikata; stoga ga treba bezbedno čuvati.
Truststore: A file koji sadrže pouzdane CA certifikate.
Za postavljanje provjere autentičnosti između vanjskog klijenta i Kafke koji radi u Kontrolnom centru, obje strane moraju imati definirano skladište ključeva s povezanim certifikatom potpisanim od strane Izdavača certifikata (CA) zajedno sa CA root certifikatom.
Pored ovoga, klijent mora imati i truststore sa CA root certifikatom.
CA root certifikat je zajednički za Kafka brokera i Kafka klijenta.
Kreiranje potrebnih certifikata
Ovo je pokriveno u “Dodatku” na stranici 16.
Kafka Broker SSL/TLS konfiguracija u Kontrolnom centru
NAPOMENA: Ova uputstva treba da se izvode na serveru Kontrolnog centra.
NAPOMENA: 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 pohranjen na disku sa file ekstenzija .jks.
Nakon što su vam potrebni certifikati kreirani i za Kafka brokera i za Kafka klijenta dostupne, možete nastaviti tako što ćete konfigurirati Kafka brokera koji radi u Kontrolnom centru. Morate znati sljedeće:
- : Javno ime hosta Kontrolnog centra; ovo mora biti rješivo i dostupno Kafka klijentima.
- : Lozinka za skladište ključeva data prilikom kreiranja SSL sertifikata.
- i : Ovo su lozinke koje želite postaviti za administratora i klijenta. Imajte na umu da možete dodati još korisnika, kao što je navedeno u prample.
Edit or append (with sudo access) the properties below in /etc/kafka/server.properties, inserting the above
variables as shown:
UPOZORENJE: Nemojte uklanjati PLAINTEXT://localhost:9092; ovo će prekinuti funkcionalnost Kontrolnog centra jer interni servisi neće moći komunicirati.
...
# Adrese koje Kafka broker sluša.
listeners=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
# Ovo su hostovi koji se oglašavaju nazad na bilo koji klijent koji se povezuje.
advertised.listeners=PLAINTEXT://localhost:9092,SASL_SSL:// :9093
… ####### CUSTOM CONFIG
# SSL KONFIGURACIJA
ssl.endpoint.identification.algorithm=
ssl.keystore.location=/var/ssl/private/kafka.server.keystore.jks
ssl.keystore.password=
ssl.key.password=
ssl.client.auth=none
ssl.protocol=TLSv1.2
# SASL konfiguracija
sasl.enabled.mechanisms=PLAIN
listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginMo
dule obavezno \
korisničko ime=”admin” \
lozinka=” ” \
User:admin=”<admin_pwd>” \
user client=”<client_pwd>”;
# NAPOMENA više korisnika se može dodati sa user_ =
# Autorizacija, uključite ACL-ove
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
superusers=User:admin
Postavljanje lista kontrole pristupa (ACL)
Uključivanje ACL-ova na lokalnom hostu
UPOZORENJE: Prvo moramo postaviti ACL-ove za localhost, tako da sam Kontrolni centar i dalje može pristupiti Kafki. Ako se to ne uradi, stvari će se pokvariti.
######### ACL unosi za anonimne korisnike
/usr/lib/kafka/bin/kafka-acls.sh \
–autorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal User: ANONYMOUS –allow-host 127.0.0.1 –cluster
/usr/lib/kafka/bin/kafka-acls.sh \
–autorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal Korisnik:ANONYMOUS –allow-host 127.0.0.1 –tema '*'
/usr/lib/kafka/bin/kafka-acls.sh \
–autorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal User: ANONYMOUS –allow-host 127.0.0.1 –group ‘*’
Zatim moramo omogućiti ACL-ove za vanjski pristup samo za čitanje, tako da vanjski korisnici mogu čitati paa.public.* teme.
NAPOMENA: Za detaljniju kontrolu, pogledajte zvaničnu Kafka dokumentaciju.
######### ACL unosi za vanjske korisnike
/usr/lib/kafka/bin/kafka-acls.sh \
–autorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–dodaj –dopusti-glavni korisnik:* –operacija čitanje –opisivanje operacije \
–grupa 'NCC'
/usr/lib/kafka/bin/kafka-acls.sh \
–autorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–dodaj –dopusti-glavni korisnik:* –operacija čitanje –opisivanje operacije \
–topic paa.public. –resource-pattern-type prefiks
Kada završite s ovim, morate ponovo pokrenuti usluge:
sudo ncc usluge restart
Da biste potvrdili da klijent može uspostaviti sigurnu vezu, pokrenite sljedeću naredbu na vanjskom klijentskom računaru (ne na serveru Kontrolnog centra). Ispod, PUBLIC_HOSTNAME je ime hosta Kontrolnog centra:
openssl s_client -debug -connect ${PUBLIC_HOSTNAME}:9093 -tls1_2 | grep “Sigurno ponovno pregovaranje je podržano”
U izlazu naredbe trebali biste vidjeti certifikat servera kao i sljedeće:
Podržan IS sigurnog ponovnog pregovaranja
Da biste bili sigurni da je internim uslugama odobren pristup Kafka serveru, provjerite sljedeći dnevnikfiles:
- /var/log/kafka/server.log
- /var/log/kafka/kafka-authorizer.log
Provjera veze s vanjskim klijentom
kafkacat
NAPOMENA: Ova uputstva treba da se izvode na klijentskom računaru (ne na serveru Kontrolnog centra).
NAPOMENA: Da biste prikazali metričke informacije, uvjerite se da barem jedan monitor radi u Kontrolnom centru.
Za provjeru i validaciju povezanosti kao eksternog klijenta, moguće je koristiti kafkacat uslužni program koji je instaliran u odjeljku “Provjera da li Streaming API radi u Kontrolnom centru” na stranici 4.
Izvršite sljedeće korake:
NAPOMENA: U nastavku, CLIENT_USER je korisnik koji je prethodno naveden u 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.
Kreirajte a file client.properties sa sljedećim sadržajem:
security.protocol=SASL_SSL
ssl.ca.location={PATH_TO_CA_CERT}
sasl.mechanisms=PLAIN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
gdje
- {PATH_TO_CA_CERT} je lokacija CA root certifikata koji koristi Kafka broker
- {CLIENT_USER} i {CLIENT_PASSWORD} su korisnički akreditivi za klijenta.
- Pokrenite sljedeću naredbu da vidite poruku koju konzumira kafkacat:
izvoz KAFKA_FQDN=
izvoz METRICS_TOPIC=paa.public.accounts. .metrics
kafkacat -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
gdje je {METRICS_TOPIC} naziv Kafkine teme sa prefiksom “paa.public.”.
NAPOMENA: Starije verzije kafkacata ne pružaju opciju -F za čitanje postavki klijenta iz a file. Ako koristite takvu verziju, morate dati iste postavke iz komandne linije kao što je prikazano ispod.
kafkacat -b ${KAFKA_FQDN}:9093 \
-X security.protocol=SASL_SSL \
-X ssl.ca.location={PATH_TO_CA_CERT} \
-X sasl.mechanisms=OBIČAN \
-X sasl.username={CLIENT_USER} \
-X sasl.password={CLIENT_PASSWORD} \
-t ${METRICS_TOPIC} -C -e
Da biste otklonili greške u povezivanju, možete koristiti opciju -d:
Otklanjanje grešaka u komunikaciji potrošača
kafkacat -d potrošač -b ${KAFKA_FQDN}:9093 -F svojstva klijenta -t ${METRICS_TOPIC} -C -e
# Otklanjanje grešaka u komunikaciji brokera
kafkacat -d broker -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
Obavezno pogledajte dokumentaciju za Kafka klijent biblioteku koja se koristi, jer se svojstva mogu razlikovati od onih u client.properties.
Format poruke
The messages used for the metrics and metadata topics are serialized in the Protocol buffers (protobuf)format (see developers.google.com/protocol-buffers). Šeme za ove poruke se pridržavaju sljedećeg formata:
Metrics Protobuf Schema
sintaksa = “proto3”;
import “google/protobuf/timestamp.proto”;
paket paa.streamingapi;
opcija go_package = “.;paa_streamingapi”;
poruka metrika {
google.protobuf.Timestamp timestamp = 1;
mapa vrijednosti = 2;
int32 stream_id = 3;
}
/**
* Metrička vrijednost može biti cijeli broj ili float.
*/
poruka MetricValue {
jedan od tipa {
int64 int_val = 1;
float float_val = 2;
}
}
Metadata Protobuf Schema
sintaksa = “proto3”;
paket paa.streamingapi;
opcija go_package = “.;paa_streamingapi”;
metapodaci poruke {
int32 stream_id = 1;
string stream_name = 2;
mapa tags = 13;
}
Klijent Examples
NAPOMENA: Ove naredbe su namijenjene za izvođenje na vanjskom klijentu, nprampna vašem laptopu ili sličnom, a ne u Kontrolnom centru.
NAPOMENA: Da bi se prikazale metričke informacije, uvjerite se da barem jedan monitor radi u Kontrolnom centru.
Tarball Control Center uključuje arhivu paa-streaming-api-client-examples.tar.gz (client-examples), koji sadrži example Python skripta koja pokazuje kako se koristi Streaming API.
Instalacija i konfiguracija klijenta npramples
Naći ćete bivšeg klijentaamples in the Routing Active Testing Control Center folder:
izvoz CC_VERSION=4.6.0
cd ./paa-control-center_${CC_VERSION}
ls paa-streaming-api-client-examples*
Za instaliranje client-exampdatoteke na vašem vanjskom klijentskom računaru, postupite na sljedeći način:
# Kreirajte direktorij za izdvajanje sadržaja klijenta npramples tarball
mkdir paa-streaming-api-client-examples
# Izvucite sadržaj klijenta npramples tarball
tar xzf paa-streaming-api-client-examples.tar.gz -C paa-streaming-api-client-examples
# Idite na novokreirani direktorij
cd paa-streaming-api-client-examples
klijent-bivamples zahtijeva Docker za pokretanje. Upute za preuzimanje i instalaciju za Docker možete pronaći na https://docs.docker.com/engine/install.
Korištenje Client Examples
Klijent-bivšiamples alati mogu da rade u osnovnom ili naprednom režimu za pravljenje examppredmeta različite složenosti. U oba slučaja, također je moguće pokrenuti examples sa konfiguracijom file koji sadrži dodatna svojstva za dalje prilagođavanje klijentske strane.
Osnovni način rada
U osnovnom načinu rada, metrika i njihovi metapodaci se prenose odvojeno. U tu svrhu, klijent sluša svaku Kafka temu koja je dostupna za vanjski pristup i jednostavno ispisuje primljene poruke na konzolu.
Za početak izvršavanja osnovnog examples, pokreni:
./build.sh run-basic –kafka-brokers localhost:9092 –račun ACCOUNT_SHORTNAME
gdje je ACCOUNT_SHORTNAME kratki naziv računa s kojeg želite dobiti metriku.
Za prekid izvršenja exampda, pritisnite Ctrl + C. (Može doći do malog kašnjenja prije nego što se izvršenje zaustavi jer klijent čeka na događaj isteka.)
Napredni način rada
NAPOMENA: metrika se prikazuje samo za HTTP monitore koji rade u Kontrolnom centru.
Izvršenje u naprednom modu pokazuje korelaciju između metrike i poruka metapodataka. To je moguće zahvaljujući prisutnosti polja ID toka u svakoj poruci metrike koja se odnosi na odgovarajuću poruku metapodataka.
Da biste izvršili napredni examples, pokreni:
./build.sh run-advanced –kafka-brokers localhost:9092 –račun ACCOUNT_SHORTNAME
gdje je ACCOUNT_SHORTNAME kratki naziv računa s kojeg želite dobiti metriku.
Za prekid izvršenja exampda, pritisnite Ctrl + C. (Može doći do malog kašnjenja prije nego što se izvršenje zaustavi jer klijent čeka na događaj isteka.)
Dodatne postavke
Moguće je pokrenuti exampdatoteke sa dodatnom konfiguracijom klijenta pomoću –config-file opcija koju slijedi a file ime koje sadrži svojstva u obliku ključ=vrijednost.
./build.sh run-advanced \
–kafka-brokers localhost:9092 \
–račun ACCOUNT_SHORTNAME \
–config-file client_config.properties
NAPOMENA: Sve files referencirani u gornjoj naredbi moraju se nalaziti u trenutnom direktoriju i upućivati koristeći samo relativne staze. Ovo se odnosi i na –config-file argument i na sve unose u konfiguraciji file koji opisuju file lokacijama.
Provjera autentičnosti vanjskog klijenta
Za provjeru autentičnosti klijenta izvan kontrolnog centra koristeći client-examples, izvršite sljedeće korake:
- From the Routing Active Testing Control Center folder, switch to the paa-streaming-api-client-examples folder:
cd paa-streaming-api-client-examples - Kopirajte CA root certifikat ca-cert u trenutni direktorij.
- Kreirajte client.properties file sa sljedećim sadržajem:
security.protocol=SASL_SSL
ssl.ca.location=ca-cert
sasl.mechanism=PLAIN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
gdje su {CLIENT_USER} i {CLIENT_PASSWORD} korisnički akreditivi za klijenta. - Pokrenite osnovni examples:
izvoz KAFKA_FQDN=
./build.sh run-basic –kafka-brokers ${KAFKA_FQDN}:9093 \
–račun ACCOUNT_SHORTNAME
–config-file client.properties
gdje je ACCOUNT_SHORTNAME kratki naziv računa s kojeg želite dobiti metriku. - Pokreni napredni examples:
izvoz KAFKA_FQDN=
./build.sh run-advanced –kafka-brokers ${KAFKA_FQDN}:9093 \
–račun ACCOUNT_SHORTNAME
–config-file client.properties
Dodatak
U ovom dodatku opisujemo kako kreirati:
- skladište ključeva file za pohranjivanje SSL certifikata Kafka brokera
- truststore file za pohranjivanje korijenskog certifikata Izdavača certifikata (CA) koji se koristi za potpisivanje Kafka brokerskog certifikata.
Kreiranje Kafka brokerskog certifikata
Kreiranje certifikata korištenjem pravog tijela za izdavanje certifikata (preporučeno)
Preporučuje se da dobijete pravi SSL certifikat od pouzdanog CA.
Kada se odlučite za CA, kopirajte njihov CA root certifikat ca-cert file na svoj vlastiti put kao što je prikazano u nastavku:
izvoz CA_PATH=~/my-ca
mkdir ${CA_PATH}
cp ca-cert ${CA_PATH}
Kreirajte vlastito tijelo za izdavanje certifikata
NAPOMENA: Uobičajeno bi trebalo da imate svoj sertifikat potpisan od strane pravog autoriteta za izdavanje sertifikata; vidi prethodni pododjeljak. Ono što slijedi je samo bivšiample.
Ovdje kreiramo vlastiti korijenski certifikat Izdavača certifikata (CA). file važi 999 dana (ne preporučuje se u proizvodnji):
# Kreirajte direktorij za pohranjivanje CA
izvoz CA_PATH=~/my-ca
mkdir ${CA_PATH}
# Generirajte CA certifikat
openssl req -new -x509 -keyout ${CA_PATH}/ca-key -out ${CA_PATH}/ca-cert -days 999
Kreiranje Client Truststore
Sada možete kreirati truststore file koji sadrži ca-cert generiran iznad. Ovo file will be needed by the Kafka client that will access the Streaming API: keytool -keystore kafka.client.truststore.jks \
-alias CARoot \
-importcert -file ${CA_PATH}/ca-cert
Sada kada je CA certifikat u skladištu povjerenja, klijent će vjerovati svakom certifikatu potpisanom s njim.
Trebalo bi da kopirate file kafka.client.truststore.jks na poznatu lokaciju na vašem klijentskom računaru i pokažite na nju u postavkama.
Kreiranje Keystore-a za Kafka brokera
Da biste generirali Kafka broker SSL certifikat, a zatim i spremište ključeva kafka.server.keystore.jks, postupite na sljedeći način:
Generisanje SSL sertifikata
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 server \
-važenje 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.
Kreirajte zahtjev za potpisivanje certifikata i pohranite ga u file pod nazivom cert-server-request:
keytool -keystore kafka.server.keystore.jks \
-alias server \
-certreq \
-file cert-server-request
Sada biste trebali poslati file cert-server-request vašem certifikacijskom tijelu (CA) ako koristite pravi. Zatim će vratiti potpisani certifikat. U nastavku ćemo ovo nazvati cert-server-potpisanim.
Potpisivanje SSL certifikata korištenjem samostalno kreiranog CA certifikata
NAPOMENA: Opet, korištenje vlastitog CA se ne preporučuje u proizvodnom sistemu.
Potpišite certifikat koristeći CA pomoću file cert-server-request, koji proizvodi potpisani certifikat cert-server-signed. Vidi ispod; ca-password je lozinka postavljena prilikom kreiranja CA certifikata.
cd /var/ssl/private
openssl x509 -req \
- -CA ${CA_PATH}/ca-cert \
- -CAkey ${CA_PATH}/ca-ključ \
- -u cert-server-zahtjevu \
- -out cert-server-signed \
- -dana 999 -CAcreateserial \
- -passin pass:{ca-password}
Uvoz potpisanog certifikata u Keystore
Uvezite ca-cert root certifikat u spremište ključeva:
keytool -keystore kafka.server.keystore.jks \
-alias ca-cert \
-uvoz \
-file ${CA_PATH}/ca-cert
Uvezite potpisani certifikat koji se naziva cert-server-signed:
keytool -keystore kafka.server.keystore.jks \
-alias server \
-uvoz \
-file cert-server-potpisan
The file kafka.server.keystore.jks bi trebalo kopirati na poznatu lokaciju na serveru Kontrolnog centra, a zatim navesti u /etc/kafka/server.properties.
Korištenje Streaming API-ja
Generale
API za striming dohvaća i testne i nadzorne podatke. Nije moguće izdvojiti jednu od ovih kategorija.
API za striming ne preuzima podatke iz testova zasnovanih na skripti (onih predstavljenih pravougaonikom umjesto slagalicom u GUI-u Kontrolnog centra), kao što su testovi aktivacije Ethernet usluge i testovi transparentnosti.
Kafkina imena tema
Nazivi Kafka tema za API za streaming su sljedeći, gdje je %s kratko ime naloga Kontrolnog centra (naznačeno prilikom kreiranja naloga):
const (
exporterName = “kafka”
metadataTopicTpl = “paa.public.accounts.%s.metadata”
metricsTopicTpl = “paa.public.accounts.%s.metrics”
)
ExampLes of Korištenje Streaming API-ja
Bivšiampdatoteke koje slijede nalaze se u tarball-u paa-streaming-api-client-examples.tar.gz sadržan u tarball-u Kontrolnog centra.
Prvo, postoji osnovni exampprikazuje kako se metrika i njihovi metapodaci emituju odvojeno i jednostavno štampaju primljene poruke na konzoli. Možete ga pokrenuti na sljedeći način:
sudo ./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME There is also a more advanced example gde su metrika i poruke metapodataka u korelaciji. Koristite ovu naredbu da ga pokrenete:
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 docs.docker.com/engine/install/linux-postinstall.
Juniper Networks, Juniper Networks logo, Juniper i Junos su registrovani zaštitni znakovi Juniper Networks, Inc. u Sjedinjenim Državama i drugim zemljama. Svi ostali zaštitni znaci, uslužni znaci, registrovani znaci ili registrovani uslužni znaci vlasništvo su njihovih odgovarajućih vlasnika. Juniper Networks ne preuzima nikakvu odgovornost za bilo kakve netačnosti u ovom dokumentu. Juniper Networks zadržava pravo da promijeni, modificira, prenese ili na drugi način revidira ovu publikaciju bez prethodne najave. Copyright © 2025 Juniper Networks,
Inc. Sva prava zadržana.

Dokumenti / Resursi
![]() |
JUNIPER NETWORKS Routing Active Testing Solution Brief [pdf] Korisnički priručnik Routing Active Testing Solution Brief, Active Testing Solution Brief, Testing Solution Brief, Solution Brief |
