Kapsayıcı içgörülerinde veri dönüştürmeleri
Bu makalede, Kapsayıcı içgörülerinde veri dönüşümlerinin nasıl uygulandığı açıklanmaktadır. Azure İzleyici'deki dönüştürmeler , Log Analytics çalışma alanınıza veri almadan önce verileri değiştirmenize veya filtrelemenize olanak sağlar. Bunlar, maliyet tasarrufu sağlamak için kümenizden toplanan verileri filtreleme veya veri sorgularınızda yardımcı olmak için gelen verileri işleme gibi eylemleri gerçekleştirmenize olanak tanır.
Önemli
Kapsayıcı içgörülerinde günlük koleksiyonunu yapılandırma ve Kapsayıcı içgörülerinde günlük koleksiyonunu filtreleme makalelerinde, Kapsayıcı içgörüleri için veri toplamayı yapılandırma ve filtrelemeye yönelik standart yapılandırma ayarları açıklanmaktadır. Dönüştürmeleri kullanmadan önce bu özellikleri kullanarak gerekli yapılandırmaları gerçekleştirmeniz gerekir. Standart yapılandırma ayarlarıyla gerçekleştiremezseniz filtreleme veya diğer veri yapılandırmasını gerçekleştirmek için dönüştürme kullanın.
Veri toplama kuralı
Dönüştürmeler, Azure İzleyici'de veri toplamayı yapılandırmak için kullanılan veri toplama kurallarında (DCR) uygulanır. DCR kullanarak veri toplamayı yapılandırma, bir kümede Kapsayıcı içgörülerini etkinleştirdiğinizde otomatik olarak oluşturulan DCR'yi açıklar. Dönüştürme oluşturmak için aşağıdaki eylemlerden birini gerçekleştirmeniz gerekir:
- Yeni küme. Aks kümesini Kapsayıcı içgörülerine eklemek için mevcut ARM şablonunu kullanın. Aşağıdaki örneklerden birine benzer bir dönüştürme de dahil olmak üzere gerekli yapılandırmanızla bu şablondaki DCR'yi değiştirin.
- Mevcut DCR. Bir küme Kapsayıcı içgörülerine eklendikten ve veri toplama yapılandırıldıktan sonra, Veri Toplama Kurallarını Düzenleme'deki yöntemlerden herhangi birini kullanarak DCR'sini bir dönüştürme içerecek şekilde düzenleyin.
Not
Şu anda DCR'leri düzenlemek için çok az kullanıcı arabirimi vardır ve bu da dönüşüm eklemek için gereklidir. Çoğu durumda DCR'yi el ile düzenlemeniz gerekir. Bu makalede uygulanacak DCR yapısı açıklanmaktadır. Bu yapıyı uygulama yönergeleri için bkz . Azure İzleyici'de veri toplama kuralları (DCR) oluşturma ve düzenleme.
Veri kaynakları
DCR'nin Veri kaynakları bölümü, DCR'nin işleyecekleri farklı gelen veri türlerini tanımlar. Kapsayıcı içgörüleri için bu, Microsoft- ön ekiyle başlayan bir veya daha fazla önceden tanımlanmış streams
uzantıyı içeren Kapsayıcı içgörüleri uzantısıdır.
DCR'deki Kapsayıcı içgörüleri akışları listesi, küme için seçtiğiniz Maliyet ön ayarına bağlıdır. Tüm tabloları toplarsanız DCR, Akış değerlerinde listelenen tüm akışları içeren bir grup akışı olan akışı kullanırMicrosoft-ContainerInsights-Group-Default
. Dönüştürme kullanacaksanız bunu tek tek akışlarla değiştirmeniz gerekir. Önceden ayarlanmış diğer tüm maliyet ayarları zaten tek tek akışları kullanır.
Aşağıdaki örnekte akış gösterilmektedir Microsoft-ContainerInsights-Group-Default
. Tek tek akışları kullanan örnekler için Örnek DCR'lere bakın.
"dataSources": {
"extensions": [
{
"streams": [
"Microsoft-ContainerInsights-Group-Default"
],
"name": "ContainerInsightsExtension",
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"namespaces": null,
"enableContainerLogV2": true
}
}
}
]
}
Veri akışları
DCR'nin Veri akışları bölümü, akışları DCR'nin destinations
bölümünde tanımlanan hedeflerle eşleştirir. Veriler varsayılan tabloya gönderiliyorsa, bilinen akışlar için tablo adlarının belirtilmesi gerekmez. Dönüştürme gerektirmeyen akışlar, yalnızca çalışma alanı hedefini içeren tek bir girişte birlikte gruplandırılabilir. Her bir tablo varsayılan tablosuna gönderilir.
Dönüştürme gerektiren akışlar için ayrı bir giriş oluşturun. Bu, çalışma alanı hedefini transformKql
ve özelliğini içermelidir. Verileri alternatif bir tabloya gönderiyorsanız, hedef tablonun adını belirten özelliğini eklemeniz outputStream
gerekir.
Aşağıdaki örnekte dönüşüm içeren tek bir akışın dataFlows
bölümü gösterilmektedir. Tek bir DCR'de birden çok veri akışı için Örnek DCR'lere bakın.
"dataFlows": [
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where PodNamespace == 'kube-system'"
}
]
Örnek DCR'ler
Veri filtreleme
İlk örnek, sütunundaki ContainerLogV2
LogLevel
verileri filtreler. Kümedeki sorunları uyarmak ve tanımlamak için kullanabileceğiniz girdiler olduğundan yalnızca veya içeren kayıtlar LogLevel
error
critical
toplanır. Gibi info
diğer düzeyleri toplamak ve depolamak ve debug
önemli bir değer olmadan maliyet oluşturmak.
Aşağıdaki günlük sorgusunu kullanarak bu kayıtları alabilirsiniz.
ContainerLogV2 | where LogLevel in ('error', 'critical')
Bu mantık aşağıdaki diyagramda gösterilmiştir.
Dönüştürmede, gelen verileri temsil etmek için tablo adı source
kullanılır. Dönüştürmede kullanılacak değiştirilmiş sorgu aşağıdadır.
source | where LogLevel in ('error', 'critical')
Aşağıdaki örnekte Container insights DCR'ye eklenen bu dönüşüm gösterilmektedir. Dönüşümün uygulanması gereken tek gelen akış olduğundan için Microsoft-ContainerLogV2
ayrı bir veri akışı kullanıldığını unutmayın. Diğer akışlar için ayrı bir veri akışı kullanılır.
{
"properties": {
"location": "eastus2",
"kind": "Linux",
"dataSources": {
"syslog": [],
"extensions": [
{
"streams": [
"Microsoft-ContainerLogV2",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"enableContainerLogV2": true
}
},
"name": "ContainerInsightsExtension"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"name": "ciworkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"destinations": [
"ciworkspace"
],
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where LogLevel in ('error', 'critical')"
}
],
},
}
Farklı tablolara veri gönderme
Yukarıdaki örnekte yalnızca veya içeren error
critical
kayıtlar LogLevel
toplanır. Bu kayıtları hiç toplamamak yerine alternatif bir strateji, bunları temel günlükler için yapılandırılmış alternatif bir tabloya kaydetmektir.
Bu strateji için iki dönüştürme gerekir. İlk dönüştürme, veya critical
içeren LogLevel
error
kayıtları varsayılan tabloya gönderir. İkinci dönüştürme, diğer kayıtları adlı ContainerLogV2_CL
özel bir tabloya gönderir. Her birinin sorguları, önceki örnekte açıklandığı gibi gelen veriler için kullanılarak source
aşağıda gösterilmiştir.
# Return error and critical logs
source | where LogLevel in ('error', 'critical')
# Return logs that aren't error or critical
source | where LogLevel !in ('error', 'critical')
Bu mantık aşağıdaki diyagramda gösterilmiştir.
Önemli
Bu örnekte DCR'yi yüklemeden önce ile aynı şemaya ContainerLogV2
sahip yeni bir tablo oluşturmanız gerekir. Bunu adlandırıp ContainerLogV2_CL
temel günlükler için yapılandırın.
Aşağıdaki örnekte Container insights DCR'ye eklenen bu dönüşüm gösterilmektedir. Bu DCR'de için her dönüştürme için bir tane olan iki veri akışı Microsoft-ContainerLogV2
vardır. İlki varsayılan tabloya gönderir, bir tablo adı belirtmeniz gerekmez. İkincisi, özelliğin outputStream
hedef tabloyu belirtmesini gerektirir.
{
"properties": {
"location": "eastus2",
"kind": "Linux",
"dataSources": {
"syslog": [],
"extensions": [
{
"streams": [
"Microsoft-ContainerLogV2",
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"extensionName": "ContainerInsights",
"extensionSettings": {
"dataCollectionSettings": {
"interval": "1m",
"namespaceFilteringMode": "Off",
"enableContainerLogV2": true
}
},
"name": "ContainerInsightsExtension"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"name": "ciworkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-KubeEvents",
"Microsoft-KubePodInventory"
],
"destinations": [
"ciworkspace"
],
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where LogLevel in ('error', 'critical')"
},
{
"streams": [
"Microsoft-ContainerLogV2"
],
"destinations": [
"ciworkspace"
],
"transformKql": "source | where LogLevel !in ('error','critical')",
"outputStream": "Custom-ContainerLogV2_CL"
}
],
},
}
Sonraki adımlar
- Azure İzleyici'deki dönüşümler ve veri toplama kuralları hakkında daha fazla bilgi edinin.