İleti yönlendirme sorunlarını giderme
Bu makalede, IoT Hub ileti yönlendirmeyle ilgili yaygın sorunlar ve çözüm için izleme ve sorun giderme yönergeleri sağlanır.
İleti yönlendirmeyi izleme
Gönderilen iletilere genel bir bakış sağlamak için ileti yönlendirme ve uç noktalarla ilgili IoT Hub ölçümlerini izlemenizi öneririz. Ayrıca IoT Hub kaynak günlüklerindeki yollar için işlemleri özel işleme için Azure İzleyici Günlüklerine, Event Hubs'a veya Azure Depolama'ya göndermek için bir tanılama ayarı da oluşturabilirsiniz. Ölçümleri, kaynak günlüklerini ve tanılama ayarlarını kullanma hakkında daha fazla bilgi edinmek için bkz . IoT Hub'ı izleme. Öğretici için bkz . IoT hub'ı ile ölçümleri ve kaynak günlüklerini ayarlama ve kullanma.
Ayrıca, yollardan herhangi birinde sorguyla eşleşmeyen iletileri korumak istiyorsanız geri dönüş yolunu etkinleştirmenizi öneririz. Bu iletiler, yapılandırılan bekletme gün sayısı için yerleşik uç noktada tutulabilir.
En sık karşılaşılan sorunlar
İleti yönlendirme ile ilgili en yaygın sorunlar aşağıdadır. Sorun gidermeye başlamak için ayrıntılı adımlar için sorunu seçin.
- Cihazlarımdan gelen iletiler beklendiği gibi yönlendirilmiyor
- Yerleşik Event Hubs uç noktasında iletileri almayı aniden durdurdum
Cihazlarımdan gelen iletiler beklendiği gibi yönlendirilmiyor
Bu sorunu gidermek için aşağıdaki bilgileri analiz edin.
Bu uç nokta için yönlendirme ölçümleri
Yönlendirmeyle ilgili tüm IoT Hub ölçümlerine Yönlendirme ön eki eklenir. Sorunların kök nedenini belirlemek için birden çok ölçümden alınan bilgileri birleştirebilirsiniz. Örneğin, bir uç noktaya teslim edilen veya herhangi bir rotadaki sorgularla eşleşmediğinde ve geri dönüş yolu devre dışı olduğunda bırakılan iletilerin sayısını belirlemek için Yönlendirme Teslimleri ölçümünü kullanın. İleti tesliminde gecikme süresinin sabit mi yoksa artıyor mu olduğunu gözlemlemek için Yönlendirme Gecikme Süresi ölçümünü denetleyin. Artan gecikme süresi belirli bir uç noktayla ilgili bir sorunu gösterebilir ve bu durumda uç noktanın durumunu denetlemenizi öneririz. Bu yönlendirme ölçümleri ayrıca uç nokta türü, belirli uç nokta adı ve iletinin teslim olmamasının nedeni gibi ölçümlerle ilgili ayrıntılar sağlayan boyutlara sahiptir.
İşletimsel sorunlar için kaynak günlükleri
Yönlendirme ve uç nokta işlemleri hakkında daha fazla bilgi edinmek veya sorunu daha fazla anlamak için hataları ve ilgili hata kodunu belirlemek için Rotalar kaynak günlüklerini inceleyin. Örneğin, günlükteki RouteEvaluationError işlem adı, ileti biçimiyle ilgili bir sorun nedeniyle yolun değerlendirilemeyeceğini gösterir. Sorunu azaltmak için belirli işlem adları için sağlanan ipuçlarını kullanın. Bir olay hata olarak günlüğe kaydedildiğinde, günlük değerlendirmenin neden başarısız olduğuna ilişkin daha fazla bilgi de sağlar. Örneğin, işlem adı EndpointUnhealthy ise, 403004 Hata kodu uç noktanın boş alanı olmadığını gösterir.
Uç noktanın durumu
Uç noktaların sistem durumunu almak için REST API Uç Nokta Durumu Al'ı kullanın. Bu API ayrıca bir iletinin uç noktaya en son ne zaman başarıyla gönderildiği, bilinen son hata, bilinen son hata zamanı ve bu uç nokta için en son gönderme girişiminde bulunulma zamanı hakkında bilgi sağlar. Bilinen son hata için sağlanan olası azaltmayı kullanın.
Yerleşik uç noktada iletileri almayı aniden durdurdum
Bu sorunu gidermek için aşağıdaki bilgileri analiz edin.
Yeni bir yol oluşturuldu mu?
Bir yol oluşturulduktan sonra, bu uç noktaya bir yol oluşturulmadığı sürece veriler yerleşik uç noktaya akmaya son verir. Yeni bir yol eklenirse iletilerin yerleşik uç noktaya akmaya devam ettiğinden emin olmak için olay uç noktasına bir yol yapılandırın.
Geri dönüş yolu devre dışı bırakıldı mı?
Geri dönüş yolu, mevcut yollardan herhangi birinde sorgu koşullarını karşılamayen tüm iletileri Event Hubs ile uyumlu yerleşik Event Hubs'a (iletiler/olaylar) gönderir. İleti yönlendirme açıksa geri dönüş yolu özelliğini etkinleştirebilirsiniz. Yerleşik uç noktaya yol yoksa ve bir geri dönüş yolu etkinleştirilirse, yalnızca yollardaki sorgu koşullarıyla eşleşmeyen iletiler yerleşik uç noktaya gönderilir. Ayrıca, tüm mevcut yollar silinirse, yerleşik uç noktadaki tüm verileri almak için geri dönüş yolunun etkinleştirilmesi gerekir.
IoT hub'ına yönelik İleti Yönlendirme dikey penceresini kullanarak Azure portalında geri dönüş yolunu etkinleştirebilir veya devre dışı bırakabilirsiniz. Geri dönüş yolu için özel uç nokta kullanmak üzere FallbackRouteProperties için Azure Resource Manager'ı da kullanabilirsiniz.
IoT Hub yönlendirme uç noktaları için bilinen son hatalar
REST API'sinde Uç Nokta Durumu Alma, uç noktanın iyi durumda olmama nedenini belirlemek için uç noktaların sistem durumunu ve bilinen son hatayı verir. Bu tabloda en yaygın hatalar listelenir.
Kaynak günlüklerini yönlendirir
Yol kaynak günlüklerinde günlüğe kaydedilen işlem adları ve hata kodları aşağıdadır.
İşlem Adları
İşlem Adı | Level | Açıklama |
---|---|---|
UndefinedRouteEvaluation | Bilgiler | İleti bir verme koşuluyla değerlendirilemez. Örneğin, yönlendirme sorgusu koşulundaki bir özellik iletide yoksa. Yönlendirme sorgusu söz dizimi hakkında daha fazla bilgi edinin. |
RouteEvaluationError | Hata | İleti biçimiyle ilgili bir sorun nedeniyle ileti değerlendirilirken bir hata oluştu. Örneğin, içerik kodlaması belirtilmediyse veya İçerik türü iletide geçerli değilse bu hata günlüğe kaydedilir. Bunlar sistem özelliklerinde ayarlanmalıdır. |
DroppedMessage | Hata | İleti bırakıldı ve yönlendirilmedi. Bunun nedeni iletinin herhangi bir yönlendirme sorgusuyla eşleşmemesi veya uç noktanın ölü olması ve birkaç yeniden denemeden sonra iletinin teslim edilememesi olabilir. REST API'sini kullanarak uç nokta durumu hakkında daha fazla ayrıntı almanızı öneririz. |
EndpointUnhealthy | Hata | Uç nokta IoT Hub'dan gelen iletileri kabul ediyor ve IoT Hub iletileri yeniden göndermeye çalışıyor. REST API'sinin uç nokta durumunu alma yoluyla bilinen son hatayı gözlemlemenizi öneririz. |
EndpointDead | Hata | Uç nokta bir saatten uzun süredir IoT Hub'dan gelen iletileri kabul etmemiştir. REST API'sinin uç nokta durumunu alma yoluyla bilinen son hatayı gözlemlemenizi öneririz. |
EndpointHealthy | Bilgiler | Uç nokta iyi durumda ve IoT Hub'dan ileti alıyor. Bu ileti sürekli günlüğe kaydedilmez, ancak yalnızca uç nokta yeniden iyi duruma geldiğinde günlüğe kaydedilir. Bu ileti, IoT Hub'ın uç noktaya ileti gönderemediği, ancak uç noktanın artık iyi durumda olduğu anlamına gelir. |
OrphanedMessage | Bilgiler | İleti hiçbir yol ile eşleşmiyor. |
InvalidMessage | Hata | uç noktayla uyumsuzluk nedeniyle ileti geçersiz. Uç nokta yapılandırmalarını denetlemenizi öneririz. |
UndefinedRouteEvaluation, RouteEvaluationError ve OrphanedMessage işlemleri, IoT Hub'ı başına dakikada en fazla bir kez kısıtlanır ve günlüğe kaydedilir.
Sık karşılaşılan hata kodları
Hata Kodu | Açıklama |
---|---|
401002 | Iot Hub Yetkisiz Erişimi |
413001 | İleti çok büyük |
403004 | Cihaz kuyruk derinliği üst sınırı aşıldı |
503008 | Bağlantı kısıtlanmış alma |
500000 | Genel Sunucu hatası |
Kategori 401 | Yetkisiz |
503 | Hizmet Kullanılamıyor |
500001 | Sunucu Hatası |
400103 | Geçersiz İçerik Kodlaması veya İçerik Türü |
404001 | Cihaz Bulunamadı |
Sonraki adımlar
Daha fazla yardıma ihtiyacınız varsa Microsoft Soru-Cevap ve Stack Overflow forumlarında Azure uzmanlarına başvurabilirsiniz. Alternatif olarak, bir Azure desteği olayı da oluşturabilirsiniz. Azure desteği sitesine gidin ve Destek Al'ı seçin.