Giya sa Streaming API
Gipatik
2023-07-07
GAWAS
4.2
Pasiuna
Kini nga giya naghulagway kung giunsa pagkuha ang datos gikan sa Paragon Active Assurance pinaagi sa streaming API sa produkto.
Ang API ingon man ang streaming nga kliyente gilakip sa pag-install sa Paragon Active Assurance.
Bisan pa, gikinahanglan ang gamay nga pag-configure sa dili pa nimo magamit ang API. Nasakup kini sa "Pag-configure sa Streaming API" sa panid 1 nga kapitulo.
Pag-configure sa Streaming API
Tapos naview
Kini nga kapitulo naghulagway kung unsaon pag-configure ang Streaming API aron tugutan ang pag-subscribe sa mga mensahe sa metrics pinaagi sa Kafka.
pr
Sa ubos kita moagi sa:
- Giunsa pagpagana ang Streaming API
- Giunsa ang pag-configure sa Kafka aron maminaw sa mga kliyente sa gawas
- Giunsa pag-configure ang Kafka aron magamit ang mga ACL ug i-set up ang SSL encryption alang sa giingon nga mga kliyente
Ang Kafka usa ka plataporma sa pag-streaming sa panghitabo nga nagtugot sa real-time nga pagkuha sa mga datos nga gipadala gikan sa nagkalain-laing mga tinubdan sa panghitabo (sensors, databases, mobile devices) sa porma sa mga stream sa panghitabo, ingon man ang lig-on nga pagtipig niini nga mga stream sa panghitabo alang sa ulahi nga pagkuha ug pagmaniobra.
Uban sa Kafka posible nga madumala ang event streaming end-to-end sa usa ka distributed, highly scalable, elastic, fault-tolerant, ug secure nga paagi.
NOTA: Ang Kafka mahimong ma-configure sa daghang lain-laing mga paagi ug gidisenyo alang sa scalability ug sobra nga mga sistema. Kini nga dokumento nagpunting lamang kung giunsa kini i-configure aron magamit ang bahin sa Streaming API nga makita sa Paragon Active Assurance Control Center. Alang sa mas abante nga mga pag-setup among gitan-aw ang opisyal nga dokumentasyon sa Kafka: kafka.apache.org/26/documentation.html.
Terminolohiya
- Kafka: plataporma sa pag-streaming sa panghitabo.
- Hilisgutan sa Kafka: Koleksyon sa mga panghitabo.
- Kafka subscriber/consumer: Component nga responsable sa pagkuha sa mga panghitabo nga gitipigan sa usa ka Kafka nga hilisgutan.
- Kafka broker: Storage layer server sa usa ka Kafka cluster.
- SSL/TLS: Ang SSL usa ka luwas nga protocol nga gihimo alang sa pagpadala sa impormasyon nga luwas pinaagi sa Internet. Ang TLS mao ang manununod sa SSL, nga gipaila niadtong 1999.
- SASL: Framework nga naghatag ug mga mekanismo para sa user authentication, data integrity checking, ug encryption.
- Streaming API subscriber: Component nga responsable sa pagkuha sa mga panghitabo nga gitipigan sa mga hilisgutan nga gihubit sa Paragon Active Assurance ug gituyo alang sa external access.
- Awtoridad sa Sertipiko: Usa ka kasaligan nga entidad nga nag-isyu ug nagtangtang sa mga yawe sa publiko nga sertipiko.
- Sertipiko sa gamut nga Sertipiko sa Awtoridad: Sertipiko sa yawe sa publiko nga nagpaila sa Awtoridad sa Sertipiko.
Giunsa Naglihok ang Streaming API
Sama sa nahisgotan na, ang Streaming API nagtugot sa mga kliyente sa gawas sa pagkuha sa impormasyon mahitungod sa mga sukatan gikan sa Kafka.
Ang tanan nga mga sukatan nga nakolekta sa mga Ahente sa Pagsulay sa panahon sa usa ka pagsulay o buluhaton sa pag-monitor gipadala sa serbisyo sa Stream.
Pagkahuman sa yugto sa pagproseso, ang serbisyo sa Stream nagpatik sa mga sukatan sa Kafka kauban ang dugang nga metadata.Mga Hilisgutan sa Kafka
Ang Kafka adunay konsepto sa mga hilisgutan diin ang tanan nga datos gipatik. Sa Paragon Active Assurance adunay daghang ingon nga Kafka nga mga hilisgutan nga magamit; bisan pa, usa lamang ka subset niini ang gituyo alang sa gawas nga pag-access.
Ang matag Paragon Active Assurance account sa Control Center adunay duha ka gipahinungod nga mga hilisgutan. Sa ubos, ang ACCOUNT mao ang mubo nga ngalan sa account:
- paa.public.accounts.{ACCOUNT}.metrics
- Ang tanan nga mga mensahe sa metrics para sa gihatag nga account gipatik sa kini nga hilisgutan
- Daghang datos
- Taas nga frequency sa pag-update
- paa.public.accounts.{ACCOUNT}.metadata
- Naglangkob sa metadata nga may kalabotan sa datos sa sukatan, pananglitanampang pagsulay, monitor o Test Ahente nga may kalabutan sa mga sukatan
- Gamay nga kantidad sa datos
- Ubos nga frequency sa pag-update
Pagpaandar sa Streaming API
NOTA: Kini nga mga panudlo ipadagan sa server sa Control Center gamit ang sudo.
Tungod kay ang Streaming API nagdugang sa pipila ka overhead sa Control Center, dili kini mahimo pinaagi sa default. Aron mahimo ang API, kinahanglan una namon nga i-enable ang pagmantala sa mga sukatan sa Kafka sa panguna nga pagsulud file:
- /etc/netrounds/netrounds.conf
KAFKA_METRICS_ENABLED = Tinuod
WARNING: Ang pagpagana niini nga bahin mahimong makaapekto sa pasundayag sa Control Center. Siguroha nga imong gisukod ang imong instance sumala niana.
Sunod, aron mahimo ang pagpasa sa kini nga mga sukatan sa husto nga mga hilisgutan sa Kafka:
- /etc/netrounds/metrics.yaml
streaming-api: tinuod
Aron mahimo ug masugdan ang mga serbisyo sa Streaming API, pagdagan:
Ang mga serbisyo sa sudo ncc makahimo sa timescaledb metrics
Ang mga serbisyo sa sudo ncc nagsugod sa timescaledb metrics
Sa katapusan, i-restart ang mga serbisyo:
sudo ncc nga mga serbisyo restart
Pagtino nga ang Streaming API Naglihok sa Control Center
NOTA: Kini nga mga panudlo ipadagan sa server sa Control Center.
Mahimo nimong mapamatud-an nga nakadawat ka mga sukatan sa husto nga mga hilisgutan sa Kafka. Aron mahimo kini, i-install ang kafkacat utility:
sudo apt-get update
sudo apt-get install kafkacat
Kung ikaw adunay pagsulay o monitor nga nagdagan sa Control Center, kinahanglan nimo nga magamit ang kafkacat aron makadawat mga sukatan ug metadata sa kini nga mga hilisgutan.
Ilisan ang myaccount sa mubo nga ngalan sa imong account (kini ang imong makita sa imong Control Center URL):
export METRICS_TOPIC=paa.public.accounts.myaccount.metrics
export METADATA_TOPIC=paa.public.accounts.myaccount.metadata
Kinahanglan nimong makita karon ang mga sukatan pinaagi sa pagpadagan niini nga mando:
kafkacat -b ${KAFKA_FQDN}:9092 -t ${METRICS_TOPIC} -C -e
Sa view metadata, padagana ang mosunod nga sugo (timan-i nga dili kini kanunay nga i-update):
kafkacat -b ${KAFKA_FQDN}:9092 -t ${METADATA_TOPIC} -C -e
NOTA:
kafkacat”Kliyente Examples ”sa panid 14
Kini nagpamatuod nga kami adunay usa ka nagtrabaho nga Streaming API gikan sa sulod sa Control Center. Bisan pa, lagmit nga interesado ka sa pag-access sa datos gikan sa usa ka kliyente sa gawas. Ang sunod nga seksyon naghulagway kung giunsa ang pag-abli sa Kafka alang sa eksternal nga pag-access.
Pag-abli sa Kafka alang sa External Hosts
NOTA: Kini nga mga panudlo ipadagan sa server sa Control Center.
Sa default, ang Kafka nga nagdagan sa Control Center gi-configure aron maminaw lamang sa localhost alang sa internal nga paggamit.
Posible nga ablihan ang Kafka alang sa mga eksternal nga kliyente pinaagi sa pagbag-o sa mga setting sa Kafka.
Pagkonektar sa Kafka: Caveats
PAHINUMDOM: Palihog basaha kini pag-ayo, tungod kay sayon ra ang pag-atubang sa mga isyu sa koneksyon sa Kafka kung wala nimo masabtan kini nga mga konsepto.
Sa setup sa Control Center nga gihulagway niini nga dokumento, adunay usa lamang ka Kafka broker.
Apan, timan-i nga ang usa ka Kafka broker gituyo nga modagan isip bahin sa usa ka Kafka cluster nga mahimong naglangkob sa daghang Kafka brokers.
Kung nagkonektar sa usa ka broker sa Kafka, usa ka inisyal nga koneksyon ang gipahimutang sa kliyente sa Kafka. Sa niini nga koneksyon ang Kafka broker sa baylo mobalik sa usa ka listahan sa "advertises tigpaminaw", nga mao ang usa ka listahan sa usa o labaw pa Kafka brokers.
Sa pagdawat niini nga lista, ang kliyente sa Kafka madiskonekta, unya magkonektar pag-usab sa usa niining gi-advertise nga tigpaminaw. Ang gi-anunsyo nga mga tigpaminaw kinahanglang adunay mga hostname o IP address nga ma-access sa Kafka nga kliyente, o ang kliyente mapakyas sa pagkonektar.
Kung gigamit ang pag-encrypt sa SSL, nga naglambigit sa usa ka sertipiko sa SSL nga nahigot sa usa ka partikular nga hostname, labi ka hinungdanon nga ang kliyente sa Kafka makadawat sa husto nga adres aron makonektar, tungod kay kung dili ang koneksyon mahimong isalikway.
Basaha ang dugang bahin sa mga tigpaminaw sa Kafka dinhi: www.confluent.io/blog/kafka-listeners-explained
SSL/TLSEncryption
Aron masiguro nga ang mga kasaligan nga kliyente ra ang gitugotan nga maka-access sa Kafka ug sa Streaming API, kinahanglan namon nga i-configure ang mga musunud:
- Authentication: Ang mga kliyente kinahanglan maghatag username ug password pinaagi sa SSL/TLS nga luwas nga koneksyon tali sa kliyente ug Kafka.
- Awtorisasyon: Ang mga na-authenticate nga kliyente makahimo sa mga buluhaton nga gi-regulate sa mga ACL.
Ania ang usa ka katapusanview:
*) Username/password authentication nga gihimo sa SSL-encrypted channel
Aron hingpit nga masabtan kung giunsa ang pag-encrypt sa SSL/TLS alang sa Kafka, palihug tan-awa ang opisyal nga dokumentasyon: docs.confluent.io/platform/current/kafka/encryption.html
Natapos ang Sertipiko sa SSL/TLSview
PAHINUMDOM: Niini nga subseksyon atong gamiton ang mosunod nga terminolohiya:
Sertipiko: Usa ka SSL certificate nga gipirmahan sa usa ka Certificate Authority (CA). Ang matag Kafka broker adunay usa.
Keystore: Ang keystore file nga nagtipig sa sertipiko. Ang keystore file naglangkob sa pribadong yawe sa sertipiko; busa, kini kinahanglan nga tipigan nga luwas.
Truststore: A file naglangkob sa kasaligan nga mga sertipiko sa CA.
Aron ma-set up ang authentication tali sa usa ka eksternal nga kliyente ug Kafka nga nagdagan sa Control Center, ang duha ka kilid kinahanglan adunay usa ka keystore nga gihubit nga adunay kalabutan nga sertipiko nga gipirmahan sa usa ka Certificate Authority (CA) kauban ang CA root certificate.
Dugang pa niini, ang kliyente kinahanglan usab nga adunay usa ka truststore nga adunay sertipiko sa ugat sa CA.
Ang CA root certificate kay kasagaran sa Kafka broker ug Kafka client.
Paghimo sa Gikinahanglan nga Sertipiko
Gikobrehan kini sa “Apendise” sa panid 17.
Kafka Broker SSL/TLS Configuration sa Control Center
PAHINUMDOM: Kini nga mga panudlo kinahanglan ipadagan sa server sa Control Center.
NOTA: Sa dili pa mopadayon, kinahanglang maghimo ka sa keystore nga naglangkob sa SSL certificate pinaagi sa pagsunod sa mga instruksyon sa “Appendix” sa pahina 17. Ang mga dalan nga gihisgotan sa ubos naggikan niini nga mga instruksiyon.
Ang SSL keystore usa ka file gitipigan sa disk nga adunay file extension .jks.
Kung naa na nimo ang gikinahanglan nga mga sertipiko nga gihimo para sa Kafka broker ug ang kliyente sa Kafka nga magamit, mahimo ka magpadayon pinaagi sa pag-configure sa Kafka broker nga nagdagan sa Control Center. Kinahanglan nimong masayran ang mosunod:
- : Ang publikong hostname sa Control Center; kini kinahanglan nga masulbad ug ma-access sa mga kliyente sa Kafka.
- : Ang keystore password nga gihatag sa paghimo sa SSL certificate.
- ug : Kini ang mga password nga gusto nimong itakda alang sa admin ug kliyente nga tiggamit. Timan-i nga mahimo nimong idugang ang daghang mga tiggamit, ingon sa gipakita sa example.
I-edit o idugang (uban ang sudo access) ang mga kabtangan sa ubos sa /etc/kafka/server.properties, pagsal-ot sa mga variable sa ibabaw sama sa gipakita:
WARNING: Ayaw kuhaa ang PLAINTEXT://localhost:9092; kini makaguba sa Control Center functionality tungod kay ang mga internal nga serbisyo dili na makakomunikar.
…
# Ang mga adres nga gipaminaw sa Kafka broker.
listeners=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
# Kini ang mga host nga gi-advertise balik sa bisan unsang kliyente nga nagkonektar.
advertised.listeners=PLAINTEXT://localhost:9092,SASL_SSL:// :9093
…
####### CUSTOM CONFIG
# SSL CONFIGURATION
ssl.endpoint.identification.algorithm=
ssl.keystore.location=/var/ssl/private/kafka.server.keystore.jks
ssl.keystore.password=
ssl.key.password=
ssl.client.auth=wala
ssl.protocol=TLSv1.2
# Pagsulud sa SASL
sasl.enabled.mechanisms=PLAIN
listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginMo
gikinahanglang dule \
username=”admin” \
password =” ” \
user_admin=" ” \
user_client=” ”;
# PAHINUMDOM daghang mga tiggamit ang mahimong idugang sa user_ =
# Awtorisasyon, i-on ang mga ACL
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
super.users=User:admin
Pag-set up sa Access Control Lists (ACLs)
Pag-on sa mga ACL sa localhost
WARNING: Kinahanglan una natong i-set up ang mga ACL para sa localhost, aron ang Control Center mismo maka-access gihapon sa Kafka. Kung dili kini buhaton, ang mga butang maguba.
######## ACLs entries para sa anonymous users
/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 –cluster
/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 –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 '*'
Kinahanglan namong palihokon ang mga ACL alang sa eksternal nga read-only nga pag-access, aron ang mga eksternal nga tiggamit tugotan sa pagbasa sa paa.public.* nga mga hilisgutan.
NOTA: Para sa mas maayo nga pagkontrol, palihog tan-awa ang opisyal nga dokumentasyon sa Kafka.
######## Mga entry sa ACL para sa mga eksternal nga tiggamit
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal User:* –operation read –operation describe \
-grupo 'NCC'
/usr/lib/kafka/bin/kafka-acls.sh \
–authorizer kafka.security.authorizer.AclAuthorizer \
–authorizer-properties zookeeper.connect=localhost:2181 \
–add –allow-principal User:* –operation read –operation describe \
–topic paa.publiko. –resource-pattern-type nga prefixed
Kung nahuman na kini, kinahanglan nimo nga i-restart ang mga serbisyo:
sudo ncc nga mga serbisyo restart
Aron mapamatud-an nga ang usa ka kliyente makahimo og usa ka luwas nga koneksyon, padagana ang mosunod nga sugo sa usa ka eksternal nga kompyuter sa kliyente (dili sa server sa Control Center). Ubos, PUBLIC_HOSTNAME mao ang Control Center hostname:
openssl s_client -debug -connect ${PUBLIC_HOSTNAME}:9093 -tls1_2 | grep "Ang Secure Renegotiation IS gisuportahan"
Sa command output kinahanglan nimo nga makita ang server certificate ingon man ang mosunod:
Gisuportahan ang Secure Renegotiation
Aron masiguro nga ang mga internal nga serbisyo gihatagan og access sa Kafka server, palihug susiha ang mosunod nga logfiles:
- /var/log/kafka/server.log
- /var/log/kafka/kafka-authorizer.log
Pag-validate sa External Client Connectivity
kafkacat
NOTA: Kini nga mga panudlo ipadagan sa usa ka kompyuter sa kliyente (dili sa server sa Control Center).
NOTA: Aron ipakita ang impormasyon sa metrics, siguroha nga labing menos usa ka monitor ang nagdagan sa Control Center.
Aron mapamatud-an ug ma-validate ang pagkadugtong ingon usa ka eksternal nga kliyente, posible nga gamiton ang kafkacat utility nga gi-install sa seksyon nga "Pagpamatuod nga ang Streaming API Naglihok sa Control Center" sa panid 4.
Buhata ang mosunod nga mga lakang:
NOTA: Sa ubos, ang CLIENT_USER mao ang user nga gipiho kaniadto sa file /etc/kafka/server.properties sa Control Center: nga mao, user_client ug ang password nga gibutang didto.
Ang CA root certificate nga gigamit sa pagpirma sa server side SSL certificate kinahanglang anaa sa kliyente.
- Paghimo a file client.properties nga adunay mosunod nga sulod:
security.protocol=SASL_SSL
ssl.ca.location={PATH_TO_CA_CERT}
sasl.mechanisms=PLAIN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
diin
- Ang {PATH_TO_CA_CERT} mao ang lokasyon sa CA root certificate nga gigamit sa Kafka broker
- {CLIENT_USER} ug {CLIENT_PASSWORD} mao ang mga kredensyal sa user para sa kliyente.
- Pagdalagan ang mosunod nga sugo aron makita ang mensahe nga gigamit sa kafkacat:
export KAFKA_FQDN=
export METRICS_TOPIC=paa.public.accounts. .metrics
kafkacat -b ${KAFKA_FQDN}:9093 -F kliyente.properties -t ${METRICS_TOPIC} -C -e
diin ang {METRICS_TOPIC} mao ang ngalan sa hilisgutan sa Kafka nga adunay prefix nga "paa.public.".
NOTA: Ang mga daan nga bersyon sa kafkacat wala maghatag sa -F nga kapilian sa pagbasa sa mga setting sa kliyente gikan sa a file. Kung naggamit ka sa ingon nga bersyon, kinahanglan nimo nga hatagan ang parehas nga mga setting gikan sa linya sa mando sama sa gipakita sa ubos.
kafkacat -b ${KAFKA_FQDN}:9093 \
-X security.protocol=SASL_SSL \
-X ssl.ca.location={PATH_TO_CA_CERT} \
-X sasl.mechanisms=PLAIN \
-X sasl.username={CLIENT_USER} \
-X sasl.password={CLIENT_PASSWORD} \
-t ${METRICS_TOPIC} -C -e
Aron ma-debug ang koneksyon, mahimo nimong gamiton ang -d nga kapilian:
I-debug ang mga komunikasyon sa konsumidor
kafkacat -d konsumidor -b ${KAFKA_FQDN}:9093 -F kliyente.properties -t ${METRICS_TOPIC} -C -e
# Pag-debug sa mga komunikasyon sa broker
kafkacat -d broker -b ${KAFKA_FQDN}:9093 -F kliyente.properties -t ${METRICS_TOPIC} -C -e
Siguruha nga maghisgot sa dokumentasyon alang sa librarya sa kliyente sa Kafka nga gigamit, tungod kay ang mga kabtangan mahimong lahi sa mga naa sa client.properties.
Format sa Mensahe
Ang mga mensahe nga gigamit alang sa mga sukdanan ug metadata nga mga hilisgutan gi-serialize sa Protocol buffers (protobuf) format (tan-awa ang developers.google.com/protocol-buffers). Ang mga laraw alang niini nga mga mensahe nagsunod sa mosunod nga pormat:
Mga Sukatan sa Protobuf Schema
syntax = "proto3";
import "google/protobuf/timestamp.proto”;
package paa.streamingapi;
opsyon go_package = ".;paa_streamingapi";
mensahe Sukatan {
google.protobuf.Timestamp panahonamp = 1;
mapa bili = 2;
int32 stream_id = 3;
}
/**
* Ang metric value mahimong integer o float.
*/
mensahe MetricValue {
usa sa tipo {
int64 int_val = 1;
float float_val = 2;
}
}
Metadata Protobuf Schema
syntax = "proto3";
package paa.streamingapi;
opsyon go_package = ".;paa_streamingapi";
mensahe Metadata {
int32 stream_id = 1;
string stream_name = 2;
mapa tags = 13;
}
Kliyente Examples
NOTA: Kini nga mga sugo gituyo sa pagdagan sa usa ka eksternal nga kliyente, alang sa exampIbutang ang imong laptop o susama, ug dili sa Control Center.
NOTA: Aron mapakita ang impormasyon sa sukatan, siguroha nga labing menos usa ka monitor ang nagdagan sa Control Center.
Ang Control Center tarball naglakip sa archive paa-streaming-api-client-examples.tar.gz (kliyente-examples), nga adunay usa ka example Python script nga nagpakita kon unsaon paggamit ang Streaming API.
Pag-instalar ug Pag-configure sa Kliyente Examples
Makita nimo ang kliyente-examples sa Paragon Active Assurance Control Center nga folder:
export CC_VERSION=4.2.0
cd ./paa-control-center_${CC_VERSION}
ls paa-streaming-api-client-examples*
Sa pag-instalar sa kliyente-examples sa imong external client computer, ipadayon ang mosunod:
# Paghimo direktoryo alang sa pagkuha sa sulud sa kliyente examples tarball
mkdir paa-streaming-api-client-examples
# Kuhaa ang sulud sa kliyente examples tarball
tar xzf paa-streaming-api-client-examples.tar.gz -C paa-streaming-api-client-examples
# Lakaw ngadto sa bag-ong gibuhat nga direktoryo
cd paa-streaming-api-client-examples
kliyente-examples nagkinahanglan Docker sa pagdagan. Ang mga instruksyon sa pag-download ug pag-install para sa Docker makita sa https://docs.docker.com/engine/install.
Paggamit sa Kliyente Examples
Ang kliyente-examples himan mahimong modagan sa bisan unsa nga basic o advanced mode sa pagtukod exampmga lainlain nga pagkakomplikado. Sa duha ka mga kaso, posible usab nga modagan ang examples nga adunay configuration file nga adunay dugang nga mga kabtangan alang sa dugang nga pag-customize sa bahin sa kliyente.
Batakang Mode
Sa batakang mode, ang mga sukatan ug ang ilang metadata gilain nga gi-stream. Niini nga katuyoan, ang kliyente maminaw sa matag Kafka nga hilisgutan nga magamit alang sa eksternal nga pag-access ug yano nga nag-imprinta sa nadawat nga mga mensahe sa console.
Sa pagsugod sa pagpatuman sa batakang examples, dagan:
./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
diin ang ACCOUNT_SHORTNAME mao ang mubu nga ngalan sa account nga gusto nimo makuha ang mga sukatan.
Para ma terminate ang execution sa example, pindota ang Ctrl + C. (Mahimong adunay gamay nga paglangan sa dili pa mohunong ang pagpatay tungod kay ang kliyente naghulat alang sa usa ka timeout nga panghitabo.)
Advanced nga Mode
NOTA: Ang mga sukatan gipakita lamang alang sa mga monitor sa HTTP nga nagdagan sa Control Center.
Ang pagpatuman sa advanced mode nagpakita sa correlation tali sa metrics ug metadata nga mga mensahe. Kini posible tungod sa presensya sa matag metrics nga mensahe sa usa ka stream id field nga nagtumong sa katugbang nga metadata nga mensahe.
Aron ipatuman ang advanced examples, dagan:
./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
diin ang ACCOUNT_SHORTNAME mao ang mubu nga ngalan sa account nga gusto nimo makuha ang mga sukatan.
Para ma terminate ang execution sa example, pindota ang Ctrl + C. (Mahimong adunay gamay nga paglangan sa dili pa mohunong ang pagpatay tungod kay ang kliyente naghulat alang sa usa ka timeout nga panghitabo.)
Dugang nga mga Setting
Posible nga padagan ang examples uban ang dugang nga pag-configure sa kliyente gamit ang –config-file opsyon nga gisundan sa a file ngalan nga adunay mga kabtangan sa porma nga yawe = bili.
./build.sh run-advanced \
–kafka-brokers localhost:9092 \
–account ACCOUNT_SHORTNAME \
–config-file client_config.properties
NOTA: Tanan files reference sa sugo sa ibabaw kinahanglan nga nahimutang sa kasamtangan nga direktoryo ug nagtumong sa paggamit lamang sa mga relatibong dalan. Kini magamit sa duha sa –config-file argumento ug sa tanang entries sa configuration file nga naghulagway file mga lokasyon.
Pag-validate sa External Client Authentication
Aron ma-validate ang pag-authenticate sa kliyente gikan sa gawas sa Control Center gamit ang kliyente-examples, buhata ang mosunod nga mga lakang:
- Gikan sa folder sa Paragon Active Assurance Control Center, ibalhin sa paa-streaming-api-clientexamples folder:
cd paa-streaming-api-client-examples - Kopyaha ang CA root certificate nga ca-cert ngadto sa kasamtangan nga direktoryo.
- Paghimo og kliyente.properties file uban sa mosunod nga sulod:
security.protocol=SASL_SSL
ssl.ca.location=ca-cert
sasl.mechanism=PLAIN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}
diin ang {CLIENT_USER} ug {CLIENT_PASSWORD} mao ang mga kredensyal sa gumagamit para sa kliyente. - Dagan ang batakang examples:
export KAFKA_FQDN=
./build.sh run-basic –kafka-brokers ${KAFKA_FQDN}:9093 \
–account ACCOUNT_SHORTNAME
–config-file kliyente.mga kabtangan
diin ang ACCOUNT_SHORTNAME mao ang mubu nga ngalan sa account nga gusto nimo makuha ang mga sukatan. - Dagan advanced examples:
export KAFKA_FQDN=
./build.sh run-advanced –kafka-brokers ${KAFKA_FQDN}:9093 \
–account ACCOUNT_SHORTNAME
–config-file kliyente.mga kabtangan
Apendise
Niini nga apendise among gihulagway kung unsaon paghimo:
- usa ka keystore file alang sa pagtipig sa Kafka broker SSL certificate
- usa ka truststore file alang sa pagtipig sa Certificate Authority (CA) root certificate nga gigamit sa pagpirma sa Kafka broker certificate.
Paghimo usa ka Sertipiko sa Kafka Broker
Paghimo og Sertipiko Gamit ang Tinuod nga Sertipiko nga Awtoridad (Girekomenda)
Girekomenda nga makakuha ka usa ka tinuud nga sertipiko sa SSL gikan sa usa ka kasaligan nga CA.
Kung nakahukom ka sa usa ka CA, kopyaha ang ilang CA root certificate nga ca-cert file sa imong kaugalingong dalan sama sa gipakita sa ubos:
export CA_PATH=~/my-ca
mkdir ${CA_PATH}
cp ca-cert ${CA_PATH}
Paghimo sa Imong Kaugalingong Awtoridad sa Sertipiko
NOTA: Kasagaran kinahanglan nimo ang imong sertipiko nga gipirmahan sa usa ka tinuod nga Awtoridad sa Sertipiko; tan-awa ang nag-una nga subseksyon. Ang nagsunod kay ex raample.
Dinhi naghimo kami og among kaugalingong Certificate Authority (CA) nga root certificate file balido alang sa 999 ka adlaw (dili girekomenda sa produksiyon):
# Paghimo usa ka direktoryo alang sa pagtipig sa CA
export CA_PATH=~/my-ca
mkdir ${CA_PATH}
# Paghimo sa sertipiko sa CA
openssl req -new -x509 -keyout ${CA_PATH}/ca-key -out ${CA_PATH}/ca-cert -days 999
Paghimo sa Client Truststore
Karon makahimo ka og usa ka truststore file nga naglangkob sa ca-cert nga namugna sa ibabaw. Kini file gikinahanglan sa Kafka nga kliyente nga maka-access sa Streaming API:
keytool -keystore kafka.client.truststore.jks \
-alyas CARoot \
-importcert -file ${CA_PATH}/ca-cert
Karon nga ang sertipiko sa CA naa sa truststore, ang kliyente mosalig sa bisan unsang sertipiko nga gipirmahan niini.
Kinahanglan nimong kopyahon ang file kafka.client.truststore.jks sa nahibal-an nga lokasyon sa imong kliyente nga kompyuter ug itudlo kini sa mga setting.
Paghimo sa Keystore alang sa Kafka Broker
Aron makamugna ang Kafka broker SSL certificate ug dayon ang keystore nga kafka.server.keystore.jks, ipadayon ang mosunod:
Paghimo sa SSL Certificate
Sa ubos, ang 999 mao ang gidaghanon sa mga adlaw sa balido sa keystore, ug ang FQDN mao ang hingpit nga kwalipikado nga domain name sa kliyente (public host name sa node).
NOTA: Importante nga ang FQDN motakdo sa eksaktong hostname nga gamiton sa kliyente sa Kafka aron makonektar sa Control Center.
sudo mkdir -p /var/ssl/pribado
sudo chown -R $ USER: /var/ssl/private
cd /var/ssl/pribado
export FQDN=
keytool -keystore kafka.server.keystore.jks \
-alias server \
-balido 999 \
-genkey -keyalg RSA -ext SAN=dns:${FQDN}
Paghimo usa ka hangyo sa pagpirma sa sertipiko ug itago kini sa file ginganlan og cert-server-request:
keytool -keystore kafka.server.keystore.jks \
-alias server \
-certreq \
-file hangyo-cert-server
Kinahanglan nimong ipadala karon ang file cert-server-request sa imong Certificate Authority (CA) kon ikaw naggamit ug tinuod. Iuli unya nila ang gipirmahan nga sertipiko. Atong hisgotan kini nga cert-server-signed sa ubos.
Pagpirma sa Sertipiko sa SSL Gamit ang usa ka Sertipiko sa CA nga gihimo sa kaugalingon
NOTA: Usab, ang paggamit sa imong kaugalingon nga CA dili girekomenda sa usa ka sistema sa produksiyon.
Pagpirma sa sertipiko gamit ang CA pinaagi sa file cert-server-request, nga nagpatungha sa gipirmahan nga sertipiko nga gipirmahan sa cert-server. Tan-awa sa ubos; ca-password mao ang password nga gitakda sa paghimo sa CA certificate.
cd /var/ssl/pribado
openssl x509 -req \
-CA ${CA_PATH}/ca-cert \
-CAkey ${CA_PATH}/ca-key \
-sa cert-server-hangyo \
-out cert-server-signed \
-mga adlaw 999 -CAcreateserial \
-passin pass:{ca-password}
Pag-import sa Gipirmahan nga Sertipiko sa Keystore
I-import ang ca-cert root certificate ngadto sa keystore:
keytool -keystore kafka.server.keystore.jks \
-alyas ca-cert \
-import \
-file ${CA_PATH}/ca-cert
Pag-import sa gipirmahan nga sertipiko nga gitawag nga cert-server-signed:
keytool -keystore kafka.server.keystore.jks \
-alias server \
-import \
-file cert-server-signed
Ang file Ang kafka.server.keystore.jks kinahanglang kopyahon ngadto sa nailhan nga lokasyon sa Control Center server, ug dayon i-refer sa /etc/kafka/server.properties.
Gamit ang Streaming API
Heneral
Ang streaming API nagkuha sa data sa pagsulay ug pag-monitor. Dili mahimo nga i-isa ang usa niini nga mga kategorya.
Ang streaming API wala magkuha ug data gikan sa script-based tests (kadtong girepresentahan sa rectangle imbes sa jigsaw piece sa Control Center GUI), sama sa Ethernet service activation tests ug transparency tests.
Mga Ngalan sa Topic sa Kafka
Ang mga ngalan sa topiko sa Kafka alang sa streaming API mao ang mosunod, diin ang %s mao ang mubo nga ngalan sa Control Center nga account (gipakita sa paghimo sa account):
const (
exporterName = "kafka"
metadataTopicTpl = “paa.public.accounts.%s.metadata”
metricsTopicTpl = “paa.public.accounts.%s.metrics”
)
Examples sa Paggamit sa Streaming API
Ang exampAng mosunod makita sa tarball paa-streaming-api-client-examples.tar.gz nga anaa sulod sa Control Center tarball.
Una, naay basic exampAng pagpakita kung giunsa ang mga sukatan ug ang ilang metadata gilain nga gi-stream ug yano nga i-print ang nadawat nga mga mensahe sa console. Mahimo nimong ipadagan kini sama sa mosunod:
sudo ./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
Naa pay mas abante nga exampdiin ang mga metrics ug metadata nga mga mensahe gi-correlated. Gamita kini nga sugo sa pagpadagan niini:
sudo ./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME
Kinahanglan nimo nga gamiton ang sudo aron ipadagan ang mga mando sa Docker sama sa mga naa sa taas. Opsyonal, mahimo nimong sundon ang mga lakang sa post-install sa Linux aron makadagan ang mga mando sa Docker nga wala sudo. Para sa mga detalye, adto sa docs.docker.com/engine/install/linux-postinstall.
Ang Juniper Networks, ang logo sa Juniper Networks, Juniper, ug Junos kay mga rehistradong marka sa pamatigayon sa Juniper Networks, Inc. sa Estados Unidos ug uban pang mga nasud. Ang tanan nga uban pang mga marka sa pamatigayon, mga marka sa serbisyo, mga rehistradong marka, o mga rehistradong marka sa serbisyo kay gipanag-iya sa ilang tagsa-tagsa ka tag-iya. Ang Juniper Networks walay responsibilidad sa bisan unsang mga sayop niini nga dokumento. Ang Juniper Networks adunay katungod sa pag-usab, pag-usab, pagbalhin, o pag-usab niini nga publikasyon nga walay pahibalo. Copyright © 2023 Juniper Networks, Inc. Tanang katungod gigahin.
Mga Dokumento / Mga Kapanguhaan
![]() |
Juniper NETWORKS Streaming API Active Assurance [pdf] Giya sa Gumagamit Streaming API Active Assurance, API Active Assurance, Active Assurance, Assurance |