Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
IoT Edge 1.5
Önemli
IoT Edge 1.5 LTS desteklenen sürümdür. IoT Edge 1.4 LTS, 12 Kasım 2024 itibarıyla kullanım ömrü sona erer. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.
Azure İzleyici ve yerleşik ölçüm tümleştirmesi kullanarak IoT Edge filonuzu uzaktan izleyebilirsiniz. Cihazınızda bu özelliği etkinleştirmek için metrics-collector modülünü dağıtımınıza ekleyin ve modül ölçümlerini toplayıp Azure İzleyici'ye aktaracak şekilde yapılandırın.
IoT Edge cihazınızda izlemeyi yapılandırmak için IoT Edge cihazlarını izleme öğreticisini izleyin. Ölçüm toplayıcı modülünü cihazınıza eklemeyi öğreneceksiniz. Bu makale, izleme mimarisine genel bir bakış sağlar ve cihazınızda ölçümleri yapılandırma seçeneklerinizi açıklar.
IoT Edge için Azure İzleyici(4:06)
Mimari
| Not | Açıklama |
|---|---|
| 1 | Tüm modüllerin Prometheus veri modelini kullanarak ölçümleri yayması gerekir. Yerleşik ölçümler varsayılan olarak geniş iş yükü görünürlüğü sağlarken, izleme çözümünü geliştirmek üzere senaryoya özgü ölçümleri yaymak için özel modüller de kullanılabilir. Özel ölçümler ekleme makalesinde açık kaynak kitaplıkları kullanarak özel modülleri nasıl izleyebileceğinizi öğrenin. |
| 2️ | Ölçüm toplayıcı modülü, iş yükü modülü ölçümlerini toplayan ve bunları cihazdan dışarı aktaran Microsoft tarafından sağlanan bir IoT Edge modülüdür. Ölçüm koleksiyonu bir çekme modeli kullanır. Koleksiyon sıklığı, uç noktalar ve filtreler modülden alınan veri çıkışını denetlemek için yapılandırılabilir. Daha fazla bilgi için bu makaledeki Ölçüm toplayıcı yapılandırması bölümüne bakın. |
| 3️ | Ölçüm toplayıcı modülünden buluta ölçüm göndermek için iki seçeneğiniz vardır.
1 . seçenek ölçümleri Log Analytics'e gönderir.1 Toplanan ölçümler, adlı InsightsMetricssabit, yerel bir tablo kullanılarak belirtilen Log Analytics çalışma alanına alınır. Bu tablonun şeması Prometheus ölçümleri veri modeliyle uyumludur.Bu seçenek, giden bağlantı noktası 443'te çalışma alanına erişim gerektirir. Log Analytics çalışma alanı kimliği ve anahtarı modül yapılandırmasının bir parçası olarak belirtilmelidir. Kısıtlı ağlarda etkinleştirmek için bu makalenin Kısıtlı ağ erişim senaryolarında etkinleştir bölümüne bakın. |
| 4️ | Her ölçüm girişi, modül yapılandırmasının ResourceIdbir parçası olarak belirtilen öğesini içerir. Bu ilişkilendirme, ölçümü belirtilen kaynağa (örneğin, IoT Hub) otomatik olarak bağlar. Sonuç olarak, seçilen IoT Edge çalışma kitabı şablonları kaynağa yönelik sorgular düzenleyerek ölçümleri alabilir. Bu yaklaşım, birden çok IoT hub'ının tek bir Log Analytics çalışma alanını ölçüm veritabanı olarak güvenli bir şekilde paylaşmasına da olanak tanır. |
| 5️ |
2. seçenek ölçümleri IoT Hub'a gönderir.1 Toplayıcı modülü, toplanan ölçümleri modül aracılığıyla UTF-8 kodlanmış JSON edgeHub olarak gönderecek şekilde yapılandırılabilir. Bu seçenek, yalnızca IoT Hub uç noktasına dış erişime izin verilen kilitli IoT Edge cihazlarının izlenmesinin kilidini açar. Ayrıca alt cihazların yalnızca üst cihazlarına erişebildiği iç içe yerleştirilmiş bir yapılandırmada alt IoT Edge cihazlarının izlenmesini sağlar. |
| 6️ | Ölçümler IoT Hub üzerinden yönlendirildiğinde bir (tek seferlik) bulut iş akışının ayarlanması gerekir. İş akışı, metrics-collector modülünden gelen iletileri işler ve bunları Log Analytics çalışma alanına gönderir. İş akışı, bu isteğe bağlı yol üzerinden gelen ölçümler için bile seçilen görselleştirmeler ve uyarılar işlevselliğini etkinleştirir. Bu bulut iş akışını ayarlama hakkında daha fazla bilgi için bu makalenin Yönlendirme ölçümleri bölümüne bakın. |
1 Şu anda ölçümleri IoT Edge cihazından Log Analytics'e doğrudan taşımak için 1 . seçeneği kullanmak, minimum kurulum gerektiren daha basit bir yoldur. IoT Edge cihazının yalnızca IoT Hub ile iletişim kurması için özel senaryonuz seçenek 2 yaklaşımını talep etmediği sürece ilk seçenek tercih edilir.
Ölçüm toplayıcı modülü
Modül ölçümlerini toplamak ve Azure İzleyici'ye göndermek için IoT Edge dağıtımına Microsoft tarafından sağlanan bir ölçüm toplayıcı modülü eklenebilir. Modül kodu açık kaynaktır ve IoT Edge GitHub deposunda kullanılabilir.
Ölçüm toplayıcı modülü Linux X64, ARM32, ARM64 ve Windows X64'i (sürüm 1809) destekleyen çok kemerli bir Docker kapsayıcı görüntüsü olarak sağlanır. Microsoft Artifact Registry'de mcr.microsoft.com/azureiotedge-metrics-collectorgenel olarak kullanılabilir.
Ölçüm toplayıcı yapılandırması
Ölçüm toplayıcı için tüm yapılandırmalar ortam değişkenleri kullanılarak yapılır. En düşük düzeyde, bu tabloda Gerekli olarak işaretlenen değişkenlerin belirtilmesi gerekir.
| Ortam değişkeni adı | Açıklama |
|---|---|
ResourceId |
Cihazın iletişim kurduğunu IoT hub'ının kaynak kimliği. Daha fazla bilgi için bkz . Kaynak Kimliği. Zorunlu Varsayılan değer: yok |
UploadTarget |
Ölçümlerin HTTPS üzerinden doğrudan Azure İzleyici'ye mi yoksa IoT Hub'a D2C iletileri olarak mı gönderileceğini denetler. Daha fazla bilgi için Dosya yükleme hedefi bölümüne bakın. AzureMonitor veya IoTMessage olabilir Gerekli değil Varsayılan değer: AzureMonitor |
LogAnalyticsWorkspaceId |
Log Analytics çalışma alanı kimliği. Yalnızca UploadTarget AzureMonitor olduğunda gereklidir Varsayılan değer: yok |
LogAnalyticsSharedKey |
Log Analytics çalışma alanı anahtarı. Yalnızca UploadTarget AzureMonitor olduğunda gereklidir Varsayılan değer: yok |
ScrapeFrequencyInSecs |
Ölçümlerin toplanması ve taşınması için saniye cinsinden yinelenen zaman aralığı. Örnek: 600 Gerekli değil Varsayılan değer: 300 |
MetricsEndpointsCSV |
Prometheus ölçümlerini toplamak için virgülle ayrılmış uç noktaların listesi. Ölçümleri toplayacak tüm modül uç noktaları bu listede görünmelidir. Örnek: http://edgeAgent:9600/metrics, http://edgeHub:9600/metrics, http://MetricsSpewer:9417/metrics Gerekli değil Varsayılan değer: http://edgeHub:9600/metrics, http://edgeAgent:9600/metrics |
AllowedMetrics |
Toplayacak ölçümlerin listesi, diğer tüm ölçümler yoksayılır. Devre dışı bırakmak için boş bir dizeye ayarlayın. Daha fazla bilgi için bkz . listelere izin verme ve izin verme. Örnek: metricToScrape{quantile=0.99}[endpoint=http://MetricsSpewer:9417/metrics] Gerekli değil Varsayılan değer: boş |
BlockedMetrics |
Yoksayılan ölçümlerin listesi. AllowedMetrics'i geçersiz kılar, bu nedenle her iki listede de yer alan bir ölçüm bildirilir. Daha fazla bilgi için bkz. İzin verilen ve verilmeyen listeler. Örnek: metricToIgnore{quantile=0.5}[endpoint=http://VeryNoisyModule:9001/metrics], docker_container_disk_write_bytes Gerekli değil Varsayılan değer: boş |
CompressForUpload |
Ölçümleri karşıya yüklerken sıkıştırmanın kullanılıp kullanılmayacağı denetler. Tüm karşıya yükleme hedefleri için geçerlidir. Örnek: true Gerekli değil Varsayılan değer: true |
AzureDomain |
Ölçümleri doğrudan Log Analytics'e alırken kullanılacak en üst düzey Azure etki alanını belirtir. Örnek: azure.us Gerekli değil Varsayılan değer: azure.com |
Kaynak Kimliği
Ölçüm toplayıcı modülü, IoT Edge cihazının ait olduğu IoT hub'ının Azure Resource Manager kimliğini gerektirir. ResourceID ortam değişkeninin değeri olarak bu kimliği belirtin.
Kaynak kimliği aşağıdaki biçimi alır:
/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Devices/IoTHubs/<iot hub name>
Kaynak kimliğini Azure portalındaki IoT hub'ının Özellikler sayfasında bulabilirsiniz.
Veya az resource show komutuyla kimliği alırsınız:
az resource show -g <resource group> -n <hub name> --resource-type "Microsoft.Devices/IoTHubs"
Hedefi karşıya yükleme
UploadTarget yapılandırma seçeneği ölçümlerin doğrudan Azure İzleyici'ye mi yoksa IoT Hub'a mı gönderileceğini denetler.
UploadTarget'i IoTMessage olarak ayarlarsanız modül ölçümleriniz IoT iletileri olarak yayımlanır. Bu iletiler uç noktasından /messages/modules/<metrics collector module name>/outputs/metricOutputUTF8 ile kodlanmış json olarak gönderilir. Örneğin, IoT Edge Ölçüm Toplayıcı modülünüzün adı IoTEdgeMetricsCollector ise uç nokta olur /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutput. Bunun biçimi aşağıdaki gibidir:
[{
"TimeGeneratedUtc": "<time generated>",
"Name": "<prometheus metric name>",
"Value": <decimal value>,
"Label": {
"<label name>": "<label value>"
}
}, {
"TimeGeneratedUtc": "2020-07-28T20:00:43.2770247Z",
"Name": "docker_container_disk_write_bytes",
"Value": 0.0,
"Label": {
"name": "AzureMonitorForIotEdgeModule"
}
}]
Listelere izin verme ve izin verme
AllowedMetrics ve BlockedMetrics yapılandırma seçenekleri, metrik seçicilerin yer veya virgülle ayrılmış listelerini alır. Bir ölçüm listeyle eşleşir ve her iki listedeki bir veya daha fazla ölçümle eşleşiyorsa dahil edilir veya dışlanır.
Ölçüm seçicileri, PromQL sorgu dilinin bir alt kümesine benzer bir biçim kullanır.
metricToSelect{quantile=0.5,otherLabel=~Re[ge]*|x}[http://VeryNoisyModule:9001/metrics]
Ölçüm seçiciler üç bölümden oluşur:
Ölçüm adı (metricToSelect).
- Ölçüm adlarında
*joker karakterler (herhangi bir karakter) ve?(herhangi bir tek karakter) kullanılabilir. Örneğin,*CPUile eşleşip eşleşmezmaxCPUminCPUCPUMaximum.???CPUile eşleşip eşleşmezmaxCPUminCPUmaximumCPU. - Bu bileşen bir ölçüm seçicide gereklidir.
Etiket tabanlı seçiciler ({quantile=0.5,otherLabel=~Re[ge]*|x}).
- Küme ayraçlarına birden çok ölçüm değeri eklenebilir. Değerler virgülle ayrılmış olmalıdır.
- Seçicideki en az tüm etiketler mevcutsa ve aynı zamanda eşleşiyorsa ölçüm eşleştirilir.
- PromQL gibi aşağıdaki eşleşen işleçlere de izin verilir.
-
=Etiketleri sağlanan dizeye tam olarak eşit (büyük/küçük harfe duyarlı) eşleştirin. -
!=Etiketleri sağlanan dizeye tam olarak eşit olmayan şekilde eşleştirin. -
=~Etiketleri sağlanan bir kayıt defteriyle eşleştirin. Ex:label=~CPU|Mem|[0-9]* -
!~Sağlanan bir regex'e uymayan etiketleri eşleştirin. - Regex tamamen sabitlenmiştir (A
^ve$her regex'in başlangıcına ve sonuna otomatik olarak eklenir) - Bu bileşen, ölçüm seçicide isteğe bağlıdır.
-
Uç nokta seçici ([http://VeryNoisyModule:9001/metrics] ).
- URL, içinde listelenen bir URL ile
MetricsEndpointsCSVtam olarak eşleşmelidir. - Bu bileşen, ölçüm seçicide isteğe bağlıdır.
Bir ölçümün seçilecek belirli bir seçicinin tüm bölümleriyle eşleşmesi gerekir. Adla eşleşmeli ve eşleşen değerlerle aynı etiketlere sahip olmalı ve verilen uç noktadan gelmelidir. Örneğin, mem{quantile=0.5,otherLabel=foobar}[http://VeryNoisyModule:9001/metrics] seçici mem{quantile=0.5,otherLabel=~foo|bar}[http://VeryNoisyModule:9001/metrics]ile eşleşmez. Ve benzeri davranış yerine veya benzeri davranışlar oluşturmak için birden çok seçici kullanılmalıdır.
Örneğin, bir modüldeki mem herhangi bir etiketle özel ölçüme module1 izin vermek ancak yalnızca etiketiyle module2aynı ölçüme agg=p99 izin vermek için, öğesine AllowedMetricsaşağıdaki seçici eklenebilir:
mem{}[http://module1:9001/metrics] mem{agg="p99"}[http://module2:9001/metrics]
Veya özel ölçümlere mem izin vermek ve cpu herhangi bir etiket veya uç nokta için aşağıdakileri ekleyin AllowedMetrics:
mem cpu
Kısıtlı ağ erişimi senaryolarında etkinleştirme
Ölçümleri doğrudan Log Analytics çalışma alanına gönderiyorsanız, aşağıdaki URL'lere giden erişime izin verin:
https://<LOG_ANALYTICS_WORKSPACE_ID>.ods.opinsights.azure.com/*https://<LOG_ANALYTICS_WORKSPACE_ID>.oms.opinsights.azure.com/*
Proxy ile ilgili dikkat edilmesi gerekenler
Ölçüm toplayıcı modülü .NET Core'da yazılır. Bu nedenle, bir ara sunucu üzerinden iletişime izin vermek için sistem modülleriyle aynı yönergeleri kullanın.
Yerel modüllerden ölçüm koleksiyonu http protokolünü kullanır. Ortam değişkenini ayarlayarak yerel iletişimin ara sunucu üzerinden geçmesini dışlayın NO_PROXY .
Değeri, dışlanması gereken ana bilgisayar adlarının virgülle ayrılmış listesine ayarlayın NO_PROXY . Konak adları için modül adlarını kullanın. Örneğin: edgeHub,edgeAgent,myCustomModule.
Rota ölçümleri
Bazen ölçümleri doğrudan Log Analytics'e göndermek yerine IoT Hub üzerinden almak gerekir. Örneğin, alt cihazların yalnızca üst cihazlarının IoT Edge hub'ına eriştiği iç içe yerleştirilmiş bir yapılandırmada IoT Edge cihazlarını izlerken. Bir diğer örnek de, yalnızca IoT Hub'a giden ağ erişimine sahip bir IoT Edge cihazı dağıtma işlemidir.
Bu senaryoda izlemeyi etkinleştirmek için ölçüm toplayıcı modülü, edgeHub modülü aracılığıyla ölçümleri cihazdan buluta (D2C) ileti olarak gönderecek şekilde yapılandırılabilir. Özellik, toplayıcı UploadTargetortam değişkeni IoTMessage olarak ayarlanarak açılabilir.
İpucu
Ölçüm iletilerini toplayıcı modülünden IoT Hub'a teslim etmek için bir edgeHub yolu eklemeyi unutmayın. Şuna benzer: FROM /messages/modules/replace-with-collector-module-name/* INTO $upstream.
Bu seçenek, IoT Hub'a gelen ölçüm iletilerini Log Analytics çalışma alanına teslim etmek için bir bulut iş akışı olan ek kurulum gerektirir. Bu ayar yapılmadan, tümleştirmenin seçilmiş görselleştirmeler ve uyarılar gibi diğer bölümleri çalışmaz.
Not
Bu seçenekle ek maliyetlere dikkat edin. Ölçüm iletileri, IoT Hub ileti kotanıza göre sayılır. Ayrıca Log Analytics alımı ve bulut iş akışı hizmetleri için ücretlendirilirsiniz.
Örnek bulut iş akışı
IoT Hub'dan Log Analytics'e ölçüm iletileri teslim eden bir bulut iş akışı, IoT Edge günlük kaydı ve izleme örneğinin bir parçası olarak kullanılabilir. Örnek, mevcut bulut kaynaklarına dağıtılabilir veya bir üretim dağıtım başvurusu görevi görebilir.
Sonraki adımlar
Azure İzleyici'nin etkinleştirmiş olduğu seçilmiş görselleştirme türlerini keşfedin.