Engineering Simplicity
Streaming API vodič
Uvod
Ovaj vodič opisuje kako izdvojiti podatke iz Paragon Active Assurance putem API-ja za streaming proizvoda.
API kao i klijent za striming 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 “Konfiguracija Streaming API-ja” na stranici 1.
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 se može konfigurirati na mnogo različitih načina i dizajnirana je za skalabilnost i redundantne sisteme. Ovaj dokument se fokusira samo na to kako ga konfigurirati da koristi funkciju Streaming API koja se nalazi u Paragon Active Assurance Control Center. Za naprednija podešavanja se pozivamo na zvaničnu Kafka dokumentaciju: 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 pretplatnik: Komponenta odgovorna za preuzimanje događaja pohranjenih u temama definiranim u Paragon Active Assuranceu i namijenjena za vanjski pristup.
- 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 ima koncept tema na koje se objavljuju svi podaci. U Paragon Active Assuranceu postoji mnogo takvih Kafka tema dostupnih; međutim, samo dio njih je namijenjen za vanjski pristup.
Svaki račun Paragon Active Assurance u Kontrolnom centru ima dvije namjenske teme. U nastavku, ACCOUNT je skraćeni naziv računa:
- 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: Ova uputstva treba da se izvode na serveru Kontrolnog centra koristeći sudo.
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
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 timescaledb metrics sudo ncc usluge start timescaledb metrics
Konačno, ponovo pokrenite servise:
sudo ncc usluge restart
Provjera da Streaming API radi u Kontrolnom centru
NAPOMENA: Ova uputstva treba da se izvode na serveru Kontrolnog centra.
Sada možete provjeriti da li primate metriku o ispravnim Kafka temama. Da biste to učinili, instalirajte kafkacat uslužni program:
sudo apt-get update sudo apt-get install kafkacat
Ako imate test ili monitor koji radi u Kontrolnom centru, trebali biste biti u mogućnosti da koristite kafkacat za primanje metrike i metapodataka o ovim temama.
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:
kafkacat”Klijent Examples ”na stranici 14
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 izvode 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:

*) Provjera autentičnosti korisničkog imena/lozinke izvedena na SSL šifriranom kanalu
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.
Skladište ključeva: 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 17.
Kafka Broker SSL/TLS konfiguracija u Kontrolnom centru
NAPOMENA: Ova uputstva treba da se izvode na serveru Kontrolnog centra.
NAPOMENA: Prije nego nastavite, morate kreirati spremište ključeva koje sadrži SSL certifikat slijedeći upute u “Dodatku” na stranici 17. Putanja spomenuta u nastavku dolaze iz ovih uputa.
SSL spremište ključeva je 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.
Uredite ili dodajte (sa sudo pristupom) svojstva ispod u /etc/kafka/server.properties, ubacujući gornje varijable kao što je prikazano:
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 potreban \ username=”admin” \ password=” ” \ user_admin=” ” \ user_client=” ”; # NAPOMENA više korisnika se može dodati sa user_ =
# Autorizacija, uključite ACL-ove authorizer.class.name=kafka.security.authorizer.AclAuthorizer super.users=Korisnik: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 \
–authorizer kafka.security.authorizer.AclAuthorizer \ –authorizer-properties zookeeper.connect=localhost:2181 \ –add –allow-principal Korisnik:ANONYMOUS –allow-host 127.0.0.1 –cluster –cluster.
/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 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 \
–authorizer kafka.security.authorizer.AclAuthorizer \–authorizer-properties zookeeper.connect=localhost:2181 \
–dodaj –dopusti-glavni korisnik:* –operacija čitanje –operacija opiše \–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:
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 u
Kontrolni centar: naime, user_client i tamo postavljena lozinka.
CA root certifikat koji se koristi za potpisivanje SSL certifikata na strani poslužitelja mora biti prisutan na klijentu.
- 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 koristi 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
Poruke koje se koriste za teme metrike i metapodataka su serijalizovane u formatu Protocol buffers (protobuf) (vidi 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 id_mjere = 3; } /** * Vrijednost metrike može biti cijeli broj ili float. */
message MetricValue { oneof type { int64 int_val = 1; float float_val = 2; } }
Metadata Protobuf Schema
sintaksa = “proto3”; paket paa.streamingapi; opcija go_package = “.;paa_streamingapi”; metapodaci poruke { int32 id_mjere = 1; string Naziv_mjere = 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 klijentaampdatoteke u fascikli Paragon Active Assurance Control Center:
izvoz CC_VERSION=3.3.1
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 client-examples 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 režim U osnovnom režimu, 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, pokrenite: ./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, pokrenite: ./build.sh run-advanced –kafka-brokers localhost:9092 –račun ACCOUNT_SHORTNAME gdje je ACCOUNT_SHORTNAME kratko ime 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 \ –account 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:
- Iz fascikle Paragon Active Assurance Control Center, prebacite se na paa-streaming-api-clientexamples 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 kratko ime računa s kojeg želite dobiti metriku. - Pokreni napredni examples:
izvoz KAFKA_FQDN= ./build.sh run-advanced –kafka-brokers ${KAFKA_FQDN}:9093 \ –account 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 izvoza 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 će biti potreban Kafka klijentu koji će pristupiti Streaming API-ju:
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
Ispod, 999 je broj dana valjanosti skladišta ključeva, a FQDN je potpuno kvalificirano ime domene klijenta (javno ime hosta čvora).
NAPOMENA: Važno je da FQDN odgovara tačnom imenu hosta koje će Kafka klijent koristiti za povezivanje sa Kontrolnim centrom. sudo mkdir -p /var/ssl/private
sudo chown -R $USER: /var/ssl/privatni cd /var/ssl/privatni izvoz FQDN=
keytool -keystore kafka.server.keystore.jks \ -alias server \ -validnost 999 \ -genkey -keyalg RSA -ext SAN=dns:${FQDN}
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-key \ -in cert-server-request \ -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 \ -import \ -file ${CA_PATH}/ca-cert
Uvezite potpisani certifikat koji se naziva cert-server-signed:
keytool -keystore kafka.server.keystore.jks \ -alias server \ -import \ -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 kontrole
Centar račun (naveden 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
Postoji i napredniji 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 Trebate koristiti sudo za pokretanje Docker komandi poput onih iznad. Opciono, možete pratiti korake nakon instalacije Linuxa da biste mogli pokrenuti Docker komande bez sudoa.
Za detalje idite na 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. Autorska prava © 2022 Juniper Networks, Inc. Sva prava zadržana.

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




