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, érdemes lehet ellenőrizni a kapcsolati sztring, a szervezet tűzfalbeállításait, az IP-tűzfal beállításait, a hálózati biztonsági beállításokat (szolgáltatásvégpontok, privát végpontok stb.) stb. Átmeneti problémák esetén az SDK legújabb verziójára való frissítés, az elvetett csomagok ellenőrzésére szolgáló parancsok futtatása és a hálózati nyomkövetések beszerzése segíthet a problémák elhárításában. Ez a cikk tippeket nyújt az Azure Event Hubs csatlakozási problémáinak elhárításához.

Á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 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, az alábbiakban 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 (VMSS) – 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 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: