Megosztás a következőn keresztül:


Csatlakozási problémák elhárítása – Azure Event Hubs

Több oka is lehet annak, hogy az ügyfélalkalmazások nem tudnak egy eseményközponthoz kapcsolódni. A csatlakozási problémák állandóak vagy átmenetiek lehetnek.

Ha a probléma folyamatosan (állandó) jelentkezik, tekintse meg a jelen cikk állandó kapcsolati problémák hibaelhárítása szakaszában említett beállításokat és egyéb beállításokat.

  • Kapcsolati sztring
  • A szervezet tűzfalbeállításai
  • IP-tűzfalbeállítások
  • Hálózati biztonsági beállítások (szolgáltatásvégpontok, privát végpontok stb.) és egyebek

Átmeneti problémák esetén próbálja ki az alábbi lehetőségeket, amelyek segíthetnek a problémák elhárításában. További információ: Átmeneti csatlakozási problémák elhárítása.

  • Frissítés az SDK legújabb verziójára
  • Parancsok futtatása az eldobott csomagok ellenőrzéséhez
  • Kérje le a hálózati nyomkövetést.

Állandó csatlakozási problémák elhárítása

Ha az alkalmazás egyáltalán nem tud csatlakozni az eseményközponthoz, kövesse az ebben a szakaszban leírt lépéseket a probléma elhárításához.

Ellenőrizze, hogy van-e szolgáltatáskimaradás

Ellenőrizze az Azure Event Hubs szolgáltatáskimaradását az Azure szolgáltatásállapot-helyén.

Ellenőrizze a kapcsolati sztring

Ellenőrizze, hogy a használt kapcsolati sztring helyes-e. A kapcsolati sztring az Azure Portal, a parancssori felület vagy a PowerShell használatával történő lekéréséhez tekintse meg a Kapcsolati sztring lekérése című témakört.

Kafka-ügyfelek esetén ellenőrizze, hogy a producer.config vagy a consumer.config fájlok megfelelően vannak-e konfigurálva. További információ: Üzenetek küldése és fogadása a Kafkával az Event Hubsban.

Milyen protokollokkal küldhetek és fogadhatok eseményeket?

A gyártók vagy a feladók az Advanced Messaging Queuing Protocol (AMQP), a Kafka vagy a HTTPS protokoll használatával küldhetnek eseményeket egy eseményközpontba.

A fogyasztók vagy fogadók AMQP-t vagy Kafkát használnak az események fogadásához egy eseményközpontból. Az Event Hubs csak a lekéréses modellt támogatja a felhasználók számára az események fogadásához. Még akkor is, ha eseménykezelőkkel kezeli az eseményeket egy eseményközpontból, az eseményfeldolgozó belsőleg a lekéréses modellt használja az események fogadásához az eseményközpontból.

AMQP

Az AMQP 1.0 protokoll használatával eseményeket küldhet és fogadhat az Azure Event Hubsból. Az AMQP megbízható, teljesíthető és biztonságos kommunikációt biztosít az események küldéséhez és fogadásához. Nagy teljesítményű és valós idejű streameléshez használhatja, és a legtöbb Azure Event Hubs SDK támogatja.

HTTPS/REST API

Eseményeket csak HTTP POST-kérésekkel küldhet az Event Hubsnak. Az Event Hubs nem támogatja az események fogadását HTTPS-en keresztül. Olyan egyszerűsített ügyfelekhez használható, ahol a közvetlen TCP-kapcsolat nem valósítható meg.

Apache Kafka

Az Azure Event Hubs beépített Kafka-végpontja támogatja a Kafka-gyártókat és -fogyasztókat. A Kafka protokollt (1.0-s vagy újabb verzió) használó alkalmazások kódmódosítás nélkül küldhetnek és fogadhatnak eseményeket az Event Hubsból.

Az Azure SDK-k elvonják a mögöttes kommunikációs protokollokat, és egyszerűbb módot biztosítanak események küldésére és fogadására az Event Hubsból olyan nyelvek használatával, mint a C#, a Java, a Python, a JavaScript stb.

Milyen portokat kell megnyitnom a tűzfalon?

Az Azure Event Hubsban az alábbi protokollok használatával küldhet és fogadhat eseményeket:

  • Advanced Message Queuing Protocol 1.0 (AMQP)
  • Hypertext Transfer Protocol 1.1 a Transport Layer Security (HTTPS) használatával
  • Apache Kafka

Tekintse meg az alábbi táblázatot azokról a kimenő portokról, amelyekre a protokollok használatához meg kell nyitnia az Azure Event Hubs szolgáltatással való kommunikációhoz.

Protokoll Portok Részletek
AMQP 5671 és 5672 Lásd az AMQP protokoll útmutatót
HTTPS 443 Ez a port a HTTP/REST API-hoz és az AMQP-over-WebSocketekhez használható.
Kafka 9093 Lásd: Event Hubs használata Kafka-alkalmazásokból

A HTTPS-portra akkor is szükség van a kimenő kommunikációhoz, ha az AMQP-t az 5671-es porton keresztül használják, mivel az ügyféloldali SDK-k által végrehajtott számos felügyeleti művelet és a Microsoft Entra-azonosítóból (használat esetén) származó tokenek beszerzése HTTPS-n fut.

A hivatalos Azure SDK-k általában az AMQP protokollt használják események Event Hubsból való küldéséhez és fogadásához. Az AMQP-over-WebSockets protokollbeállítás a HTTP API-hoz hasonlóan a TCP 443 porton fut, de egyébként funkcionálisan megegyezik az egyszerű AMQP-vel. Ez a beállítás nagyobb kezdeti kapcsolati késéssel rendelkezik, mivel extra kézfogást tesz lehetővé az utazások során, és valamivel nagyobb többletterhelést jelent a HTTPS-port megosztásához. Ha ez a mód van kiválasztva, a 443-as TCP-port elegendő a kommunikációhoz. Az alábbi beállítások lehetővé teszik az egyszerű AMQP vagy AMQP WebSockets mód kiválasztását:

Nyelv Lehetőség
.NET EventHubConnectionOptions.TransportType tulajdonság az EventHubsTransportType.AmqpTcp vagy az EventHubsTransportType.AmqpWebSockets használatával
Java com.microsoft.azure.eventhubs.EventProcessorClientBuilder.transporttype és AmqpTransportType.AMQP vagy AmqpTransportType.AMQP_WEB_SOCKETS
Csomópont Az EventHubConsumerClientOptions tulajdonsága van webSocketOptions .
Python EventHubConsumerClient.transport_type TransportType.Amqp vagy TransportType.AmqpOverWebSocket használatával

Milyen IP-címeket kell engedélyeznem?

Amikor az Azure-ral dolgozik, néha engedélyeznie kell bizonyos IP-címtartományokat vagy URL-címeket a vállalati tűzfalon vagy proxyn, hogy hozzáférjen az összes Használt vagy használni kívánt Azure-szolgáltatáshoz. Ellenőrizze, hogy engedélyezett-e a forgalom az Event Hubs által használt IP-címeken. Az Azure Event Hubs által használt IP-címekért lásd : Azure IP-tartományok és szolgáltatáscímkék – Nyilvános felhő.

Ellenőrizze továbbá, hogy a névtér IP-címe engedélyezve van-e. Ha meg szeretné keresni a megfelelő IP-címeket a kapcsolatok engedélyezéséhez, kövesse az alábbi lépéseket:

  1. Futtassa a következő parancsot egy parancssorból:

    nslookup <YourNamespaceName>.servicebus.windows.net
    
  2. Jegyezze fel a visszaadott Non-authoritative answerIP-címet.

Ha egy régebbi fürtben üzemeltetett névteret használ (a Cloud Services - CNAME *.cloudapp.net végződésű) és a névtér zónaredundáns, néhány további lépést kell követnie. Ha a névtér egy újabb fürtön található (a virtuálisgép-méretezési csoport – CNAME *.cloudapp.azure.com végződésű) és zónaredundáns, az alábbi lépéseket kihagyhatja.

  1. Először futtassa az nslookup parancsot a névtéren.

    nslookup <yournamespace>.servicebus.windows.net
    
  2. Jegyezze fel a nem mérvadó válasz szakasz nevét, amely az alábbi formátumok egyikében található:

    <name>-s1.cloudapp.net
    <name>-s2.cloudapp.net
    <name>-s3.cloudapp.net
    
  3. Futtassa az nslookup parancsot mindegyikhez s1, s2 és s3 utótaggal a három rendelkezésre állási zónában futó mindhárom példány IP-címének lekéréséhez,

    Feljegyzés

    A parancs által nslookup visszaadott IP-cím nem statikus IP-cím. Azonban mindaddig állandó marad, amíg az alapul szolgáló üzembe helyezést nem törlik vagy áthelyezik egy másik fürtbe.

Milyen ügyfél IP-címek küldenek eseményeket a névtérbe, vagy fogadnak eseményeket?

Először engedélyezze az IP-szűrést a névtéren.

Ezután engedélyezze a diagnosztikai naplókat az Event Hubs virtuális hálózati kapcsolati eseményeihez a diagnosztikai naplók engedélyezése című témakör utasításait követve. Megjelenik az IP-cím, amelyhez a kapcsolat megtagadva van.

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "IPAddress": "1.2.3.4",
    "Action": "Deny Connection",
    "Reason": "IPAddress doesn't belong to a subnet with Service Endpoint enabled.",
    "Count": "65",
    "ResourceId": "/subscriptions/0000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/microsoft.eventhub/namespaces/namespace-name",
    "Category": "EventHubVNetConnectionEvent"
}

Fontos

A virtuális hálózati naplók csak akkor jönnek létre, ha a névtér adott IP-címekről (IP-szűrési szabályokból) engedélyezi a hozzáférést. Ha nem szeretné korlátozni a névtérhez való hozzáférést ezekkel a funkciókkal, és továbbra is szeretné lekérni a virtuális hálózati naplókat az Event Hubs-névtérhez csatlakozó ügyfelek IP-címeinek nyomon követéséhez, használja a következő megkerülő megoldást: Engedélyezze az IP-szűrést, és adja hozzá a teljes címezhető IPv4-tartományt (128.0.0.0/1 - 0.0.0.0/1) és az IPv6-tartományt ().::/1 - 8000::/1

Feljegyzés

Jelenleg nem lehet meghatározni az egyes üzenetek vagy események forrás IP-címét.

Ellenőrizze, hogy az Event Hubs szolgáltatáscímke engedélyezve van-e a hálózati biztonsági csoportokban

Ha az alkalmazás egy alhálózaton belül fut, és van egy társított hálózati biztonsági csoport, ellenőrizze, hogy engedélyezett-e az internetes kimenő forgalom, vagy engedélyezett-e az Event Hubs szolgáltatáscímkéje (EventHub). Lásd a virtuális hálózati szolgáltatás címkéinek és keresésének EventHubmódját.

Ellenőrizze, hogy az alkalmazásnak egy virtuális hálózat egy adott alhálózatán kell-e futnia

Győződjön meg arról, hogy az alkalmazás olyan virtuális hálózati alhálózaton fut, amely hozzáfér a névtérhez. Ha nem, futtassa az alkalmazást az alhálózaton, amely hozzáfér a névtérhez, vagy adja hozzá annak a gépnek az IP-címét, amelyen az alkalmazás fut az IP-tűzfalon.

Amikor virtuális hálózati szolgáltatásvégpontot hoz létre egy eseményközpont-névtérhez, a névtér csak a szolgáltatásvégponthoz kötött alhálózatról fogad forgalmat. Ez a viselkedés kivételt képez. Adott IP-címeket adhat hozzá az IP-tűzfalhoz az eseményközpont nyilvános végpontjának eléréséhez. További információ: Hálózati szolgáltatásvégpontok.

Ellenőrizze a névtér IP-tűzfalbeállításait

Ellenőrizze, hogy annak a gépnek a nyilvános IP-címe, amelyen az alkalmazás fut, nem blokkolja-e az IP-tűzfal.

Alapértelmezés szerint az Event Hubs-névterek az internetről érhetők el, amennyiben a kérés érvényes hitelesítéssel és engedélyezéssel rendelkezik. Az IP-tűzfallal tovább korlátozhatja azt a CIDR (osztály nélküli tartományközi útválasztás) jelölésében szereplő IPv4- vagy IPv6-címek vagy címtartományok halmazára.

Az IP-tűzfalszabályokat az Event Hubs névtér szintjén alkalmazza a rendszer. Ezért a szabályok minden támogatott protokollt használó ügyfélkapcsolatra vonatkoznak. Az Event Hubs-névtér engedélyezett IP-szabályával nem egyező IP-címekről érkező csatlakozási kísérleteket a rendszer jogosulatlanként elutasítja. A válasz nem említi az IP-szabályt. A rendszer sorrendben alkalmazza az IP-szűrési szabályokat, és az IP-címnek megfelelő első szabály határozza meg az elfogadási vagy elutasítási műveletet.

További információ: IP-tűzfalszabályok konfigurálása egy Azure Event Hubs-névtérhez. Ha ellenőrizni szeretné, hogy IP-szűréssel, virtuális hálózattal vagy tanúsítványlánccal kapcsolatos problémái vannak-e, tekintse meg a hálózattal kapcsolatos problémák hibaelhárítását.

Ellenőrizze, hogy a névtér csak privát végponttal érhető-e el

Ha az Event Hubs-névtér úgy van konfigurálva, hogy csak privát végponton keresztül legyen elérhető, ellenőrizze, hogy az ügyfélalkalmazás hozzáfér-e a névtérhez a privát végponton keresztül.

Az Azure Private Link szolgáltatás lehetővé teszi az Azure Event Hubs elérését a virtuális hálózat egy privát végpontján keresztül. A privát végpont egy hálózati adapter, amely privát és biztonságos módon csatlakoztatja Önt egy Azure Private Link használatával működtetett szolgáltatáshoz. A privát végpont a virtuális hálózat egyik magánhálózati IP-címét használja, így hatékonyan bekapcsolja a szolgáltatást a virtuális hálózatba. A szolgáltatás felé irányuló minden forgalom átirányítható a privát végponton keresztül, így nincs szükség átjárókra, NAT-eszközökre, ExpressRoute- vagy VPN-kapcsolatokra, illetve nyilvános IP-címekre. A virtuális hálózat és a szolgáltatás közötti forgalom a Microsoft gerinchálózatán keresztül halad át, így kiküszöböli a nyilvános internet jelentette kitettséget. Csatlakozhat egy Azure-erőforrás egy példányához, így a hozzáférés-vezérlésben a legmagasabb szintű részletességet érheti el.

További információ: Privát végpontok konfigurálása. Tekintse meg a privát végpont kapcsolatának ellenőrzésére szolgáló szakaszt a privát végpont használatának ellenőrzéséhez.

Az Event Hubs hálózattal kapcsolatos problémáinak elhárításához kövesse az alábbi lépéseket:

Keresse meg vagy nyissa meg a wget elemethttps://<yournamespacename>.servicebus.windows.net/. Segít ellenőrizni, hogy IP-szűréssel, virtuális hálózattal vagy tanúsítványláncgal kapcsolatos problémák vannak-e (leggyakrabban Java SDK használata esetén).

Példa a sikeres üzenetre:

<feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Publicly Listed Services</title><subtitle type="text">This is the list of publicly-listed services currently available.</subtitle><id>uuid:27fcd1e2-3a99-44b1-8f1e-3e92b52f0171;id=30</id><updated>2019-12-27T13:11:47Z</updated><generator>Service Bus 1.1</generator></feed>

Példa a hiba hibaüzenetére:

<Error>
    <Code>400</Code>
    <Detail>
        Bad Request. To know more visit https://aka.ms/sbResourceMgrExceptions. . TrackingId:b786d4d1-cbaf-47a8-a3d1-be689cda2a98_G22, SystemTracker:NoSystemTracker, Timestamp:2019-12-27T13:12:40
    </Detail>
</Error>

Átmeneti kapcsolati problémák hibaelhárítása

Ha időszakos csatlakozási problémákat tapasztal, a hibaelhárítási tippekért tekintse át az alábbi szakaszokat.

Az ügyféloldali SDK legújabb verziójának használata

Előfordulhat, hogy az átmeneti csatlakozási problémák némelyike már ki lett javítva az SDK későbbi verzióiban, mint a használt. Győződjön meg arról, hogy az ügyféloldali SDK-k legújabb verzióját használja az alkalmazásokban. Az SDK-k folyamatosan fejlődnek az új/frissített funkciókkal és hibajavításokkal, ezért mindig tesztelje a legújabb csomagokat. Tekintse meg a kibocsátási megjegyzéseket a kijavított és a hozzáadott/frissített funkciókkal kapcsolatos problémákat.

Az ügyféloldali SDK-kkal kapcsolatos információkért tekintse meg az Azure Event Hubs – Ügyféloldali SDK-k című cikket.

Futtassa a parancsot az elvetett csomagok ellenőrzéséhez

Időszakos csatlakozási problémák esetén futtassa a következő parancsot annak ellenőrzéséhez, hogy vannak-e elvetett csomagok. Ez a parancs 25 különböző TCP-kapcsolatot próbál létrehozni 1 másodpercenként a szolgáltatással. Ezután ellenőrizheti, ebből mennyi volt sikeres és sikertelen, valamint megtekintheti a TCP-kapcsolat késését. Az eszközt innen töltheti lepsping.

.\psping.exe -n 25 -i 1 -q <yournamespacename>.servicebus.windows.net:5671 -nobanner     

Használhat egyenértékű parancsokat, ha más eszközöket, például tnc, pingés így tovább.

Szerezze be a hálózati nyomkövetést, ha az előző lépések nem segítenek és elemezhetők olyan eszközökkel, mint a Wireshark. Szükség esetén lépjen kapcsolatba Microsoft ügyfélszolgálata.

Szolgáltatásfrissítések/újraindítások

Átmeneti csatlakozási problémák léphetnek fel a háttérszolgáltatás frissítései és újraindításai miatt. Amikor ezek előfordulnak, a következő tünetek jelentkezhetnek:

  • Előfordulhat, hogy a bejövő üzenetek/kérések száma csökken.
  • A naplófájl tartalmazhat hibaüzeneteket.
  • Előfordulhat, hogy az alkalmazások néhány másodpercig le lesznek választva a szolgáltatásról.
  • Előfordulhat, hogy a kérések átmenetileg szabályozva vannak.

Ha az alkalmazáskód SDK-t használ, az újrapróbálkoztatási szabályzat már be van építve és aktív. Az alkalmazás újracsatlakozik anélkül, hogy jelentős hatással lenne az alkalmazásra/munkafolyamatra. Az átmeneti hibák észlelése, a visszalépés, majd a hívás újrapróbálkozása biztosítja, hogy a kód rugalmas legyen ezekre az átmeneti problémákra.

Következő lépések

Tekintse meg az alábbi cikkeket: