Vodič za API za strujanje
Objavljeno
2023-07-07
OSLOBOĐENJE
4.2
Uvod
Ovaj vodič opisuje kako izvući podatke iz Paragon Active Assurance putem API-ja za strujanje proizvoda.
API kao i streaming klijent uključeni su u instalaciju Paragon Active Assurance.
Međutim, potrebno je malo konfiguracije prije nego što možete koristiti API. Ovo je pokriveno u poglavlju “Konfiguriranje API-ja za strujanje” na stranici 1.
Konfiguriranje API-ja za strujanje
Nadview
Ovo poglavlje opisuje kako konfigurirati Streaming API da omogući pretplatu na metričke poruke putem Kafke.
pr
U nastavku ćemo proći kroz:
- Kako omogućiti Streaming API
- Kako konfigurirati Kafku da sluša vanjske klijente
- Kako konfigurirati Kafku da koristi ACL-ove i postaviti SSL enkripciju za navedene klijente
Kafka je platforma za strujanje događaja koja omogućuje snimanje podataka poslanih iz različitih izvora događaja (senzora, baza podataka, mobilnih uređaja) u stvarnom vremenu u obliku tokova događaja, kao i trajno pohranjivanje tih tokova događaja za kasnije dohvaćanje i manipulaciju.
S Kafkom je moguće upravljati protokom događaja od kraja do kraja na distribuiran, visoko skalabilan, elastičan, tolerantan na pogreške i siguran način.
BILJEŠKA: Kafka se može konfigurirati na mnogo različitih načina i dizajniran je za skalabilnost i redundantne sustave. Ovaj se dokument usredotočuje samo na to kako ga konfigurirati da koristi značajku Streaming API koja se nalazi u Paragon Active Assurance Control Center. Za naprednije postavke upućujemo na službenu Kafka dokumentaciju: kafka.apache.org/26/documentation.html.
Terminologija
- Kafka: Platforma za strujanje događaja.
- Kafkina tema: Zbirka događaja.
- Kafka pretplatnik/potrošač: Komponenta odgovorna za dohvaćanje događaja pohranjenih u Kafka temi.
- Kafka broker: poslužitelj sloja pohrane Kafka klastera.
- SSL/TLS: SSL je siguran protokol razvijen za sigurno slanje informacija preko Interneta. TLS je nasljednik SSL-a, predstavljenog 1999.
- SASL: Okvir koji pruža mehanizme za autentifikaciju korisnika, provjeru integriteta podataka i enkripciju.
- Streaming API pretplatnik: Komponenta odgovorna za dohvaćanje događaja pohranjenih u temama definiranim u Paragon Active Assurance i namijenjena vanjskom pristupu.
- Izdavač certifikata: Povjerljivi subjekt koji izdaje i opoziva certifikate javnih ključeva.
- Korijenski certifikat Izdavača certifikata: Certifikat javnog ključa koji identificira Izdavača potvrda.
Kako radi Streaming API
Kao što je prethodno spomenuto, API za strujanje omogućuje vanjskim klijentima dohvaćanje informacija o metrikama iz Kafke.
Sve metrike koje su prikupili testni agenti tijekom testa ili zadatka praćenja šalju se usluzi Stream.
Nakon faze obrade, usluga Stream objavljuje te metrike na Kafki zajedno s dodatnim metapodacima.
Kafkine teme
Kafka ima koncept tema kojima se objavljuju svi podaci. U Paragon Active Assuranceu dostupno je mnogo takvih Kafka tema; međutim, samo je podskup njih namijenjen za vanjski pristup.
Svaki Paragon Active Assurance račun u Control Centeru ima dvije posvećene teme. U nastavku, ACCOUNT je kratki naziv računa:
- paa.javni.računi.{ACCOUNT}.metrics
- Sve mjerne poruke za navedeni račun objavljene su 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, npramptest, monitor ili test agent povezan s metrikom
- Male količine podataka
- Niska učestalost ažuriranja
Omogućivanje API-ja za strujanje
BILJEŠKA: Ove upute treba pokrenuti na poslužitelju Kontrolnog centra koristeći sudo.
Budući da Streaming API dodaje nešto dodatnog opterećenja Kontrolnom centru, 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 = Istina
UPOZORENJE: Omogućavanje ove značajke može utjecati na performanse kontrolnog centra. Provjerite jeste li u skladu s tim dimenzionirali svoju instancu.
Zatim, kako biste omogućili prosljeđivanje ovih metrika ispravnim Kafka temama:
- /etc/netrounds/metrics.yaml
streaming-api: istina
Da biste omogućili i pokrenuli Streaming API usluge, pokrenite:
usluge sudo ncc omogućuju timescaledb metriku
usluge sudo ncc pokreću timescaledb metrike
Na kraju ponovno pokrenite usluge:
ponovno pokretanje usluga sudo ncc
Provjera radi li API za strujanje u kontrolnom centru
BILJEŠKA: Ove upute treba pokrenuti na poslužitelju Kontrolnog centra.
Sada možete provjeriti primate li metriku o ispravnim Kafkinim temama. Da biste to učinili, instalirajte uslužni program kafkacat:
sudo apt-get ažuriranje
sudo apt-get instaliraj kafkacat
Ako imate test ili monitor koji se izvodi u Kontrolnom centru, trebali biste moći koristiti kafkacat za primanje metrike i metapodataka o ovim temama.
Zamijenite myaccount kratkim nazivom svog računa (ovo vidite u svom 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
Do 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
BILJEŠKA:
kafkacat”Klijent pramples” na stranici 14
Ovo potvrđuje da imamo radni API za strujanje iz Kontrolnog centra. Međutim, najvjerojatnije vas umjesto toga zanima pristup podacima s vanjskog klijenta. Sljedeći odjeljak opisuje kako otvoriti Kafku za vanjski pristup.
Otvaranje Kafke za vanjske hostove
BILJEŠKA: Ove upute treba pokrenuti na poslužitelju Kontrolnog centra.
Prema zadanim postavkama, Kafka koja radi u Kontrolnom centru konfigurirana je samo za slušanje na lokalnom hostu za internu upotrebu.
Moguće je otvoriti Kafku za vanjske klijente izmjenom postavki Kafke.
Povezivanje s Kafkom: upozorenja
OPREZ: Pažljivo pročitajte ovo jer je lako naići na probleme s vezom s Kafkom ako niste razumjeli ove koncepte.
U postavci kontrolnog centra opisanoj u ovom dokumentu, postoji samo jedan Kafka broker.
Međutim, imajte na umu da je Kafka broker namijenjen za rad kao dio Kafka klastera koji se može sastojati od mnogo Kafka brokera.
Prilikom povezivanja s Kafka brokerom, početnu vezu postavlja Kafka klijent. Preko ove veze Kafka broker će zauzvrat vratiti popis "oglašenih slušatelja", koji je popis jednog ili više Kafka brokera.
Kada primi ovaj popis, Kafka klijent će prekinuti vezu, a zatim se ponovno spojiti na jednog od ovih oglašenih slušatelja. Oglašeni slušatelji moraju sadržavati imena hostova ili IP adrese koje su dostupne Kafka klijentu ili se klijent neće uspjeti povezati.
Ako se koristi SSL enkripcija, uključujući SSL certifikat koji je vezan uz određeni naziv glavnog računala, još je važnije da Kafka klijent dobije ispravnu adresu na koju se povezuje, jer u protivnom veza može biti odbijena.
Više o slušateljima Kafke pročitajte ovdje: www.confluent.io/blog/kafka-listeners-explained
SSL/TLSEnkripcija
Kako bismo bili sigurni da samo pouzdani klijenti smiju pristupiti Kafki i API-ju za strujanje, moramo konfigurirati sljedeće:
- Autentifikacija: Klijenti moraju dati korisničko ime i lozinku putem sigurne SSL/TLS veze između klijenta i Kafke.
- Autorizacija: Autentificirani klijenti mogu obavljati zadatke regulirane ACL-ovima.
Ovdje je krajview:
*) Provjera autentičnosti korisničkog imena/lozinke izvedena na SSL-kriptiranom kanalu
Da biste u potpunosti razumjeli kako SSL/TLS enkripcija radi za Kafku, pogledajte službenu dokumentaciju: docs.confluent.io/platform/current/kafka/encryption.html
SSL/TLS certifikat gotovview
NAPOMENA: U ovom pododjeljku koristit ćemo sljedeću terminologiju:
Certifikat: SSL certifikat potpisan od strane Izdavača certifikata (CA). Svaki Kafka broker ima jedan.
Keystore: Spremište ključeva file koji pohranjuje certifikat. Spremište ključeva file sadrži privatni ključ certifikata; stoga ga treba čuvati na sigurnom.
Truststore: A file koji sadrži pouzdane CA certifikate.
Da biste postavili autentifikaciju između vanjskog klijenta i Kafke koja radi u Kontrolnom centru, obje strane moraju imati definirano spremište ključeva s povezanim certifikatom potpisanim od strane Tijela za izdavanje certifikata (CA) zajedno s CA korijenskim certifikatom.
Osim toga, klijent također mora imati truststore s CA root certifikatom.
CA korijenski certifikat zajednički je Kafka brokeru i Kafka klijentu.
Stvaranje potrebnih certifikata
Ovo je pokriveno u “Dodatku” na stranici 17.
Kafka Broker SSL/TLS konfiguracija u Kontrolnom centru
NAPOMENA: Ove upute treba pokrenuti na poslužitelju Kontrolnog centra.
BILJEŠKA: Prije nastavka, morate kreirati spremište ključeva koje sadrži SSL certifikat slijedeći upute u “Dodatku” na stranici 17. Dolje spomenuti putovi dolaze iz ovih uputa.
SSL spremište ključeva je a file pohranjen na disku s file nastavak .jks.
Nakon što imate dostupne potrebne certifikate stvorene i za Kafka brokera i za Kafka klijenta, možete nastaviti konfiguriranjem Kafka brokera koji radi u Kontrolnom centru. Morate znati sljedeće:
- : javno ime glavnog računala Kontrolnog centra; ovo mora biti rješivo i dostupno Kafkinim klijentima.
- : Lozinka spremišta ključeva navedena prilikom kreiranja SSL certifikata.
- i : Ovo su lozinke koje želite postaviti za administratora i korisnika klijenta. Imajte na umu da možete dodati više korisnika, kao što je naznačeno u prample.
Uredite ili dodajte (sa sudo pristupom) svojstva ispod u /etc/kafka/server.properties, umetanjem gornjih varijabli kao što je prikazano:
UPOZORENJE: Nemojte uklanjati PLAINTEXT://localhost:9092; ovo će prekinuti funkcionalnost kontrolnog centra jer interne usluge neće moći komunicirati.
...
# Adrese koje Kafka broker sluša.
slušatelji=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
# Ovo su hostovi koji se oglašavaju natrag svakom klijentu koji se povezuje.
advertised.listeners=PLAINTEXT://localhost:9092,SASL_SSL:// :9093
...
####### PRILAGOĐENA KONFIG
# 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=ništa
ssl.protocol=TLSv1.2
# SASL konfiguracija
sasl.enabled.mechanisms=OBIČAN
listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginMo
potreban dule \
korisničko ime=”admin” \
lozinka=” ” \
user_admin=” ” \
korisnik_klijent=” ”;
# NAPOMENA više korisnika može se dodati uz user_ =
# Autorizacija, uključite ACL-ove
autorizer.class.name=kafka.security.authorizer.AclAuthorizer
super.users=Korisnik:admin
Postavljanje popisa kontrole pristupa (ACL-ovi)
Uključivanje ACL-ova na lokalnom hostu
UPOZORENJE: Prvo moramo postaviti ACL-ove za localhost, tako da sam Control Center još uvijek može pristupiti Kafki. Ako se to ne učini, stvari će se slomiti.
######### ACL unosi za anonimne korisnike
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–dodaj –allow-principal Korisnik:ANONYMOUS –allow-host 127.0.0.1 –klaster
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal Korisnik:ANONYMOUS –allow-host 127.0.0.1 –topic '*'
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal Korisnik:ANONYMOUS –allow-host 127.0.0.1 –group '*'
Zatim moramo omogućiti ACL-ove za vanjski pristup samo za čitanje, tako da vanjskim korisnicima bude dopušteno čitanje paa.public.* tema.
BILJEŠKA: Za detaljniju kontrolu pogledajte službenu Kafka dokumentaciju.
######### ACL unosi za vanjske korisnike
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal Korisnik:* –operation read –operation describe \
– grupa 'NCC'
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal Korisnik:* –operation read –operation describe \
–tema paa.public. –resource-pattern-type prefiks
Kada to završite, morate ponovno pokrenuti usluge:
ponovno pokretanje usluga sudo ncc
Kako biste provjerili može li klijent uspostaviti sigurnu vezu, pokrenite sljedeću naredbu na vanjskom klijentskom računalu (ne na poslužitelju Kontrolnog centra). Dolje, PUBLIC_HOSTNAME je naziv 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 poslužitelja kao i sljedeće:
Sigurno ponovno pregovaranje JE podržano
Kako biste bili sigurni da je internim uslugama odobren pristup Kafka poslužitelju, provjerite sljedeći dnevnikfiles:
- /var/log/kafka/server.log
- /var/log/kafka/kafka-authorizer.log
Provjera povezanosti vanjskog klijenta
kafkacat
BILJEŠKA: Ove upute treba izvoditi na klijentskom računalu (ne na poslužitelju Kontrolnog centra).
BILJEŠKA: Za prikaz podataka o metrici, provjerite radi li barem jedan monitor u Kontrolnom centru.
Za provjeru i provjeru povezivosti kao vanjskog klijenta moguće je koristiti uslužni program kafkacat koji je instaliran u odjeljku “Provjera radi li Streaming API u Control Centeru” na stranici 4.
Izvršite sljedeće korake:
BILJEŠKA: Dolje, CLIENT_USER je korisnik prethodno naveden u file /etc/kafka/server.properties u Kontrolnom centru: naime, korisnički_klijent i tamo postavljena lozinka.
CA korijenski certifikat koji se koristi za potpisivanje SSL certifikata na strani poslužitelja mora biti prisutan na klijentu.
- Stvorite a file client.properties sa sljedećim sadržajem:
sigurnost.protokol=SASL_SSL
ssl.ca.location={PATH_TO_CA_CERT}
sasl.mechanisms=OBIČAN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
gdje
- {PATH_TO_CA_CERT} je lokacija CA korijenskog certifikata koji koristi Kafka broker
- {CLIENT_USER} i {CLIENT_PASSWORD} korisničke su vjerodajnice za klijenta.
- Izvedite sljedeću naredbu da vidite poruku koju koristi kafkacat:
izvoz KAFKA_FQDN=
izvoz METRICS_TOPIC=paa.public.accounts. .metrika
kafkacat -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
gdje je {METRICS_TOPIC} naziv Kafkine teme s prefiksom “paa.public.”.
BILJEŠKA: Starije verzije kafkacata ne pružaju opciju -F za čitanje postavki klijenta iz a file. Ako koristite takvu verziju, morate dati iste postavke iz naredbenog retka kao što je prikazano u nastavku.
kafkacat -b ${KAFKA_FQDN}:9093 \
-X security.protocol=SASL_SSL \
-X ssl.ca.location={PATH_DO_CA_CERT} \
-X sasl.mechanisms=PLAIN \
-X sasl.username={CLIENT_USER} \
-X sasl.password={CLIENT_PASSWORD} \
-t ${METRICS_TOPIC} -C -e
Za otklanjanje pogrešaka povezivanja, možete koristiti opciju -d:
Otklonite pogreške u komunikaciji s potrošačima
kafkacat -d potrošač -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
# Komunikacija brokera za otklanjanje pogrešaka
kafkacat -d broker -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
Obavezno pogledajte dokumentaciju za Kafka klijentsku biblioteku koja se koristi, jer se svojstva mogu razlikovati od onih u client.properties.
Format poruke
Poruke koje se koriste za teme metrike i metapodataka serijalizirane su u formatu međuspremnika protokola (protobuf) (pogledajte developers.google.com/protocol-buffers). Sheme za ove poruke pridržavaju se sljedećeg formata:
Metrička protobuf shema
sintaksa = “proto3”;
uvoz “google/protobuf/timestamp.proto";
paket paa.streamingapi;
opcija go_package = “.;paa_streamingapi”;
metrika poruke {
google.protobuf.Timestamp vrijemeamp = 1;
karta 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;
}
}
Protobuf shema metapodataka
sintaksa = “proto3”;
paket paa.streamingapi;
opcija go_package = “.;paa_streamingapi”;
metapodaci poruke {
int32 stream_id = 1;
niz stream_name = 2;
karta tags = 13;
}
klijent pramples
BILJEŠKA: Ove su naredbe namijenjene za izvođenje na vanjskom klijentu, nprampprenesite svoje prijenosno računalo ili slično, a ne u Control Center.
BILJEŠKA: Za prikaz informacija o mjernim podacima provjerite radi li barem jedan monitor u Kontrolnom centru.
Tarball kontrolnog centra uključuje arhivu paa-streaming-api-client-examples.tar.gz (klijent-examples), koji sadrži example Python skripta koja pokazuje kako koristiti Streaming API.
Instaliranje i konfiguriranje klijenta Npramples
Nađete bivšeg klijentaampdatoteke u mapi Paragon Active Assurance Control Center:
izvoz CC_VERSION=4.2.0
cd ./paa-control-center_${CC_VERSION}
ls paa-streaming-api-client-exampmanje*
Da biste instalirali client-exampdatoteke na vašem vanjskom klijentskom računalu, postupite na sljedeći način:
# Stvorite direktorij za izdvajanje sadržaja klijenta npramples tarball
mkdir paa-streaming-api-client-examples
# Ekstrahirajte sadržaj klijenta npramples tarball
tar xzf paa-streaming-api-client-examples.tar.gz -C paa-streaming-api-client-examples
# Idite u novostvoreni imenik
cd paa-streaming-api-client-examples
klijent-bivšiamples 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 se izvoditi u osnovnom ili naprednom načinu rada za izgradnju exampdatoteke različite složenosti. U oba slučaja moguće je pokrenuti i exampdatoteke s konfiguracijom file koji sadrži dodatna svojstva za daljnje prilagođavanje strane klijenta.
Osnovni način rada
U osnovnom načinu rada, mjerni podaci i njihovi metapodaci emitiraju se odvojeno. U tu svrhu klijent sluša svaku Kafka temu dostupnu za vanjski pristup i jednostavno ispisuje primljene poruke na konzolu.
Za početak izvođenja osnovnog pramples, pokrenuti:
./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 ovrhe prample, pritisnite Ctrl + C. (Može doći do malog kašnjenja prije nego što se izvršenje zaustavi jer klijent čeka događaj vremenskog ograničenja.)
Napredni način rada
BILJEŠKA: Mjerni podaci se prikazuju samo za HTTP monitore koji rade u Kontrolnom centru.
Izvršenje u naprednom načinu rada pokazuje korelaciju između metrike i poruka metapodataka. To je moguće zahvaljujući prisutnosti polja ID toka u svakoj metričkoj poruci koje se odnosi na odgovarajuću poruku metapodataka.
Za izvršenje naprednog examples, pokrenuti:
./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 ovrhe prample, pritisnite Ctrl + C. (Može doći do malog kašnjenja prije nego što se izvršenje zaustavi jer klijent čeka događaj vremenskog ograničenja.)
Dodatne postavke
Moguće je pokrenuti bivšampdatoteke s dodatnom konfiguracijom klijenta pomoću –config-file opcija nakon koje slijedi a file ime koje sadrži svojstva u obliku ključ=vrijednost.
./build.sh run-advanced \
–kafka-brokers lokalni host:9092 \
–račun ACCOUNT_SHORTNAME \
–konfiguracija-file client_config.properties
BILJEŠKA: Sve files referenciran u gornjoj naredbi mora se nalaziti u trenutnom direktoriju i upućivati korištenjem samo relativnih staza. Ovo se odnosi i na –config-file argument i na sve unose u konfiguraciji file koji opisuju file lokacije.
Provjera valjanosti autentifikacije vanjskog klijenta
Za provjeru autentičnosti klijenta izvan Kontrolnog centra pomoću client-examples, izvršite sljedeće korake:
- Iz mape Paragon Active Assurance Control Center prebacite se na paa-streaming-api-clientexampmapa les:
cd paa-streaming-api-client-examples - Kopirajte CA korijenski certifikat ca-cert u trenutni direktorij.
- Kreirajte klijenta.properties file sa sljedećim sadržajem:
sigurnost.protokol=SASL_SSL
ssl.ca.location=ca-cert
sasl.mechanism=OBIČAN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
gdje su {CLIENT_USER} i {CLIENT_PASSWORD} korisničke vjerodajnice za klijenta. - Pokrenite osnovni examples:
izvoz KAFKA_FQDN=
./build.sh run-basic –kafka-brokers ${KAFKA_FQDN}:9093 \
– račun ACCOUNT_SHORTNAME
–konfiguracija-file klijent.svojstva
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
–konfiguracija-file klijent.svojstva
Dodatak
U ovom dodatku opisujemo kako izraditi:
- spremište ključeva file za pohranu Kafka broker SSL certifikata
- trgovina od povjerenja file za pohranjivanje korijenskog certifikata tijela za izdavanje certifikata (CA) koji se koristi za potpisivanje certifikata brokera Kafka.
Izrada Kafka Broker certifikata
Stvaranje certifikata pomoću stvarnog autoriteta certifikata (preporučeno)
Preporuča se da dobijete pravi SSL certifikat od pouzdanog CA.
Nakon što se odlučite za CA, kopirajte njihov CA korijenski 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}
Stvorite vlastito tijelo za izdavanje certifikata
BILJEŠKA: Normalno bi vaš certifikat trebao potpisati pravi Izdavač certifikata; pogledajte prethodni pododjeljak. Ono što slijedi je samo bivšiample.
Ovdje stvaramo vlastiti korijenski certifikat Izdavača certifikata (CA). file vrijedi 999 dana (ne preporučuje se u proizvodnji):
# Kreirajte direktorij za pohranu CA-a
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
Stvaranje skladišta povjerenja klijenta
Sada možete stvoriti truststore file koji sadrži gore generirani ca-cert. Ovaj file bit će potreban Kafka klijentu koji će pristupiti API-ju za strujanje:
keytool -keystore kafka.client.truststore.jks \
-alias CARoot \
-uvozni certifikat -file ${CA_PATH}/ca-cert
Sada kada je CA certifikat u truststoreu, klijent će vjerovati svakom certifikatu potpisanom njime.
Trebali biste kopirati file kafka.client.truststore.jks na poznato mjesto na vašem klijentskom računalu i pokažite na njega u postavkama.
Stvaranje Keystorea za Kafka Broker
Za generiranje SSL certifikata brokera Kafka, a zatim spremišta ključeva kafka.server.keystore.jks, postupite na sljedeći način:
Generiranje SSL certifikata
Ispod je 999 broj dana valjanosti spremišta ključeva, a FQDN je potpuno kvalificirani naziv domene klijenta (javni naziv hosta čvora).
BILJEŠKA: Važno je da FQDN odgovara točnom nazivu hosta koji će Kafka klijent koristiti za povezivanje s Kontrolnim centrom.
sudo mkdir -p /var/ssl/private
sudo chown -R $KORISNIK: /var/ssl/private
cd /var/ssl/privatno
izvoz FQDN=
keytool -keystore kafka.server.keystore.jks \
-alias poslužitelj \
-valjanost 999 \
-genkey -keyalg RSA -ext SAN=dns:${FQDN}
Stvorite zahtjev za potpisivanje certifikata i pohranite ga u file imenovani cert-server-request:
keytool -keystore kafka.server.keystore.jks \
-alias poslužitelj \
-certreq \
-file cert-server-request
Sada biste trebali poslati file cert-server-request svom tijelu za izdavanje certifikata (CA) ako koristite pravi. Zatim će vratiti potpisanu potvrdu. U nastavku ćemo to nazivati cert-server-signed.
Potpisivanje SSL certifikata pomoću CA certifikata koji ste sami izradili
BILJEŠKA: Opet, korištenje vlastitog CA se ne preporučuje u proizvodnom sustavu.
Potpišite certifikat pomoću CA putem file cert-server-request, koji proizvodi potpisani certifikat cert-server-signed. Pogledaj ispod; ca-lozinka je lozinka postavljena prilikom kreiranja CA certifikata.
cd /var/ssl/privatno
openssl x509 -req \
-CA ${CA_PATH}/ca-cert \
-CAkey ${CA_PATH}/ca-key \
-in cert-server-request \
-out cert-server-signed \
-days 999 -CAcreateserial \
-passin pass:{ca-password}
Uvoz potpisanog certifikata u Keystore
Uvezite korijenski certifikat ca-cert 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 poslužitelj \
-uvoz \
-file cert-server-signed
The file kafka.server.keystore.jks treba kopirati na poznato mjesto na poslužitelju Kontrolnog centra, a zatim ga uputiti u /etc/kafka/server.properties.
Korištenje API-ja za strujanje
General
API za strujanje dohvaća i testne i nadzorne podatke. Nije moguće izdvojiti niti jednu od ovih kategorija.
API za strujanje ne dohvaća podatke iz testova temeljenih na skriptama (onih koji su predstavljeni pravokutnikom umjesto dijelom slagalice u GUI-u Control Center-a), kao što su testovi aktivacije Ethernet usluge i testovi transparentnosti.
Kafka Imena tema
Imena Kafka tema za API za strujanje su sljedeća, gdje je %s kratki naziv računa Kontrolnog centra (navedeno prilikom kreiranja računa):
const (
ime izvoznika = “kafka”
metadataTopicTpl = “paa.public.accounts.%s.metadata”
metricsTopicTpl = “paa.public.accounts.%s.metrics”
)
Exampo korištenju API-ja za strujanje
Bivšiampdatoteke koje slijede nalaze se u tarball paa-streaming-api-client-examples.tar.gz koji se nalazi unutar tarballa Kontrolnog centra.
Prvo, postoji osnovni example demonstrira kako se metrika i njihovi metapodaci odvojeno prenose i jednostavno ispisuju primljene poruke na konzolu. Možete ga pokrenuti na sljedeći način:
sudo ./build.sh run-basic –kafka-brokers lokalni host:9092 –račun ACCOUNT_SHORTNAME
Postoji i napredniji example gdje su metrike i poruke metapodataka u korelaciji. Koristite ovu naredbu za pokretanje:
sudo ./build.sh run-advanced –kafka-brokers localhost:9092 –account_ACCOUNT_SHORTNAME
Morate koristiti sudo za pokretanje Docker naredbi poput onih iznad. Po izboru, možete slijediti korake nakon instalacije Linuxa da biste mogli pokrenuti Docker naredbe bez sudoa. Za detalje idite na docs.docker.com/engine/install/linux-postinstall.
Juniper Networks, logotip Juniper Networks, Juniper i Junos registrirani su zaštitni znakovi Juniper Networks, Inc. u Sjedinjenim Državama i drugim zemljama. Svi ostali zaštitni znakovi, uslužni znakovi, registrirani ili registrirani uslužni znakovi vlasništvo su svojih vlasnika. Juniper Networks ne preuzima odgovornost za bilo kakve netočnosti u ovom dokumentu. Juniper Networks zadržava pravo izmjene, modificiranja, prijenosa ili druge revizije ove publikacije bez prethodne obavijesti. Autorska prava © 2023 Juniper Networks, Inc. Sva prava pridržana.

Dokumenti / Resursi
![]() |
Juniper NETWORKS Streaming API Active Assurance [pdf] Korisnički priručnik Streaming API Active Assurance, API Active Assurance, Active Assurance, Assurance |
