Juniper-logo

Juniper NETWORKS Streaming API SoftwareJuniper-NETWORKS-Streaming-API-Software-product

Impormasyon ng Produkto

Mga pagtutukoy

  • Pangalan ng Produkto: Paragon Active Assurance
  • Bersyon: 4.1
  • Petsa ng Na-publish: 2023-03-15

Panimula:
Nagbibigay ang gabay na ito ng mga tagubilin kung paano kunin ang data mula sa Paragon Active Assurance gamit ang streaming API ng produkto. Ang streaming client at API ay kasama sa pag-install ng Paragon Active Assurance, ngunit kailangan ang ilang configuration bago gamitin ang API. Ang proseso ng pagsasaayos ay saklaw sa seksyong "Pag-configure ng Streaming API".

Pag-configure ng Streaming API:
Binabalangkas ng mga sumusunod na hakbang ang proseso upang i-configure ang streaming API:

Tapos naview
Ang Kafka ay isang platform ng pag-stream ng kaganapan na idinisenyo para sa real-time na pagkuha at pag-imbak ng data mula sa iba't ibang mga mapagkukunan. Nagbibigay-daan ito sa pamamahala ng mga stream ng kaganapan sa isang distributed, scalable, fault-tolerant, at secure na paraan. Nakatuon ang gabay na ito sa pag-configure ng Kafka upang magamit ang tampok na Streaming API sa Paragon Active Assurance Control Center.

Terminolohiya
Ang Streaming API ay nagbibigay-daan sa mga panlabas na kliyente na kunin ang impormasyon ng mga sukatan mula sa Kafka. Ang mga sukatan na nakolekta ng Mga Ahente ng Pagsubok sa panahon ng isang pagsubok o gawain sa pagsubaybay ay ipinapadala sa serbisyo ng Stream. Pagkatapos ng pagproseso, ini-publish ng serbisyo ng Stream ang mga sukatang ito sa Kafka kasama ng karagdagang metadata.

Mga Paksa ng Kafka
Ang Streaming API ay gumagamit ng mga paksa ng Kafka upang ayusin at mag-imbak ng mga sukatan at metadata. Ang mga paksa ng Kafka ay maaaring gawin at pamahalaan ayon sa mga partikular na kinakailangan.

Paganahin ang Streaming API
Upang paganahin ang Streaming API, sundin ang mga hakbang na ito:

  1. Patakbuhin ang sumusunod na mga utos sa server ng Control Center gamit ang sudo:
KAFKA_METRICS_ENABLED = Ang mga tunay na serbisyo ng sudo ncc ay nagpapagana ng mga sukatan ng timescaledb na mga serbisyo ng sudo ncc ay nagsisimula ng mga timescaledb na sukatan ng sudo ncc na mga serbisyo ay nag-restart

Pagpapatunay na Gumagana ang Streaming API sa Control Center:
Upang i-verify na nakakatanggap ka ng mga sukatan sa tamang mga paksa ng Kafka:

  1. I-install ang kafkacat utility gamit ang mga sumusunod na command:
    sudo apt-get update
    sudo apt-get install kafkacat
  1. Palitan ang "myaccount" ng maikling pangalan ng iyong account sa
    Control Center URL:
    i-export ang METRICS_TOPIC=paa.public.accounts.myaccount.metrics
    i-export ang METADATA_TOPIC=paa.public.accounts.myaccount.metadata
  1. Patakbuhin ang sumusunod na command sa view mga sukatan:
    kafkacat -b ${KAFKA_FQDN}:9092 -t ${METRICS_TOPIC} -C -e
    Tandaan: Ipapakita ng command sa itaas ang mga sukatan.
  2. Upang view metadata, patakbuhin ang sumusunod na command:
    kafkacat -b ${KAFKA_FQDN}:9092 -t ${METADATA_TOPIC} -C -e

Tandaan: Ang command sa itaas ay magpapakita ng metadata, ngunit hindi ito mag-a-update nang madalas.

Kliyente Halamples
Para sa kliyente examples at karagdagang impormasyon, sumangguni sa pahina 14 ng manwal ng gumagamit.

FAQ (Frequently Asked Questions)

  • Q: Ano ang Paragon Active Assurance?
    A: Ang Paragon Active Assurance ay isang produkto na nagbibigay ng mga kakayahan sa pagsubaybay at pagsubok.
  • Q: Ano ang Streaming API?
    A: Ang Streaming API ay isang feature sa Paragon Active Assurance na nagbibigay-daan sa mga external na kliyente na kunin ang impormasyon ng mga sukatan mula sa Kafka.
  • T: Paano ko paganahin ang Streaming API?
    A: Upang paganahin ang Streaming API, sundin ang mga hakbang na nakabalangkas sa seksyong "Paganahin ang Streaming API" ng user manual.
  • T: Paano ko mabe-verify na gumagana ang Streaming API?
    A: Sumangguni sa seksyong "Pagpapatunay na Gumagana ang Streaming API sa Control Center" para sa mga tagubilin kung paano i-verify ang functionality ng Streaming API.

Panimula

Inilalarawan ng gabay na ito kung paano kumuha ng data mula sa Paragon Active Assurance sa pamamagitan ng streaming API ng produkto.
Ang API pati na rin ang streaming client ay kasama sa pag-install ng Paragon Active Assurance. Gayunpaman, kailangan ng kaunting configuration bago mo magamit ang API. Sinasaklaw ito sa "Pag-configure ng Streaming API" sa pahina 1 kabanata.

Tapos naview
Inilalarawan ng kabanatang ito kung paano i-configure ang Streaming API upang payagan ang pag-subscribe sa mga mensahe ng sukatan sa pamamagitan ng Kafka.
pr
Sa ibaba ay dadaan tayo sa:

  • Paano paganahin ang Streaming API
  • Paano i-configure ang Kafka upang makinig sa mga panlabas na kliyente
  • Paano i-configure ang Kafka na gumamit ng mga ACL at mag-set up ng SSL encryption para sa nasabing mga kliyente

Ano ang Kafka?
Ang Kafka ay isang platform ng pag-stream ng kaganapan na nagbibigay-daan sa real-time na pagkuha ng data na ipinadala mula sa iba't ibang pinagmulan ng kaganapan (mga sensor, database, mga mobile device) sa anyo ng mga stream ng kaganapan, pati na rin ang matibay na pag-iimbak ng mga stream ng kaganapan na ito para sa pagbawi at pagmamanipula sa ibang pagkakataon.
Sa Kafka, posibleng pamahalaan ang event streaming end-to-end sa isang distributed, highly scalable, elastic, fault-tolerant, at secure na paraan.

TANDAAN: Maaaring i-configure ang Kafka sa maraming iba't ibang paraan at idinisenyo para sa scalability at mga redundant na system. Nakatuon lang ang dokumentong ito sa kung paano ito i-configure para magamit ang feature na Streaming API na makikita sa Paragon Active Assurance Control Center. Para sa higit pang advanced na mga setup sumangguni kami sa opisyal na dokumentasyon ng Kafka: kafka.apache.org/26/documentation.html.

Terminolohiya

  • Kafka: Platform sa pag-stream ng kaganapan.
  • Paksa ng Kafka: Koleksyon ng mga kaganapan.
  • Kafka subscriber/consumer: Component na responsable para sa pagkuha ng mga event na nakaimbak sa isang Kafka topic.
  • Kafka broker: Storage layer server ng isang Kafka cluster.
  • SSL/TLS: Ang SSL ay isang secure na protocol na binuo para sa ligtas na pagpapadala ng impormasyon sa Internet. Ang TLS ay ang kahalili ng SSL, na ipinakilala noong 1999.
  • SASL: Framework na nagbibigay ng mga mekanismo para sa pagpapatunay ng user, pagsusuri sa integridad ng data, at pag-encrypt.
  • Subscriber ng Streaming API: Component na responsable para sa pagkuha ng mga event na nakaimbak sa mga paksang tinukoy sa Paragon Active Assurance at para sa external na access.
  • Certificate Authority: Isang pinagkakatiwalaang entity na nag-isyu at nagpapawalang-bisa ng mga pampublikong key certificate.
  • Sertipiko ng ugat ng Certificate Authority: Public key certificate na nagpapakilala sa isang Certificate Authority.

Paano Gumagana ang Streaming API
Gaya ng naunang nabanggit, pinapayagan ng Streaming API ang mga external na kliyente na kumuha ng impormasyon tungkol sa mga sukatan mula sa Kafka.

Ang lahat ng mga sukatan na nakolekta ng Mga Ahente ng Pagsusuri sa panahon ng isang pagsubok o gawain sa pagsubaybay ay ipinapadala sa serbisyo ng Stream. Pagkatapos ng yugto ng pagproseso, ini-publish ng serbisyo ng Stream ang mga sukatan na iyon sa Kafka kasama ng karagdagang metadata.

Juniper-NETWORKS-Streaming-API-Software- (1)

Mga Paksa ng Kafka
Ang Kafka ay may konsepto ng mga paksa kung saan nai-publish ang lahat ng data. Sa Paragon Active Assurance mayroong maraming mga ganitong paksa ng Kafka na magagamit; gayunpaman, isang subset lamang ng mga ito ang inilaan para sa panlabas na pag-access.
Ang bawat Paragon Active Assurance account sa Control Center ay may dalawang nakatuong paksa. Sa ibaba, ang ACCOUNT ay ang maikling pangalan ng account:

  • paa.public.accounts.{ACCOUNT}.metrics
    • Ang lahat ng mga mensahe ng sukatan para sa ibinigay na account ay na-publish sa paksang ito
    • Malaking halaga ng data
    • Mataas na dalas ng pag-update
  • paa.public.accounts.{ACCOUNT}.metadata
    • Naglalaman ng metadata na nauugnay sa data ng mga sukatan, halimbawaampang pagsubok, monitor o Test Agent na nauugnay sa mga sukatan
    • Maliit na halaga ng data
    • Mababang dalas ng pag-update

Paganahin ang Streaming API

TANDAAN: Ang mga tagubiling ito ay dapat patakbuhin sa server ng Control Center gamit ang sudo.

Dahil nagdaragdag ang Streaming API ng ilang overhead sa Control Center, hindi ito pinagana bilang default. Upang paganahin ang API, kailangan muna nating paganahin ang pag-publish ng mga sukatan sa Kafka sa pangunahing configuration file:

KAFKA_METRICS_ENABLED = Tama

BABALA: Maaaring makaapekto sa performance ng Control Center ang pagpapagana sa feature na ito. Tiyaking na-dimensyon mo ang iyong instance nang naaayon.

Susunod, upang paganahin ang pagpapasa ng mga sukatang ito sa tamang mga paksa ng Kafka:

streaming-api: totoo

Upang paganahin at simulan ang mga serbisyo ng Streaming API, patakbuhin ang:

  • pinapagana ng mga serbisyo ng sudo ncc ang mga sukatan ng timescaledb
  • Sinimulan ng mga serbisyo ng sudo ncc ang timescaledb na sukatan

Sa wakas, i-restart ang mga serbisyo:

  • Nag-restart ang mga serbisyo ng sudo ncc

Pagpapatunay na Gumagana ang Streaming API sa Control Center

TANDAAN: Ang mga tagubiling ito ay dapat patakbuhin sa server ng Control Center.

Maaari mo na ngayong i-verify na nakakatanggap ka ng mga sukatan sa mga tamang paksa ng Kafka. Upang gawin ito, i-install ang kafkacat utility:

  • sudo apt-get update
  • sudo apt-get install kafkacat

Kung mayroon kang pagsubok o monitor na tumatakbo sa Control Center, dapat ay magagamit mo ang kafkacat upang makatanggap ng mga sukatan at metadata sa mga paksang ito.
Palitan ang myaccount ng maikling pangalan ng iyong account (ito ang nakikita mo sa iyong Control Center URL):

  • i-export ang METRICS_TOPIC=paa.public.accounts.myaccount.metrics
  • i-export ang METADATA_TOPIC=paa.public.accounts.myaccount.metadata

Dapat mo na ngayong makita ang mga sukatan sa pamamagitan ng pagpapatakbo ng command na ito:

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

Upang view metadata, patakbuhin ang sumusunod na command (tandaan na hindi ito mag-a-update nang madalas):

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

TANDAAN:
kafkacat”Kliyente Halamples ”sa pahina 14

Bine-verify nito na mayroon kaming gumaganang Streaming API mula sa loob ng Control Center. Gayunpaman, malamang na interesado kang i-access ang data mula sa isang panlabas na kliyente sa halip. Inilalarawan ng susunod na seksyon kung paano buksan ang Kafka para sa panlabas na pag-access.

Pagbubukas ng Kafka para sa Mga Panlabas na Host

TANDAAN: Ang mga tagubiling ito ay dapat patakbuhin sa server ng Control Center.

Bilang default, ang Kafka na tumatakbo sa Control Center ay naka-configure upang makinig lamang sa localhost para sa panloob na paggamit. Posibleng buksan ang Kafka para sa mga panlabas na kliyente sa pamamagitan ng pagbabago ng mga setting ng Kafka.

Kumokonekta sa Kafka: Caveats

MAG-INGAT: Mangyaring basahin ito nang mabuti, dahil madaling magkaroon ng mga isyu sa koneksyon sa Kafka kung hindi mo naiintindihan ang mga konseptong ito.

Sa setup ng Control Center na inilarawan sa dokumentong ito, mayroon lamang isang Kafka broker.
Gayunpaman, tandaan na ang isang Kafka broker ay nilalayong tumakbo bilang bahagi ng isang Kafka cluster na maaaring binubuo ng maraming Kafka broker.
Kapag kumokonekta sa isang Kafka broker, isang paunang koneksyon ang ise-set up ng Kafka client. Sa koneksyon na ito, ang Kafka broker naman ay magbabalik ng isang listahan ng "mga ina-advertise na tagapakinig", na isang listahan ng isa o higit pang mga Kafka broker.
Sa pagtanggap ng listahang ito, ang Kafka client ay magdidiskonekta, pagkatapos ay muling kumonekta sa isa sa mga na-advertise na tagapakinig na ito. Ang mga ina-advertise na tagapakinig ay dapat maglaman ng mga hostname o IP address na naa-access sa Kafka client, o ang kliyente ay mabibigo na kumonekta.
Kung gagamitin ang SSL encryption, na kinasasangkutan ng SSL certificate na nakatali sa isang partikular na hostname, mas mahalaga na matanggap ng Kafka client ang tamang address upang kumonekta, dahil kung hindi ay maaaring tanggihan ang koneksyon.
Magbasa pa tungkol sa mga tagapakinig ng Kafka dito: www.confluent.io/blog/kafka-listeners-explained

SSL/TLS Encryption
Upang matiyak na mga pinagkakatiwalaang kliyente lamang ang pinapayagang ma-access ang Kafka at ang Streaming API, dapat nating i-configure ang sumusunod:

  • Authentication: Ang mga kliyente ay dapat magbigay ng username at password sa pamamagitan ng SSL/TLS na secure na koneksyon sa pagitan ng kliyente at Kafka.
  • Awtorisasyon: Ang mga authenticated na kliyente ay maaaring magsagawa ng mga gawaing kinokontrol ng mga ACL.

Dito ay tapos naview:

Juniper-NETWORKS-Streaming-API-Software- (2)

*) Ang pagpapatotoo ng username/password ay ginawa sa isang channel na naka-encrypt na SSL

Upang lubos na maunawaan kung paano gumagana ang SSL/TLS encryption para sa Kafka, mangyaring sumangguni sa opisyal na dokumentasyon: docs.confluent.io/platform/current/kafka/encryption.html

Tapos na ang SSL/TLS Certificateview

TANDAAN: Sa subsection na ito gagamitin namin ang sumusunod na terminolohiya:

Sertipiko: Isang SSL certificate na nilagdaan ng isang Certificate Authority (CA). Ang bawat Kafka broker ay may isa.
Keystore: Ang keystore file na nag-iimbak ng sertipiko. Ang keystore file naglalaman ng pribadong susi ng sertipiko; samakatuwid, kailangan itong panatilihing ligtas.
Truststore: A file naglalaman ng mga pinagkakatiwalaang CA certificate.

Para i-set up ang authentication sa pagitan ng isang external na client at Kafka na tumatakbo sa Control Center, ang magkabilang panig ay dapat na may keystore na tinukoy na may nauugnay na certificate na nilagdaan ng isang Certificate Authority (CA) kasama ang CA root certificate.
Bilang karagdagan dito, ang kliyente ay dapat ding magkaroon ng isang truststore na may CA root certificate.
Ang CA root certificate ay karaniwan sa Kafka broker at Kafka client.

Paglikha ng Mga Kinakailangang Sertipiko
Sinasaklaw ito sa “Appendix” sa pahina 17.

Kafka Broker SSL/TLS Configuration sa Control Center

TANDAAN: Ang mga tagubiling ito ay dapat patakbuhin sa server ng Control Center.

TANDAAN: Bago magpatuloy, dapat kang lumikha ng keystore na naglalaman ng SSL certificate sa pamamagitan ng pagsunod sa mga tagubilin sa “Appendix” sa pahina 17. Ang mga landas na binanggit sa ibaba ay nagmula sa mga tagubiling ito.
Ang SSL keystore ay isang file nakaimbak sa disk na may file extension .jks.

Kapag mayroon ka nang mga kinakailangang certificate na ginawa para sa Kafka broker at sa Kafka client na available, maaari kang magpatuloy sa pamamagitan ng pag-configure sa Kafka broker na tumatakbo sa Control Center. Kailangan mong malaman ang mga sumusunod:

  • : Ang pampublikong hostname ng Control Center; ito ay dapat na malulutas at naa-access ng mga kliyente ng Kafka.
  • : Ang password ng keystore na ibinigay sa paggawa ng SSL certificate.
  • at : Ito ang mga password na gusto mong itakda para sa admin at client user ayon sa pagkakabanggit. Tandaan na maaari kang magdagdag ng higit pang mga user, gaya ng nakasaad sa example.

I-edit o idugtong (na may sudo access) ang mga katangian sa ibaba sa /etc/kafka/server.properties, na inilalagay ang mga variable sa itaas tulad ng ipinapakita:

BABALA: Huwag tanggalin ang PLAINTEXT://localhost:9092; sisirain nito ang pag-andar ng Control Center dahil hindi makakapag-usap ang mga panloob na serbisyo.

  • # Ang mga address na pinakikinggan ng Kafka broker.
  • listeners=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
  • # Ito ang mga host na ina-advertise pabalik sa sinumang kliyente na kumokonekta.
  • 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=none
  • ssl.protocol=TLSv1.2
  • # pagsasaayos ng SASL
  • sasl.enabled.mechanisms=PLAIN
  • username=”admin” \
  • password=” ” \
  • user_admin=" ” \
  • user_client=” ”;
  • # TANDAAN higit pang mga user ang maaaring idagdag sa user_ =
  • # Authorization, i-on ang mga ACL
  • authorizer.class.name=kafka.security.authorizer.AclAuthorizer super.users=User:admin

Pag-set up ng Mga Listahan ng Access Control (Mga ACL)

Pag-on sa mga ACL sa localhost

BABALA: Kailangan muna nating mag-set up ng mga ACL para sa localhost, para ma-access pa rin mismo ng Control Center ang Kafka. Kung hindi ito gagawin, masisira ang mga bagay.

  • –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 '*'

Pagkatapos ay kailangan nating paganahin ang mga ACL para sa panlabas na read-only na pag-access, upang ang mga panlabas na user ay pinapayagang basahin ang paa.public.* na mga paksa.

### Mga entry sa ACL para sa mga hindi kilalang user /usr/lib/kafka/bin/kafka-acls.sh \

TANDAAN: Para sa higit pang mahusay na kontrol, mangyaring sumangguni sa opisyal na dokumentasyon ng Kafka.

  • –authorizer kafka.security.authorizer.AclAuthorizer \
  • –authorizer-properties zookeeper.connect=localhost:2181 \
  • –add –allow-principal User:* –operation read –operation describe \ –group '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.public. –resource-pattern-type ang prefixed

Kapag tapos na ito, kailangan mong i-restart ang mga serbisyo:

### Mga entry sa ACL para sa mga panlabas na user /usr/lib/kafka/bin/kafka-acls.sh \
  • Nag-restart ang mga serbisyo ng sudo ncc

Upang i-verify na ang isang kliyente ay makakapagtatag ng isang secure na koneksyon, patakbuhin ang sumusunod na command sa isang panlabas
computer ng kliyente (wala sa server ng Control Center). Sa ibaba, ang PUBLIC_HOSTNAME ay ang Control Center hostname:

  • openssl s_client -debug -connect ${PUBLIC_HOSTNAME}:9093 -tls1_2 | grep "Sinusuportahan ang Secure Renegotiation IS"

Sa output ng command dapat mong makita ang sertipiko ng server pati na rin ang sumusunod:

  • Sinusuportahan ang Secure Renegotiation

Upang matiyak na ang mga panloob na serbisyo ay nabigyan ng access sa Kafka server, mangyaring suriin ang sumusunod na logfiles:

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

Pagpapatunay ng External Client Connectivity

kafkacat

TANDAAN: Ang mga tagubiling ito ay dapat patakbuhin sa isang computer ng kliyente (hindi sa server ng Control Center).
TANDAAN: Upang ipakita ang impormasyon ng mga sukatan, tiyaking kahit isang monitor ay tumatakbo sa Control Center.

Upang i-verify at patunayan ang pagkakakonekta bilang isang panlabas na kliyente, posibleng gamitin ang kafkacat utility na na-install sa seksyong "Pagpapatunay na Gumagana ang Streaming API sa Control Center" sa pahina 4.
Gawin ang mga sumusunod na hakbang:

TANDAAN: Sa ibaba, si CLIENT_USER ay ang user na dating tinukoy sa file /etc/kafka/server.properties sa Control Center: ibig sabihin, user_client at ang password na nakatakda doon.
Ang CA root certificate na ginamit para lagdaan ang server side SSL certificate ay dapat na nasa client.

Lumikha ng a file client.properties na may sumusunod na nilalaman:

  • security.protocol=SASL_SSL
  • ssl.ca.location={PATH_TO_CA_CERT}
  • sasl.mechanisms=PLAIN
  • sasl.username={CLIENT_USER}
  • sasl.password={CLIENT_PASSWORD}

saan

  • Ang {PATH_TO_CA_CERT} ay ang lokasyon ng CA root certificate na ginagamit ng Kafka broker
  • Ang {CLIENT_USER} at {CLIENT_PASSWORD} ay ang mga kredensyal ng user para sa kliyente.

Patakbuhin ang sumusunod na utos upang makita ang mensahe na natupok ng kafkacat:

  • i-export ang KAFKA_FQDN=
  • i-export ang METRICS_TOPIC=paa.public.accounts. .metrics
  • kafkacat -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e

kung saan ang {METRICS_TOPIC} ay ang pangalan ng paksa ng Kafka na may prefix na “paa.public.”.

TANDAAN: Ang mga lumang bersyon ng kafkacat ay hindi nagbibigay ng -F na opsyon para sa pagbabasa ng mga setting ng kliyente mula sa a file. Kung gumagamit ka ng ganoong bersyon, dapat kang magbigay ng parehong mga setting mula sa command line tulad ng ipinapakita sa ibaba.

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

Upang i-debug ang pagkakakonekta, maaari mong gamitin ang -d na opsyon:

I-debug ang mga komunikasyon ng consumer
kafkacat -d consumer -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
# I-debug ang mga komunikasyon ng broker
kafkacat -d broker -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e

Tiyaking sumangguni sa dokumentasyon para sa Kafka client library na ginagamit, dahil maaaring iba ang mga property sa mga nasa client.properties.

Format ng Mensahe
Ang mga mensaheng ginamit para sa mga sukatan at mga paksa ng metadata ay naka-serialize sa format na Protocol buffers (protobuf) (tingnan ang developers.google.com/protocol-buffers). Ang mga schema para sa mga mensaheng ito ay sumusunod sa sumusunod na format:

Mga Sukatan ng Protobuf Schema

  • syntax = "proto3";
  • import "google/protobuf/timestamp.proto”;
  • package paa.streamingapi;
  • opsyon go_package = “.;paa_streamingapi”;
  • Mga Sukatan ng mensahe {
  • google.protobuf.Timestamp orasamp = 1;
  • mapa mga halaga = 2;
  • int32 stream_id = 3;
  • }
  • /**
  • * Ang isang sukatan na halaga ay maaaring alinman sa isang integer o isang float.
  • */
  • mensahe MetricValue {
  • isa sa uri {
  • 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 Halamples

TANDAAN: Ang mga utos na ito ay nilayon na tumakbo sa isang panlabas na kliyente, halimbawaamptingnan ang iyong laptop o katulad, at hindi sa Control Center.
TANDAAN: Upang maipakita ang impormasyon ng mga sukatan, tiyaking gumagana ang kahit isang monitor sa Control Center.

Kasama sa tarball ng Control Center ang archive na paa-streaming-api-client-examples.tar.gz (client-examples), na naglalaman ng example Python script na nagpapakita kung paano gamitin ang Streaming API.

Pag-install at Pag-configure ng Kliyente Halamples
Maghanap ka ng client-examples sa folder ng Paragon Active Assurance Control Center:

  • i-export ang CC_VERSION=4.1.0
  • cd ./paa-control-center_${CC_VERSION}
  • ls paa-streaming-api-client-examples*

Upang i-install ang client-examples sa iyong panlabas na client computer, magpatuloy tulad ng sumusunod:

  • # Lumikha ng direktoryo para sa pagkuha ng nilalaman ng kliyente halamples tarball
  • mkdir paa-streaming-api-client-examples
  • # I-extract ang nilalaman ng kliyente halamples tarball
  • tar xzf paa-streaming-api-client-examples.tar.gz -C paa-streaming-api-client-examples
  • # Pumunta sa bagong likhang direktoryo
  • cd paa-streaming-api-client-examples

kliyente-exampAng les ay nangangailangan ng Docker na tumakbo. Ang mga pag-download at tagubilin sa pag-install para sa Docker ay matatagpuan sa https://docs.docker.com/engine/install.

Paggamit ng Kliyente Halamples
Ang client-exampAng mga tool ay maaaring tumakbo sa alinman sa basic o advanced na mode upang bumuo ng examples ng iba't ibang kumplikado. Sa parehong mga kaso, posible ring patakbuhin ang examples na may configuration file naglalaman ng mga karagdagang katangian para sa karagdagang pagpapasadya ng panig ng kliyente.

Pangunahing Mode
Sa basic mode, ang mga sukatan at ang kanilang metadata ay hiwalay na ini-stream. Sa layuning ito, pinakikinggan ng kliyente ang bawat paksa ng Kafka na magagamit para sa panlabas na pag-access at ini-print lamang ang mga natanggap na mensahe sa console.
Upang simulan ang pagpapatupad ng pangunahing examples, tumakbo:

  • build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME

kung saan ang ACCOUNT_SHORTNAME ay ang maikling pangalan ng account kung saan mo gustong kunin ang mga sukatan.
Para wakasan ang execution ng example, pindutin ang Ctrl + C. (Maaaring magkaroon ng kaunting pagkaantala bago huminto ang pagpapatupad dahil naghihintay ang kliyente ng isang timeout na kaganapan.)

Advanced na Mode

TANDAAN: Ang mga sukatan ay ipinapakita lamang para sa mga HTTP monitor na tumatakbo sa Control Center.

Ipinapakita ng execution sa advanced mode ang ugnayan sa pagitan ng mga sukatan at metadata na mensahe. Ito ay
posible salamat sa presensya sa bawat mensahe ng sukatan ng isang field ng stream id na tumutukoy sa kaukulang mensahe ng metadata.
Upang isagawa ang advanced na examples, tumakbo:

  • build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME

kung saan ang ACCOUNT_SHORTNAME ay ang maikling pangalan ng account kung saan mo gustong kunin ang mga sukatan.
Para wakasan ang execution ng example, pindutin ang Ctrl + C. (Maaaring magkaroon ng kaunting pagkaantala bago huminto ang pagpapatupad dahil naghihintay ang kliyente ng isang timeout na kaganapan.)

Mga Karagdagang Setting
Posibleng tumakbo ang examples na may karagdagang configuration ng client gamit ang –config-file opsyon na sinusundan ng a file pangalan na naglalaman ng mga katangian sa form key=value.

  • build.sh run-advanced \
  • –kafka-brokers localhost:9092 \
  • –account ACCOUNT_SHORTNAME \
  • –config-file client_config.properties

TANDAAN: Lahat files na isinangguni sa utos sa itaas ay dapat na matatagpuan sa kasalukuyang direktoryo at tinutukoy gamit lamang ang mga kamag-anak na landas. Nalalapat ito pareho sa –config-file argument at sa lahat ng mga entry sa configuration file na naglalarawan file mga lokasyon.

Pagpapatunay ng External Client Authentication
Upang patunayan ang pagpapatunay ng kliyente mula sa labas ng Control Center gamit ang client-examples, gawin ang mga sumusunod na hakbang:

Mula sa folder ng Paragon Active Assurance Control Center, lumipat sa paa-streaming-api-client-examples folder:

cd paa-streaming-api-client-examples

  • Kopyahin ang CA root certificate na ca-cert sa kasalukuyang direktoryo.
  • Gumawa ng client.properties file na may sumusunod na nilalaman:

security.protocol=SASL_SSL ssl.ca.location=ca-cert
sasl.mechanism=PLAIN
sasl.username={CLIENT_USER}
sasl.password={CLIENT_PASSWORD}

kung saan ang {CLIENT_USER} at {CLIENT_PASSWORD} ay ang mga kredensyal ng user para sa kliyente.

Patakbuhin ang pangunahing examples:

  • i-export ang KAFKA_FQDN=
  • build.sh run-basic –kafka-brokers ${KAFKA_FQDN}:9093 \
  • –account ACCOUNT_SHORTNAME
  • –config-file client.properties

kung saan ang ACCOUNT_SHORTNAME ay ang maikling pangalan ng account kung saan mo gustong kunin ang mga sukatan.

Patakbuhin ang advanced na examples:

  • i-export ang KAFKA_FQDN=
  • build.sh run-advanced –kafka-brokers ${KAFKA_FQDN}:9093 \
  • –account ACCOUNT_SHORTNAME
  • –config-file client.properties

Apendise

Sa apendiks na ito inilalarawan namin kung paano lumikha:

  • isang keystore file para sa pag-iimbak ng Kafka broker SSL certificate
  • isang truststore file para sa pag-iimbak ng Certificate Authority (CA) root certificate na ginamit para lagdaan ang Kafka broker certificate.

Paglikha ng Sertipiko ng Kafka Broker
Paglikha ng Sertipiko Gamit ang Tunay na Awtoridad ng Sertipiko (Inirerekomenda)
Inirerekomenda na kumuha ka ng totoong SSL certificate mula sa pinagkakatiwalaang CA.
Kapag nakapagpasya ka na sa isang CA, kopyahin ang kanilang CA root certificate na ca-cert file sa iyong sariling landas tulad ng ipinapakita sa ibaba:

  • i-export ang CA_PATH=~/my-ca
  • mkdir ${CA_PATH}
  • cp ca-cert ${CA_PATH}

Lumikha ng Iyong Sariling Awtoridad sa Sertipiko

TANDAAN: Karaniwan dapat na ang iyong sertipiko ay pinirmahan ng isang tunay na Awtoridad ng Sertipiko; tingnan ang naunang subsection. Ang sumunod ay isang ex langample.

Dito kami gumagawa ng sarili naming Certificate Authority (CA) root certificate file may bisa sa loob ng 999 araw (hindi inirerekomenda sa produksyon):

  • # Lumikha ng isang direktoryo para sa pag-iimbak ng CA
  • i-export ang CA_PATH=~/my-ca
  • mkdir ${CA_PATH}
  • # Bumuo ng CA certificate
  • openssl req -new -x509 -keyout ${CA_PATH}/ca-key -out ${CA_PATH}/ca-cert -days 999

Paglikha ng Client Truststore
Ngayon ay maaari kang lumikha ng isang truststore file na naglalaman ng ca-cert na nabuo sa itaas. Ito file ay kakailanganin ng Kafka client na mag-a-access sa Streaming API:

  • keytool -keystore kafka.client.truststore.jks \
    • alias CARoot \
    • importcert -file ${CA_PATH}/ca-cert

Ngayong nasa truststore na ang CA certificate, magtitiwala ang kliyente sa anumang certificate na nilagdaan nito.
Dapat mong kopyahin ang file kafka.client.truststore.jks sa isang kilalang lokasyon sa iyong computer ng kliyente at ituro ito sa mga setting.

Paglikha ng Keystore para sa Kafka Broker
Upang bumuo ng SSL certificate ng Kafka broker at pagkatapos ay ang keystore na kafka.server.keystore.jks, magpatuloy bilang sumusunod:

Pagbuo ng SSL Certificate
Sa ibaba, 999 ang bilang ng mga araw ng validity ng keystore, at ang FQDN ay ang ganap na kwalipikadong domain name ng client (public host name ng node).

TANDAAN: Mahalagang tumugma ang FQDN sa eksaktong hostname na gagamitin ng Kafka client para kumonekta sa Control Center.

  • sudo mkdir -p /var/ssl/private
  • sudo chown -R $USER: /var/ssl/private
  • cd /var/ssl/pribado
  • i-export ang FQDN= keytool -keystore kafka.server.keystore.jks \
  • – alias server \
  • – bisa 999 \
  • – genkey -keyalg RSA -ext SAN=dns:${FQDN}

Gumawa ng kahilingan sa pagpirma ng certificate at iimbak ito sa file pinangalanang cert-server-request:

  • keytool -keystore kafka.server.keystore.jks \
    • – alias server \
    • – certreq \
    • – file kahilingan-cert-server

Dapat mo na ngayong ipadala ang file cert-server-request sa iyong Certificate Authority (CA) kung gumagamit ka ng tunay. Pagkatapos ay ibabalik nila ang pinirmahang sertipiko. Ire-refer namin ito bilang cert-server-signed sa ibaba.

Pagpirma sa SSL Certificate Gamit ang Self-created CA Certificate

TANDAAN: Muli, ang paggamit ng sarili mong CA ay hindi inirerekomenda sa isang sistema ng produksyon.

Lagdaan ang sertipiko gamit ang CA sa pamamagitan ng file cert-server-request, na gumagawa ng pinirmahang certificate na cert-server-signed. Tingnan sa ibaba; Ang ca-password ay ang password na itinakda kapag lumilikha ng CA certificate.

  • cd /var/ssl/private openssl x509 -req \
    • – CA ${CA_PATH}/ca-cert \
    • – CAkey ${CA_PATH}/ca-key \
    • – sa cert-server-request \
    • – out cert-server-signed \
    • – araw 999 -CAcreateserial \
    • – passin pass:{ca-password}

Pag-import ng Nilagdaan na Sertipiko sa Keystore

I-import ang ca-cert root certificate sa keystore:

  • keytool -keystore kafka.server.keystore.jks \
    • – alias ca-cert \
    • - angkat \
    • – file ${CA_PATH}/ca-cert

I-import ang pinirmahang certificate na tinutukoy bilang cert-server-signed:

  • keytool -keystore kafka.server.keystore.jks \
    • – alias server \
    • - angkat \
    • – file cert-server-signed

Ang file Ang kafka.server.keystore.jks ay dapat makopya sa isang kilalang lokasyon sa server ng Control Center, at pagkatapos ay tinutukoy sa /etc/kafka/server.properties.

Gamit ang Streaming API

SA SEKSYON NA ITO

  • Pangkalahatan | 20
  • Mga Pangalan ng Paksa ng Kafka | 21
  • Examples ng Paggamit ng Streaming API | 21

Heneral
Kinukuha ng streaming API ang data ng pagsubok at pagsubaybay. Hindi posibleng isa-isa ang isa sa mga kategoryang ito.
Ang streaming API ay hindi kumukuha ng data mula sa mga pagsubok na nakabatay sa script (ang kinakatawan ng isang parihaba sa halip na isang piraso ng jigsaw sa Control Center GUI), gaya ng mga pagsubok sa pag-activate ng serbisyo ng Ethernet at mga pagsubok sa transparency.

Mga Pangalan ng Paksa ng Kafka
Ang mga pangalan ng paksa ng Kafka para sa streaming API ay ang mga sumusunod, kung saan ang %s ay ang maikling pangalan ng Control Center account (ipinahiwatig kapag gumagawa ng account):

  • const (
  • exporterName = “kafka”
  • metadataTopicTpl = “paa.public.accounts.%s.metadata” metricsTopicTpl = “paa.public.accounts.%s.metrics” )

Examples ng Paggamit ng Streaming API
Ang exampAng mga sumusunod ay matatagpuan sa tarball paa-streaming-api-client-examples.tar.gz na nasa loob ng tarball ng Control Center.
Una, may basic exampAng pagpapakita kung paano ang mga sukatan at ang kanilang metadata ay ini-stream nang hiwalay at simpleng i-print ang mga natanggap na mensahe sa console. Maaari mo itong patakbuhin tulad ng sumusunod:

  • sudo ./build.sh run-basic –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME

Meron ding mas advanced na exampkung saan magkakaugnay ang mga sukatan at metadata na mensahe. Gamitin ang command na ito upang patakbuhin ito:

  • sudo ./build.sh run-advanced –kafka-brokers localhost:9092 –account ACCOUNT_SHORTNAME

Kailangan mong gumamit ng sudo upang patakbuhin ang mga utos ng Docker tulad ng mga nasa itaas. Opsyonal, maaari mong sundin ang mga hakbang sa post-installation ng Linux upang makapagpatakbo ng mga utos ng Docker nang walang sudo. Para sa mga detalye, pumunta sa docs.docker.com/engine/install/linux-postinstall.

Ang Juniper Networks, ang logo ng Juniper Networks, Juniper, at Junos ay mga rehistradong trademark ng Juniper Networks, Inc. sa United States at iba pang mga bansa. Ang lahat ng iba pang mga trademark, mga marka ng serbisyo, mga rehistradong marka, o mga rehistradong marka ng serbisyo ay pag-aari ng kani-kanilang mga may-ari. Walang pananagutan ang Juniper Networks para sa anumang mga kamalian sa dokumentong ito. Inilalaan ng Juniper Networks ang karapatang baguhin, baguhin, ilipat, o kung hindi man ay baguhin ang publikasyong ito nang walang abiso. Copyright © 2023 Juniper Networks, Inc. Lahat ng karapatan ay nakalaan.

Mga Dokumento / Mga Mapagkukunan

Juniper NETWORKS Streaming API Software [pdf] Gabay sa Gumagamit
Streaming API Software, API Software, Software

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *