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:
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, 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.
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 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: