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:
Futtassa a következő parancsot egy parancssorból:
nslookup <YourNamespaceName>.servicebus.windows.net
Jegyezze fel a visszaadott
Non-authoritative answer
IP-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.
Először futtassa az nslookup parancsot a névtéren.
nslookup <yournamespace>.servicebus.windows.net
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
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 EventHub
mó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.
Hálózattal kapcsolatos problémák elhárítása
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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: