Juniper-logo

Juniper NETWERKE Streaming API sagtewareJuniper-NETWERKE-Streaming-API-sagteware-produk

Produk inligting

Spesifikasies

  • Produknaam: Paragon Active Assurance
  • Weergawe: 4.1
  • Gepubliseer Datum: 2023-03-15

Inleiding:
Hierdie gids verskaf instruksies oor hoe om data uit Paragon Active Assurance te onttrek deur die produk se stroom-API te gebruik. Die stroomkliënt en API is by die Paragon Active Assurance-installasie ingesluit, maar 'n mate van konfigurasie word vereis voordat die API gebruik word. Die konfigurasieproses word gedek in die afdeling "Konfigureer die stroom-API".

Opstel van die Streaming API:
Die volgende stappe beskryf die proses om die streaming API op te stel:

verbyview
Kafka is 'n gebeurtenis-stroomplatform wat ontwerp is vir intydse vaslegging en berging van data uit verskeie bronne. Dit maak die bestuur van gebeurtenisstrome moontlik op 'n verspreide, skaalbare, foutverdraagsame en veilige manier. Hierdie gids fokus op die konfigurasie van Kafka om die Streaming API-funksie in Paragon Active Assurance Control Center te gebruik.

Terminologie
Die Streaming API laat eksterne kliënte toe om metrieke inligting van Kafka af te haal. Metrieke wat deur die toetsagente tydens 'n toets- of moniteringstaak ingesamel word, word na die Stroomdiens gestuur. Na verwerking publiseer die Stream-diens hierdie statistieke op Kafka saam met bykomende metadata.

Kafka Onderwerpe
Die Streaming API gebruik Kafka-onderwerpe om statistieke en metadata te organiseer en te stoor. Kafka-onderwerpe kan volgens spesifieke vereistes geskep en bestuur word.

Aktiveer die Streaming API
Volg hierdie stappe om die Streaming API te aktiveer:

  1. Voer die volgende opdragte op die Beheersentrumbediener uit met sudo:
KAFKA_METRICS_ENABLED = Ware sudo ncc dienste aktiveer timescaledb statistieke sudo ncc dienste begin timescaledb statistieke sudo ncc dienste herbegin

Verifieer dat die stroom-API in beheersentrum werk:
Om te verifieer dat jy statistieke oor die korrekte Kafka-onderwerpe ontvang:

  1. Installeer die kafkacat-hulpprogram met die volgende opdragte:
    sudo apt-get update
    sudo apt-get install kafkacat
  1. Vervang "my rekening" met die kort naam van jou rekening in die
    Beheersentrum URL:
    uitvoer METRICS_TOPIC=paa.public.accounts.myaccount.metrics
    uitvoer METADATA_TOPIC=paa.publieke.rekeninge.myrekening.metadata
  1. Voer die volgende opdrag uit na view maatstawwe:
    kafkacat -b ${KAFKA_FQDN}:9092 -t ${METRICS_TOPIC} -C -e
    Let wel: Die bogenoemde opdrag sal die metrieke vertoon.
  2. Om view metadata, voer die volgende opdrag uit:
    kafkacat -b ${KAFKA_FQDN}:9092 -t ${METADATA_TOPIC} -C -e

Let wel: Die bogenoemde opdrag sal metadata vertoon, maar dit sal nie so gereeld opdateer nie.

Kliënt Bvamples
Vir kliënt examplees en verdere inligting, verwys na bladsy 14 van die gebruikershandleiding.

Gereelde vrae (Gereelde Vrae)

  • V: Wat is Paragon Active Assurance?
    A: Paragon Active Assurance is 'n produk wat moniterings- en toetsvermoëns bied.
  • V: Wat is die Streaming API?
    A: Die Streaming API is 'n kenmerk in Paragon Active Assurance wat eksterne kliënte toelaat om metrieke inligting van Kafka af te haal.
  • V: Hoe aktiveer ek die Streaming API?
    A: Om die Streaming API te aktiveer, volg die stappe uiteengesit in die "Aktiveer die Streaming API"-afdeling van die gebruikershandleiding.
  • V: Hoe kan ek verifieer dat die Streaming API werk?
    A: Verwys na die afdeling "Verifieer dat die stroom-API in beheersentrum werk" vir instruksies oor hoe om die funksionaliteit van die stroom-API te verifieer.

Inleiding

Hierdie gids beskryf hoe om data uit Paragon Active Assurance te onttrek via die produk se streaming API.
Die API sowel as die stroomkliënt is by die Paragon Active Assurance-installasie ingesluit. 'n Bietjie konfigurasie is egter nodig voordat jy die API kan gebruik. Dit word gedek in die "Konfigurasie van die stroom-API" op bladsy 1 hoofstuk.

verbyview
Hierdie hoofstuk beskryf hoe om die Streaming API op te stel om in te teken op maatstafboodskappe via Kafka.
pr
Hieronder gaan ons deur:

  • Hoe om die Streaming API te aktiveer
  • Hoe om Kafka op te stel om na eksterne kliënte te luister
  • Hoe om Kafka op te stel om ACL's te gebruik en SSL-enkripsie vir genoemde kliënte op te stel

Wat is Kafka?
Kafka is 'n gebeurtenisstromingsplatform wat intydse vaslegging van data moontlik maak wat vanaf verskeie gebeurtenisbronne (sensors, databasisse, mobiele toestelle) gestuur word in die vorm van gebeurtenisstrome, sowel as die duursame berging van hierdie gebeurtenisstrome vir latere herwinning en manipulasie.
Met Kafka is dit moontlik om die gebeurtenisstroming end-tot-end op 'n verspreide, hoogs skaalbare, elastiese, foutverdraagsame en veilige manier te bestuur.

LET WEL: Kafka kan op baie verskillende maniere gekonfigureer word en is ontwerp vir skaalbaarheid en oortollige stelsels. Hierdie dokument fokus slegs op hoe om dit op te stel om gebruik te maak van die Streaming API-kenmerk wat in Paragon Active Assurance Control Center gevind word. Vir meer gevorderde opstellings verwys ons na die amptelike Kafka-dokumentasie: kafka.apache.org/26/documentation.html.

Terminologie

  • Kafka: Gebeurtenisstroomplatform.
  • Kafka-onderwerp: Versameling van gebeure.
  • Kafka-intekenaar/verbruiker: Komponent verantwoordelik vir die herwinning van gebeure wat in 'n Kafka-onderwerp gestoor is.
  • Kafka-makelaar: Bergingslaagbediener van 'n Kafka-kluster.
  • SSL/TLS: SSL is 'n veilige protokol wat ontwikkel is om inligting veilig oor die internet te stuur. TLS is die opvolger van SSL, wat in 1999 bekendgestel is.
  • SASL: Raamwerk wat meganismes verskaf vir gebruikersverifikasie, data-integriteitkontrolering en enkripsie.
  • Streaming API-intekenaar: Komponent wat verantwoordelik is vir die herwinning van gebeure wat gestoor is in onderwerpe wat in Paragon Active Assurance gedefinieer is en bedoel is vir eksterne toegang.
  • Sertifikaat-owerheid: 'n Betroubare entiteit wat publieke sleutelsertifikate uitreik en herroep.
  • Sertifikaat-owerheid-wortelsertifikaat: Publieke sleutelsertifikaat wat 'n sertifikaatowerheid identifiseer.

Hoe die Streaming API werk
Soos voorheen genoem, laat die Streaming API eksterne kliënte toe om inligting oor statistieke van Kafka af te haal.

Alle maatstawwe wat deur die toetsagente tydens 'n toets- of moniteringstaak ingesamel word, word na die stroomdiens gestuur. Na 'n verwerkingsfase publiseer die Stream-diens daardie maatstawwe op Kafka saam met bykomende metadata.

Juniper-NETWERKE-Streaming-API-sagteware- (1)

Kafka Onderwerpe
Kafka het die konsep van onderwerpe waartoe alle data gepubliseer word. In Paragon Active Assurance is daar baie sulke Kafka-onderwerpe beskikbaar; slegs 'n subset hiervan is egter bedoel vir eksterne toegang.
Elke Paragon Active Assurance-rekening in Beheersentrum het twee toegewyde onderwerpe. Hieronder is REKENING die rekeningkortnaam:

  • paa.publieke.rekeninge.{REKENING}.metrieke
    • Alle maatstafboodskappe vir die gegewe rekening word na hierdie onderwerp gepubliseer
    • Groot hoeveelhede data
    • Hoë opdateringsfrekwensie
  • paa.publieke.rekeninge.{REKENING}.metadata
    • Bevat metadata wat verband hou met die maatstawwe data, bvample die toets, monitor of toetsagent wat met die maatstawwe geassosieer word
    • Klein hoeveelhede data
    • Lae opdateringfrekwensie

Aktiveer die Streaming API

LET WEL: Hierdie instruksies moet uitgevoer word op die Beheersentrum-bediener met sudo.

Aangesien die Streaming API 'n bietjie oorhoofse koste by die beheersentrum voeg, is dit nie by verstek geaktiveer nie. Om die API te aktiveer, moet ons eers die publikasie van metrieke aan Kafka in die hoofkonfigurasie aktiveer file:

KAFKA_METRICS_ENABLED = Waar

WAARSKUWING: Deur hierdie kenmerk te aktiveer, kan beheersentrum-werkverrigting beïnvloed. Maak seker dat jy jou instansie daarvolgens gedimensioneer het.

Volgende, om die aanstuur van hierdie maatstawwe na die korrekte Kafka-onderwerpe moontlik te maak:

streaming-api: waar

Om die Streaming API-dienste te aktiveer en te begin, hardloop:

  • sudo ncc-dienste maak tydskaalb-metrieke moontlik
  • sudo ncc dienste begin timescaledb statistieke

Ten slotte, herbegin die dienste:

  • sudo ncc dienste herbegin

Verifieer dat die stroom-API in beheersentrum werk

LET WEL: Hierdie instruksies moet op die Beheersentrumbediener uitgevoer word.

Jy kan nou verifieer dat jy statistieke oor die korrekte Kafka-onderwerpe ontvang. Om dit te doen, installeer die kafkacat-hulpprogram:

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

As jy 'n toets of monitor in Beheersentrum het, behoort jy kafkacat te kan gebruik om metrieke en metadata oor hierdie onderwerpe te ontvang.
Vervang my rekening met die kort naam van jou rekening (dit is wat jy in jou beheersentrum sien URL):

  • uitvoer METRICS_TOPIC=paa.public.accounts.myaccount.metrics
  • uitvoer METADATA_TOPIC=paa.publieke.rekeninge.myrekening.metadata

Jy behoort nou metrieke te sien deur hierdie opdrag uit te voer:

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

Om view metadata, voer die volgende opdrag uit (let daarop dat dit nie so gereeld sal opdateer nie):

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

LET WEL:
kafkacat” Kliënt Examples ”op bladsy 14

Dit verifieer dat ons 'n werkende stroom-API van binne die beheersentrum het. Dit is egter waarskynlik dat u eerder belangstel om toegang tot die data vanaf 'n eksterne kliënt te verkry. Die volgende afdeling beskryf hoe om Kafka oop te maak vir eksterne toegang.

Kafka oopmaak vir eksterne gashere

LET WEL: Hierdie instruksies moet op die Beheersentrumbediener uitgevoer word.

Kafka wat op die beheersentrum loop, is standaard gekonfigureer om slegs op localhost te luister vir interne gebruik. Dit is moontlik om Kafka vir eksterne kliënte oop te maak deur Kafka-instellings te verander.

Koppel aan Kafka: Caveats

WAARSKUWING: Lees dit asseblief noukeurig, aangesien dit maklik is om verbindingsprobleme met Kafka te ondervind as jy nie hierdie konsepte verstaan ​​het nie.

In die beheersentrum-opstelling wat in hierdie dokument beskryf word, is daar slegs 'n enkele Kafka-makelaar.
Let egter daarop dat 'n Kafka-makelaar bedoel is om te loop as deel van 'n Kafka-kluster wat uit baie Kafka-makelaars kan bestaan.
Wanneer u aan 'n Kafka-makelaar koppel, word 'n aanvanklike verbinding deur die Kafka-kliënt opgestel. Oor hierdie verband sal die Kafka-makelaar op sy beurt 'n lys van "geadverteerde luisteraars" terugstuur, wat 'n lys van een of meer Kafka-makelaars is.
By ontvangs van hierdie lys sal die Kafka-kliënt ontkoppel en dan weer aan een van hierdie geadverteerde luisteraars koppel. Die geadverteerde luisteraars moet gasheername of IP-adresse bevat wat toeganklik is vir die Kafka-kliënt, anders sal die kliënt versuim om te koppel.
As SSL-enkripsie gebruik word, wat 'n SSL-sertifikaat insluit wat aan 'n spesifieke gasheernaam gekoppel is, is dit selfs belangriker dat die Kafka-kliënt die korrekte adres ontvang om aan te koppel, aangesien die verbinding anders verwerp kan word.
Lees meer oor Kafka-luisteraars hier: www.confluent.io/blog/kafka-listeners-explained

SSL/TLS-enkripsie
Om seker te maak dat slegs vertroude kliënte toegang tot Kafka en die Streaming API mag kry, moet ons die volgende opstel:

  • Stawing: Kliënte moet gebruikersnaam en wagwoord verskaf deur 'n SSL/TLS veilige verbinding tussen die kliënt en Kafka.
  • Magtiging: Geverifieerde kliënte kan take verrig wat deur ACL'e gereguleer word.

Hier is 'n verbyview:

Juniper-NETWERKE-Streaming-API-sagteware- (2)

*) Gebruikersnaam/wagwoord-verifikasie uitgevoer op 'n SSL-geënkripteerde kanaal

Om ten volle te verstaan ​​hoe die SSL/TLS-kodering vir Kafka werk, verwys asseblief na die amptelike dokumentasie: docs.confluent.io/platform/current/kafka/encryption.html

SSL/TLS-sertifikaat verbyview

LET WEL: In hierdie onderafdeling sal ons die volgende terminologie gebruik:

Sertifikaat: 'n SSL-sertifikaat onderteken deur 'n sertifikaatowerheid (CA). Elke Kafka-makelaar het een.
Sleutelwinkel: Die sleutelstoor file wat die sertifikaat stoor. Die sleutelstoor file bevat die private sleutel van die sertifikaat; daarom moet dit veilig bewaar word.
Truststore: A file wat die vertroude CA-sertifikate bevat.

Om die verifikasie op te stel tussen 'n eksterne kliënt en Kafka wat in Beheersentrum loop, moet beide kante 'n sleutelstoor hê wat gedefinieer word met 'n verwante sertifikaat wat deur 'n sertifikaatowerheid (CA) onderteken is tesame met die CA-wortelsertifikaat.
Hierbenewens moet die kliënt ook 'n trustwinkel hê met die CA-wortelsertifikaat.
Die CA-wortelsertifikaat is algemeen vir die Kafka-makelaar en Kafka-kliënt.

Die skep van die vereiste sertifikate
Dit word in die “Bylaag” op bladsy 17 behandel.

Kafka Broker SSL/TLS-konfigurasie in beheersentrum

LET WEL: Hierdie instruksies moet op die Beheersentrumbediener uitgevoer word.

LET WEL: Voordat jy voortgaan, moet jy die sleutelstoor skep wat die SSL-sertifikaat bevat deur die instruksies in die “Bylaag” op bladsy 17 te volg. Die paaie wat hieronder genoem word, kom van hierdie instruksies af.
Die SSL-sleutelstoor is 'n file gestoor op skyf met die file uitbreiding .jks.

Sodra jy die vereiste sertifikate wat vir beide die Kafka-makelaar en die Kafka-kliënt geskep is beskikbaar het, kan jy voortgaan deur die Kafka-makelaar wat in Beheersentrum loop op te stel. Jy moet die volgende weet:

  • : Die publieke gasheernaam van Beheersentrum; dit moet oplosbaar en toeganklik wees vir Kafka-kliënte.
  • : Die sleutelstoor wagwoord verskaf wanneer die SSL-sertifikaat geskep word.
  • en : Dit is die wagwoorde wat jy vir die admin- en kliëntgebruiker onderskeidelik wil stel. Let daarop dat jy meer gebruikers kan byvoeg, soos aangedui in die bvample.

Wysig of voeg (met sudo-toegang) die eienskappe hieronder in /etc/kafka/server.properties by, en voeg die bogenoemde veranderlikes in soos getoon:

WAARSKUWING: Moenie PLAINTEXT://localhost:9092 verwyder nie; dit sal beheersentrum-funksionaliteit verbreek aangesien interne dienste nie sal kan kommunikeer nie.

  • # Die adresse waarna die Kafka-makelaar luister.
  • luisteraars=PLAINTEXT://localhost:9092,SASL_SSL://0.0.0.0:9093
  • # Dit is die gashere wat geadverteer word na enige kliënt wat verbind.
  • advertised.listeners=PLAINTEXT://localhost:9092,SASL_SSL:// :9093 …
  • ####### GEPASTE KONFIG
  • # SSL KONFIGURASIE
  • ssl.endpoint.identification.algorithm=
    ssl.keystore.location=/var/ssl/private/kafka.server.keystore.jks
  • ssl.keystore.password=
  • ssl.key.password=
  • ssl.client.auth=geen
  • ssl.protocol=TLSv1.2
  • # SASL-konfigurasie
  • sasl.enabled.mechanisms=PLAIN
  • gebruikersnaam = "admin" \
  • wagwoord = " ” \
  • user_admin =" ” \
  • user_client =" ”;
  • # LET WEL meer gebruikers kan bygevoeg word met user_ =
  • # Magtiging, skakel ACL's aan
  • authorizer.class.name=kafka.security.authorizer.AclAuthorizer super.users=Gebruiker:admin

Die opstel van toegangsbeheerlyste (ACL's)

Skakel ACL's aan op localhost

WAARSKUWING: Ons moet eers ACL's vir localhost opstel, sodat beheersentrum self steeds toegang tot Kafka kan kry. As dit nie gedoen word nie, sal dinge breek.

  • –authoriser 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 \
  • –authoriser kafka.security.authorizer.AclAuthorizer \
  • –authorizer-properties zookeeper.connect=localhost:2181 \
  • –add –allow-principal User:ANONYMOUS –allow-host 127.0.0.1 –onderwerp '*'
  • /usr/lib/kafka/bin/kafka-acls.sh \
  • –authoriser kafka.security.authorizer.AclAuthorizer \
  • –authorizer-properties zookeeper.connect=localhost:2181 \
  • –add –allow-principal User:ANONYMOUS –allow-host 127.0.0.1 –groep '*'

Ons moet dan ACL's aktiveer vir eksterne leesalleen-toegang, sodat eksterne gebruikers toegelaat word om die paa.public.*-onderwerpe te lees.

### ACLs-inskrywings vir anonieme gebruikers /usr/lib/kafka/bin/kafka-acls.sh \

LET WEL: Vir meer fynkorrelige beheer, verwys asseblief na die amptelike Kafka-dokumentasie.

  • –authoriser kafka.security.authorizer.AclAuthorizer \
  • –authorizer-properties zookeeper.connect=localhost:2181 \
  • –add –allow-principal Gebruiker:* –operation read –operation describe \ –groep 'NCC'
  • /usr/lib/kafka/bin/kafka-acls.sh \
  • –authoriser kafka.security.authorizer.AclAuthorizer \
  • –authorizer-properties zookeeper.connect=localhost:2181 \
  • –add –toelaat-hoof Gebruiker:* –operation read –operation describe \ –topic paa.public. –hulpbron-patroon-tipe voorvoegsel

Sodra u hiermee klaar is, moet u die dienste herbegin:

### ACLs-inskrywings vir eksterne gebruikers /usr/lib/kafka/bin/kafka-acls.sh \
  • sudo ncc dienste herbegin

Om te verifieer dat 'n kliënt 'n veilige verbinding kan vestig, voer die volgende opdrag op 'n eksterne uit
kliëntrekenaar (nie op die Beheersentrumbediener nie). Hieronder is PUBLIC_HOSTNAME die beheersentrum-gasheernaam:

  • openssl s_client -debug -connect ${PUBLIC_HOSTNAME}:9093 -tls1_2 | grep "Veilige heronderhandeling IS ondersteun"

In die opdraguitvoer moet u die bedienersertifikaat sowel as die volgende sien:

  • Veilige heronderhandeling IS ondersteun

Gaan asseblief die volgende logboek na om te verseker dat interne dienste toegang tot die Kafka-bediener verleen isfiles:

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

Bekragtiging van eksterne kliëntkonnektiwiteit

kafkaat

LET WEL: Hierdie instruksies moet op 'n kliëntrekenaar uitgevoer word (nie op die Beheersentrumbediener nie).
LET WEL: Om metrieke inligting te vertoon, maak seker dat ten minste een monitor in Beheersentrum loop.

Om konnektiwiteit as 'n eksterne kliënt te verifieer en te valideer, is dit moontlik om die kafkacat-hulpmiddel te gebruik wat in die afdeling "Verifieer dat die stroom-API in beheersentrum werk" op bladsy 4 geïnstalleer is.
Voer die volgende stappe uit:

LET WEL: Hieronder is CLIENT_USER die gebruiker wat voorheen in die file /etc/kafka/server.properties in Beheersentrum: naamlik gebruiker_kliënt en die wagwoord wat daar gestel is.
Die CA-wortelsertifikaat wat gebruik word om die SSL-sertifikaat aan die bedienerkant te onderteken, moet op die kliënt teenwoordig wees.

Skep 'n file client.properties met die volgende inhoud:

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

waar

  • {PATH_TO_CA_CERT} is die ligging van die CA-wortelsertifikaat wat deur die Kafka-makelaar gebruik word
  • {CLIENT_USER} en {CLIENT_PASSWORD} is die gebruikerbewyse vir die kliënt.

Voer die volgende opdrag uit om die boodskap te sien wat deur kafkacat verbruik word:

  • uitvoer KAFKA_FQDN=
  • uitvoer METRICS_TOPIC=paa.publieke.rekeninge. .metrieke
  • kafkacat -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e

waar {METRICS_TOPIC} die naam is van die Kafka-onderwerp met voorvoegsel "paa.public".

LET WEL: Ouer weergawes van kafkacat bied nie die -F-opsie vir die lees van die kliëntinstellings vanaf a file. As jy so 'n weergawe gebruik, moet jy dieselfde instellings vanaf die opdragreël verskaf soos hieronder getoon.

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

Om die konneksie te ontfout, kan jy die -d opsie gebruik:

Ontfout verbruikerskommunikasie
kafkacat -d verbruiker -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e
# Ontfout makelaarkommunikasie
kafkacat -d makelaar -b ${KAFKA_FQDN}:9093 -F client.properties -t ${METRICS_TOPIC} -C -e

Maak seker dat u na die dokumentasie verwys vir die Kafka-kliëntbiblioteek wat gebruik word, aangesien die eienskappe kan verskil van dié in client.properties.

Boodskapformaat
Die boodskappe wat vir die maatstawwe en metadata-onderwerpe gebruik word, word in die Protocol buffers (protobuf) formaat gerangskik (sien developers.google.com/protocol-buffers). Die skemas vir hierdie boodskappe voldoen aan die volgende formaat:

Metrieke Protobuf Skema

  • sintaksis = "proto3";
  • invoer "google/protobuf/timestamp.proto";
  • pakkie paa.streamingapi;
  • opsie go_package = ".;paa_streamingapi";
  • boodskap Metrics {
  • google.protobuf.Timestamp tyeamp = 1;
  • kaart waardes = 2;
  • int32 stroom_id = 3;
  • }
  • /**
  • * 'n Metrieke waarde kan óf 'n heelgetal óf 'n dryfkrag wees.
  • */
  • boodskap MetricValue {
  • een van tipe {
  • int64 int_val = 1;
  • float float_val = 2;
  • }
  • }

Metadata Protobuf Skema

  • sintaksis = "proto3";
  • pakkie paa.streamingapi;
  • opsie go_package = ".;paa_streamingapi";
  • boodskap Metadata {
  • int32 stroom_id = 1;
  • string stroomnaam = 2;
  • kaart tags = 13;
  • }

Kliënt Bvamples

LET WEL: Hierdie opdragte is bedoel om op 'n eksterne kliënt te loop, bvample jou skootrekenaar of soortgelyke, en nie in beheersentrum nie.
LET WEL: Om metrieke inligting te vertoon, maak seker dat ten minste een monitor in Beheersentrum loop.

Die beheersentrum-tarball bevat die argief paa-streaming-api-client-examples.tar.gz (kliënt-bvamples), wat 'n example Python-skrip wat wys hoe om die Streaming API te gebruik.

Installeer en konfigureer kliënt Bvamples
Jy vind kliënt-eksamples in die Paragon Active Assurance Control Center-lêergids:

  • uitvoer CC_VERSION=4.1.0
  • cd ./paa-control-center_${CC_VERSION}
  • ls paa-streaming-api-kliënt-eksamples*

Om kliënt-examples op u eksterne kliëntrekenaar, gaan soos volg voort:

  • # Skep gids om die inhoud van die kliënt bvamples tarball
  • mkdir paa-streaming-api-kliënt-eksamples
  • # Onttrek die inhoud van die kliënt bvamples tarball
  • tar xzf paa-streaming-api-kliënt-eksamples.tar.gz -C paa-streaming-api-kliënt-eksamples
  • # Gaan na die nuutgeskepte gids
  • cd paa-streaming-api-kliënt-eksamples

kliënt-eksamples vereis dat Docker loop. Aflaai- en installasie-instruksies vir Docker kan gevind word by https://docs.docker.com/engine/install.

Gebruik kliënt Examples
Die kliënt-eksamples gereedskap kan in óf basiese óf gevorderde modus hardloop om examplesings van verskillende kompleksiteit. In beide gevalle is dit ook moontlik om die ex uit te voeramples met 'n konfigurasie file wat bykomende eienskappe bevat vir verdere aanpassing van die kliëntkant.

Basiese modus
In basiese modus word die metrieke en hul metadata afsonderlik gestroom. Vir hierdie doel luister die kliënt na elke Kafka-onderwerp wat beskikbaar is vir eksterne toegang en druk eenvoudig die ontvangde boodskappe na die konsole.
Om die uitvoering van die basiese examples, hardloop:

  • build.sh run-basic –kafka-makelaars localhost:9092 –rekening ACCOUNT_SHORTNAME

waar ACCOUNT_SHORTNAME die kort naam is van die rekening waaruit jy die maatstawwe wil kry.
Om die teregstelling van die example, druk Ctrl + C. (Daar kan 'n effense vertraging wees voordat die uitvoering stop omdat die kliënt wag vir 'n uittelgebeurtenis.)

Gevorderde modus

LET WEL: Metrieke word slegs vertoon vir HTTP-monitors wat in beheersentrum loop.

Uitvoering in gevorderde modus toon die korrelasie tussen metrieke en metadataboodskappe. Dit is
moontlik danksy die teenwoordigheid in elke maatstafboodskap van 'n stroom-ID-veld wat na die ooreenstemmende metadataboodskap verwys.
Om die gevorderde examples, hardloop:

  • build.sh run-advanced –kafka-makelaars localhost:9092 –rekening ACCOUNT_SHORTNAME

waar ACCOUNT_SHORTNAME die kort naam is van die rekening waaruit jy die maatstawwe wil kry.
Om die teregstelling van die example, druk Ctrl + C. (Daar kan 'n effense vertraging wees voordat die uitvoering stop omdat die kliënt wag vir 'n uittelgebeurtenis.)

Bykomende instellings
Dit is moontlik om die examples met bykomende konfigurasie van die kliënt met behulp van die –config-file opsie gevolg deur 'n file naam wat eienskappe bevat in die vorm sleutel=waarde.

  • build.sh run-gevorderde \
  • –kafka-makelaars localhost:9092 \
  • –rekening ACCOUNT_SHORTNAME \
  • -konfigurasie-file client_config.properties

LET WEL: Almal files waarna verwys word in die opdrag hierbo moet in die huidige gids geleë wees en verwys word deur slegs relatiewe paaie te gebruik. Dit geld beide vir die –config-file argument en aan alle inskrywings in die konfigurasie file wat beskryf file liggings.

Valideer eksterne kliënt-verifikasie
Om kliënt-verifikasie van buite die beheersentrum te bekragtig met behulp van kliënt-examples, voer die volgende stappe uit:

Van die Paragon Active Assurance Control Center-lêergids, skakel oor na die paa-streaming-api-client-examples gids:

cd paa-streaming-api-kliënt-eksamples

  • Kopieer die CA-wortelsertifikaat ca-cert na die huidige gids.
  • Skep 'n client.properties file met die volgende inhoud:

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

waar {CLIENT_USER} en {CLIENT_PASSWORD} die gebruikerbewyse vir die kliënt is.

Begin basiese examples:

  • uitvoer KAFKA_FQDN=
  • build.sh run-basic –kafka-makelaars ${KAFKA_FQDN}:9093 \
  • –rekening ACCOUNT_SHORTNAME
  • -konfigurasie-file kliënt.eiendomme

waar ACCOUNT_SHORTNAME die kort naam is van die rekening waaruit jy die maatstawwe wil kry.

Begin gevorderde examples:

  • uitvoer KAFKA_FQDN=
  • build.sh run-gevorderde –kafka-makelaars ${KAFKA_FQDN}:9093 \
  • –rekening ACCOUNT_SHORTNAME
  • -konfigurasie-file kliënt.eiendomme

Bylaag

In hierdie bylaag beskryf ons hoe om te skep:

  • 'n sleutelstoor file vir die stoor van die Kafka-makelaar SSL-sertifikaat
  • 'n trustwinkel file vir die berging van die Sertifikaat-owerheid (CA)-wortelsertifikaat wat gebruik is om die Kafka-makelaarsertifikaat te onderteken.

Skep 'n Kafka-makelaarsertifikaat
Skep 'n sertifikaat deur 'n regte sertifikaatowerheid te gebruik (aanbeveel)
Dit word aanbeveel dat jy 'n regte SSL-sertifikaat van 'n betroubare CA kry.
Sodra jy op 'n CA besluit het, kopieer hul CA wortelsertifikaat ca-cert file na jou eie pad soos hieronder getoon:

  • uitvoer CA_PATH=~/my-ca
  • mkdir ${CA_PATH}
  • cp-sertifikaat ${CA_PATH}

Skep jou eie sertifikaatowerheid

LET WEL: Normaalweg moet jy jou sertifikaat laat onderteken deur 'n regte Sertifikaat-owerheid; sien die voorafgaande onderafdeling. Wat volg is net 'n eksample.

Hier skep ons ons eie Certificate Authority (CA) wortelsertifikaat file geldig vir 999 dae (nie aanbeveel in produksie):

  • # Skep 'n gids om die CA te stoor
  • uitvoer CA_PATH=~/my-ca
  • mkdir ${CA_PATH}
  • # Genereer die CA-sertifikaat
  • openssl req -new -x509 -keyout ${CA_PATH}/ca-key -out ${CA_PATH}/ca-cert -days 999

Die skep van die Client Truststore
Nou kan jy 'n trustwinkel skep file wat die ca-cert bevat wat hierbo gegenereer is. Hierdie file sal benodig word deur die Kafka-kliënt wat toegang tot die Streaming API sal kry:

  • keytool -sleutelstoor kafka.client.truststore.jks \
    • alias CARoot \
    • invoersertifikaat -file ${CA_PATH}/ca-sert

Noudat die CA-sertifikaat in die truststoor is, sal die kliënt enige sertifikaat wat daarmee onderteken is, vertrou.
Jy moet die kopieer file kafka.client.truststore.jks na 'n bekende plek op jou kliëntrekenaar en wys daarna in die instellings.

Die skep van die sleutelwinkel vir die Kafka-makelaar
Om die Kafka-makelaar SSL-sertifikaat en dan die sleutelstoor kafka.server.keystore.jks te genereer, gaan soos volg voort:

Genereer die SSL-sertifikaat
Hieronder is 999 die aantal dae van geldigheid van die sleutelstoor, en FQDN is die volledig gekwalifiseerde domeinnaam van die kliënt (openbare gasheernaam van die nodus).

LET WEL: Dit is belangrik dat die FQDN ooreenstem met die presiese gasheernaam wat die Kafka-kliënt sal gebruik om aan die beheersentrum te koppel.

  • sudo mkdir -p /var/ssl/privaat
  • sudo chown -R $USER: /var/ssl/privaat
  • cd /var/ssl/privaat
  • uitvoer FQDN= keytool -keystore kafka.server.keystore.jks \
  • – alias bediener \
  • – geldigheid 999 \
  • – genkey -keyalg RSA -ext SAN=dns:${FQDN}

Skep 'n sertifikaatondertekeningversoek en stoor dit in die file genaamd sert-bediener-versoek:

  • keytool -keystore kafka.server.keystore.jks \
    • – alias bediener \
    • – sertifikaat \
    • – file sert-bediener-versoek

Jy moet nou die file cert-server-versoek aan jou sertifikaatowerheid (CA) as jy 'n regte een gebruik. Hulle sal dan die getekende sertifikaat terugstuur. Ons sal hierna verwys as sertifikaat-bediener-onderteken hieronder.

Ondertekening van die SSL-sertifikaat deur 'n selfgeskepte CA-sertifikaat te gebruik

LET WEL: Weereens, die gebruik van jou eie CA word nie aanbeveel in 'n produksiestelsel nie.

Teken die sertifikaat deur die CA deur middel van die file cert-server-request, wat die ondertekende sertifikaat cert-server-signed produseer. Sien onder; ca-wagwoord is die wagwoord wat gestel is wanneer die CA-sertifikaat geskep word.

  • cd /var/ssl/private openssl x509 -req \
    • – CA ${CA_PATH}/ca-cert \
    • – CAkey ${CA_PATH}/ca-sleutel \
    • – in sert-bediener-versoek \
    • – uit sertifikaat-bediener-onderteken \
    • – dae 999 -CAcreateserial \
    • – passin pass:{ca-wagwoord}

Voer die ondertekende sertifikaat in die sleutelstoor in

Voer die ca-cert-wortelsertifikaat in die sleutelstoor in:

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

Voer die getekende sertifikaat in waarna verwys word as cert-server-signed:

  • keytool -keystore kafka.server.keystore.jks \
    • – alias bediener \
    • – invoer \
    • – file sert-bediener-onderteken

Die file kafka.server.keystore.jks moet na 'n bekende plek op die beheersentrumbediener gekopieer word, en daarna verwys word in /etc/kafka/server.properties.

Gebruik die Streaming API

IN HIERDIE AFDELING

  • Algemeen | 20
  • Kafka Onderwerpname | 21
  • Examples van die gebruik van die Streaming API | 21

Algemeen
Die streaming API haal beide toets- en monitordata. Dit is nie moontlik om een ​​van hierdie kategorieë uit te sonder nie.
Die stroom-API haal nie data van skripgebaseerde toetse (dié wat deur 'n reghoek in plaas van 'n figuursaagstuk in die beheersentrum GUI) voorgestel word, soos Ethernet-diensaktiveringstoetse en deursigtigheidstoetse.

Kafka Onderwerp Name
Die Kafka-onderwerpname vir die stroom-API is soos volg, waar %s die kort naam van die beheersentrumrekening is (aangedui wanneer die rekening geskep word):

  • konst (
  • uitvoerdernaam = "kafka"
  • metadataTopicTpl = “paa.public.accounts.%s.metadata” metricsTopicTpl = “paa.public.accounts.%s.metrics” )

Examples van die gebruik van die Streaming API
Die eksamples wat volg word gevind in die tarball paa-streaming-api-client-examples.tar.gz vervat in die beheersentrum-tarball.
Eerstens is daar 'n basiese example demonstreer hoe die metrieke en hul metadata afsonderlik gestroom word en druk eenvoudig die ontvangde boodskappe na die konsole. Jy kan dit soos volg laat loop:

  • sudo ./build.sh run-basic –kafka-makelaars localhost:9092 –rekening ACCOUNT_SHORTNAME

Daar is ook 'n meer gevorderde eksample waar metrieke en metadataboodskappe gekorreleer word. Gebruik hierdie opdrag om dit uit te voer:

  • sudo ./build.sh run-advanced –kafka-makelaars localhost:9092 –rekening ACCOUNT_SHORTNAME

U moet sudo gebruik om Docker-opdragte soos dié hierbo uit te voer. Opsioneel kan u die Linux post-installasie stappe volg om Docker-opdragte sonder sudo te kan uitvoer. Vir besonderhede, gaan na docs.docker.com/engine/install/linux-postinstall.

Juniper Networks, die Juniper Networks-logo, Juniper en Junos is geregistreerde handelsmerke van Juniper Networks, Inc. in die Verenigde State en ander lande. Alle ander handelsmerke, diensmerke, geregistreerde handelsmerke of geregistreerde diensmerke is die eiendom van hul onderskeie eienaars. Juniper Networks aanvaar geen verantwoordelikheid vir enige onakkuraathede in hierdie dokument nie. Juniper Networks behou die reg voor om hierdie publikasie sonder kennisgewing te verander, te wysig, oor te dra of andersins te hersien. Kopiereg © 2023 Juniper Networks, Inc. Alle regte voorbehou.

Dokumente / Hulpbronne

Juniper NETWERKE Streaming API sagteware [pdf] Gebruikersgids
Stroom API sagteware, API sagteware, sagteware

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *