Grundlag i Apache Kafka og strømbehandling · Lektion

Overvågning af Kafka med JMX og værktøjer

Udforsk, hvordan du overvåger Kafkas broker-sundhed og ydeevne ved hjælp af JMX-metrikker og integrerede overvågningsværktøjer.

Lektion 2 af 411 trin

Overvågning af Kafka med JMX og værktøjer er en gratis Grundlag i Apache Kafka og strømbehandling-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlag i Apache Kafka og strømbehandling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlag i Apache Kafka og strømbehandling-kurset indeholder 4 lektioner i alt.

Vigtigheden af Kafka-overvågning

At køre en Kafka-klynge uden overvågning er som at køre bil med bind for øjnene! Overvågning er afgørende for at forstå Kafka-miljøets tilstand og ydeevne.

  • Forebyg driftsafbrydelser: Opdag problemer som lidt ledig diskplads eller højt CPU-forbrug, før de forårsager fejl.
  • Optimér ydeevnen: Identificér flaskehalse hos producenter, forbrugere eller brokere.
  • Sikr dataholdbarhed: Kontrollér datareplikering, og forebyg datatab.
  • Følg forbruget: Forstå, hvor meget data der strømmer igennem, og hvem der bruger dem.

Hvad er JMX?

Kafka er en Java-applikation, og ligesom mange andre Java-applikationer viser den driftsdata ved hjælp af JMX (Java Management Extensions). Se JMX som en standardmetode, hvor Java-applikationer kan stille interne målinger og kontroller til rådighed.

  • MBeans: JMX bruger administrerede beans (MBeans) til at repræsentere ressourcer, tjenester eller applikationer. Hver MBean viser attributter (data) og operationer (handlinger).
  • JMX-agent: En JMX-agent kører inde i JVM'en og administrerer MBeans, så eksterne overvågningsværktøjer kan få adgang til dem.

Sådan viser Kafka JMX-målinger

Kafka-brokere viser automatisk en lang række målinger via JMX. For at give eksterne værktøjer mulighed for at oprette forbindelse kan det være nødvendigt at konfigurere en JMX-port, især i ikke-lokale opsætninger.

I en lokal opsætning kan værktøjer som JConsole ofte oprette direkte forbindelse til en kørende Kafka-proces. Ved fjernadgang angiver du typisk JMX-miljøvariabler som JMX_PORT i Kafkas opstartsscript.

Eksempel (findes ofte i kafka-server-start.sh):

export JMX_PORT="9999"

Det gør JMX-målinger tilgængelige på port 9999.

Overvågning af brokeres tilstand

Brokerens tilstand er grundlæggende. JMX leverer målinger, som du kan bruge til at kontrollere, om dine Kafka-brokere kører problemfrit.

  • CPU-forbrug: Højt CPU-forbrug kan være tegn på overbelastede brokere eller ineffektive operationer.
  • Hukommelsesforbrug: Følg JVM-heap- og non-heap-hukommelsen for at forebygge fejl på grund af utilstrækkelig hukommelse.
  • Netværks-I/O: Overvåg indgående og udgående bytes for at forstå datagennemløbet.
  • Diskforbrug: Afgørende for logmapper. At løbe tør for diskplads er en almindelig årsag til driftsafbrydelser.

Se efter MBeans under kafka.server:type=BrokerTopicMetrics for rater for netværks-I/O.

Følg topics og partitioner

Ud over brokerens tilstand fortæller specifikke målinger os om datafordelingen og replikationsstatussen i topics.

  • Underreplikerede partitioner (URP): En kritisk måling! Hvis værdien ikke er nul, betyder det, at nogle partitioner ikke har nok replikater, hvilket medfører risiko for datatab, hvis en broker svigter. MBean: kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions.
  • Antal aktive controllere: Bør altid være 1. Mere end én angiver en split-brain-situation.
  • Rate for ledervalg: Høje rater tyder på ustabile brokere.

Overvågning af datagennemløbets ydeevne

Det er afgørende at forstå producenters og forbrugeres adfærd for at optimere datapipelines fra ende til anden.

  • Producentmålinger: Følg anmodningsraten, anmodningslatenstiden og fejlraten for at identificere langsomme producenter eller producenter med fejl.
  • Forbrugerforsinkelse: Den vigtigste forbrugermåling! Den fortæller dig, hvor langt en forbrugergruppe er bagefter den seneste meddelelse i et topic. En stor forsinkelse betyder, at forbrugerne ikke kan følge med. MBean for maksimal forsinkelse: kafka.consumer:type=ConsumerGroupMetrics,group=mygroup,topic=mytopic,partition=0,name=records-lag-max.

Grundlæggende JMX-værktøjer: JConsole og JVisualVM

Til hurtige lokale undersøgelser indeholder Java indbyggede værktøjer til at oprette forbindelse til JMX-endepunkter.

  • JConsole: Et grafisk overvågningsværktøj, der giver dig mulighed for at oprette forbindelse til en kørende JVM, se MBeans og attributter og endda udføre operationer. Det er velegnet til realtidskontroller efter behov.
  • JVisualVM: Tilbyder lignende JMX-funktioner samt yderligere funktioner som profilering af CPU, hukommelse og tråde.

Disse værktøjer følger ofte med dit Java Development Kit (JDK).

Avancerede værktøjer: Prometheus og Grafana

Til centraliseret overvågning i produktionskvalitet er kombinationen af Prometheus og Grafana meget populær.

  • Prometheus: Et effektivt open source-overvågningssystem, der indsamler målinger fra konfigurerede mål (f.eks. Kafka-brokere) med angivne intervaller.
  • JMX Exporter: En lille agent, der kører sammen med Kafka, oversætter JMX-målinger til et format, som Prometheus kan forstå, og viser dem via et HTTP-endepunkt.
  • Grafana: Et visualiseringsværktøj, der forespørger Prometheus og viser målinger som dashboards, så du kan oprette tilpassede visninger og alarmer.

Proaktiv alarmering for Kafka

Overvågning er først virkelig effektiv, når den kombineres med alarmering. Du skal have besked, når kritiske grænseværdier overskrides, eller når der registreres unormal adfærd.

Vigtige målinger, der bør udløse alarmer:

  • Underreplikerede partitioner: Udløs straks en alarm, hvis værdien er > 0.
  • Forbrugerforsinkelse: Udløs en alarm, hvis forsinkelsen overskrider en bestemt grænse (f.eks. 5 minutter eller 10.000 meddelelser).
  • Brokerens diskforbrug: Udløs en alarm, hvis diskpladsen er ved at slippe op (f.eks. > 80 % i brug).
  • Højt CPU-/hukommelsesforbrug: Udløs en alarm, hvis ressourceforbruget konstant er højt.
  • Ingen indgående/udgående bytes: Udløs en alarm, hvis trafikken pludselig stopper på kritiske topics.

Kontrol af overvågningsbegreber

Lad os teste din forståelse af Kafka-overvågning.

Opsummering: Hold Kafka sund

Du har lært det grundlæggende i overvågning af din Kafka-klynge! Det er en vigtig praksis for at vedligeholde et robust og effektivt dataforløb.

  • Kafka eksponerer målinger via JMX.
  • Vigtige målinger omfatter brokerens tilstand, replikering af emner og forbrugerforsinkelse.
  • Værktøjer som JConsole/JVisualVM giver mulighed for grundlæggende JMX-inspektion.
  • Prometheus og Grafana er populære valg til avanceret, centraliseret overvågning.
  • Opsæt altid alarmer for kritiske målinger, så du hurtigt kan reagere på problemer.

Proaktiv overvågning sikrer, at din Kafka-klynge forbliver pålidelig og effektiv.

Gratis at komme i gang

Lær Grundlag i Apache Kafka og strømbehandling med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Overvågning af Kafka med JMX og værktøjer” gratis?

Ja — alle 3 lektioner i læringssporet Grundlag i Apache Kafka og strømbehandling, inklusive “Overvågning af Kafka med JMX og værktøjer”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlag i Apache Kafka og strømbehandling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Overvågning af Kafka med JMX og værktøjer”?

Udforsk, hvordan du overvåger Kafkas broker-sundhed og ydeevne ved hjælp af JMX-metrikker og integrerede overvågningsværktøjer. Du øver dig i Grundlag i Apache Kafka og strømbehandling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlag i Apache Kafka og strømbehandling?

Der kræves ingen tidligere erfaring. Grundlag i Apache Kafka og strømbehandling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Overvågning af Kafka med JMX og værktøjer”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlag i Apache Kafka og strømbehandling-lektion?

Ja. Alle Grundlag i Apache Kafka og strømbehandling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Kommandolinjeværktøjer til Kafka
  2. Overvågning af Kafka med JMX og værktøjer
  3. Sikkerhed: godkendelse og autorisation
  4. Sporing og alarmering af consumer lag
← Tilbage til Grundlag i Apache Kafka og strømbehandling