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.
Azure İzleyici'deki dönüştürmeler, gelen verileri Log Analytics çalışma alanında depolanmadan önce filtrelemek veya değiştirmek için gelen Azure İzleyici verilerine karşı bir KQL sorgusu çalıştırmanıza olanak sağlar. Bu makalede, yalnızca dönüştürmelerde kullanılabilen özel işleçlere ek olarak dönüştürme sorgularında KQL ile ilgili önemli noktalar ve desteklenen özellikler ayrıntılı olarak açıklanıyor.
Dönüştürmeler her kayda ayrı ayrı uygulandığından, birden çok kayıt üzerinde işlem gösteren KQL işleçlerini kullanamazlar. Yalnızca tek bir satırı giriş olarak alan ve en fazla bir satır döndüren işleçler desteklenir. Örneğin, birden çok kaydı özetlediğinden özetleme desteklenmez.
Dönüştürmelerde yalnızca bu makalede listelenen operatörler desteklenir. Diğer günlük sorgularında kullanılabilecek diğer işleçler dönüştürmelerde desteklenmez.
Dikkat edilmesi gereken özel noktalar
Ayrıştır komutu
Dönüştürmedeki ayrıştır komutu performans nedeniyle deyim başına 10 sütunla sınırlıdır. Dönüştürmeniz 10'dan fazla sütunu ayrıştırmayı gerektiriyorsa, büyük ayrıştırma komutlarında açıklandığı gibi bunu birden çok deyime bölün.
Dinamik verileri işleme
Dinamik verilerle aşağıdaki girişi göz önünde bulundurun:
{
"TimeGenerated" : "2021-11-07T09:13:06.570354Z",
"Message": "Houston, we have a problem",
"AdditionalContext": {
"Level": 2,
"DeviceID": "apollo13"
}
}
AdditionalContext'teki özelliklere erişmek için bunu giriş akışında dinamik tür sütun olarak tanımlayın:
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "Message",
"type": "string"
},
{
"name": "AdditionalContext",
"type": "dynamic"
}
]
AdditionalContext sütununun içeriği artık ayrıştırılabilir ve KQL dönüşümünde kullanılabilir:
source
| extend parsedAdditionalContext = parse_json(AdditionalContext)
| extend Level = toint (parsedAdditionalContext.Level)
| extend DeviceId = tostring(parsedAdditionalContext.DeviceID)
Dinamik değişmez değerler
parse_json İşlevinidinamik değişmezleri işlemek için kullanın.
Örneğin, aşağıdaki sorgular aynı işlevselliği sağlar:
print d=dynamic({"a":123, "b":"hello", "c":[1,2,3], "d":{}})
print d=parse_json('{"a":123, "b":"hello", "c":[1,2,3], "d":{}}')
Özel işlevler
Aşağıdaki işlevler yalnızca dönüştürmelerde kullanılabilir. Diğer günlük sorgularında kullanılamazlar.
parse_cef_dictionary
CEF iletisi içeren bir dize verüldüğünde, parse_cef_dictionary iletinin Extension özelliğini dinamik anahtar/değer nesnesine ayrıştırıyor. Noktalı virgül, örnekte gösterildiği gibi ham ileti yönteme geçirilmeden önce değiştirilmesi gereken ayrılmış bir karakterdir.
| extend cefMessage=iff(cefMessage contains_cs ";", replace(";", " ", cefMessage), cefMessage)
| extend parsedCefDictionaryMessage =parse_cef_dictionary(cefMessage)
| extend parsecefDictionaryExtension = parsedCefDictionaryMessage["Extension"]
| project TimeGenerated, cefMessage, parsecefDictionaryExtension
geo_location
IP adresi (IPv4 ve IPv6 desteklenir) geo_location içeren bir dize verildiğinde, işlev aşağıdaki öznitelikler de dahil olmak üzere yaklaşık coğrafi konumu döndürür:
- Ülke
- Bölge
- Devlet
- Şehir
- Enlem
- Boylam
| extend GeoLocation = geo_location("1.0.0.5")
Önemli
Bu işlev tarafından kullanılan IP coğrafi konum hizmetinin doğası gereği, aşırı kullanıldığında veri alımı gecikmesine neden olabilir. Bu işlevi dönüştürme başına birkaç kereden fazla kullanırken dikkatli olun.
Desteklenen ifadeler
'Let' ifadesi
sağ tarafı let bir skaler ifade, tablosal ifade veya kullanıcı tanımlı bir işlev olabilir. Yalnızca skaler türde bağımsız değişkenleri olan kullanıcı tanımlı işlevler desteklenir.
Tablosal ifade deyimleri
Bir dönüştürmede KQL deyimi için desteklenen tek veri kaynakları şunlardır:
kaynak, kaynağı verileri temsil eder. Örneğin:
source | where ActivityId == "383112e4-a7a8-4b94-a701-4266dfc18e41" | project PreciseTimeStamp, Messageprintişleci, her zaman tek bir satır oluşturur. Örneğin:print x = 2 + 2, y = 5 | extend z = exp2(x) + exp2(y)
Desteklenen tablo işleçleri
extendprojectprintwhereparseproject-awayproject-renamedatatable-
columnifexists(column_ifexists yerine columnifexists kullanın)
Desteklenen skaler işleçler
Tüm Sayısal işleçler desteklenir.
Tüm Datetime ve Timespan aritmetik işleçleri desteklenir.
Aşağıdaki Dize işleçleri desteklenir.
- `=
!==~!~contains!containscontains_cs!contains_cshas!hashas_cs!has_csstartswith!startswithstartswith_cs!startswith_csendswith!endswithendswith_cs!endswith_csmatches regexin!in
Aşağıdaki Bit düzeyinde işleçler desteklenir.
binary_and()binary_or()binary_xor()binary_not()binary_shift_left()binary_shift_right()
Skaler işlevler
Bit düzeyinde işlevler
Dönüştürme işlevleri
DateTime ve TimeSpan işlevleri
Dinamik ve dizi işlevleri
Matematiksel işlevler
Koşullu işlevler
Dize işlevleri
-
base64_encodestring(base64_encode_tostring yerine base64_encodestring kullanın) -
base64_decodestring(base64_decode_tostring yerine base64_decodestring kullanın) countofextractextract_allindexofisemptyisnotemptyparse_jsonsplitstrcatstrcat_delimstrlensubstringtolowertoupperhash_sha256
-
Tür işlevleri
Tanımlayıcı alıntılama
Gerekli olduğunda tanımlayıcı alıntılama kullanın.
Sonraki Adımlar
- Azure İzleyici aracısını kullanarak bir sanal makineden veri toplama kuralı ve bu kuralla ilişkilendirme oluşturun.