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.
Birçok uygulama ve hizmet, Windows Olay günlüğü veya Syslog gibi standart günlük hizmetleri yerine metin dosyalarına bilgi kaydeder. Bu veriler JSON biçiminde depolanıyorsa, Azure İzleyici tarafından Özel JSON Günlükleri veri kaynağına sahip bir veri toplama kuralında (DCR) toplanabilir.
DCR'nin oluşturulmasıyla ilgili ayrıntılar Azure İzleyici Aracısı ile veri toplama bölümünde verilmiştir. Bu makalede, JSON günlük türü için ek ayrıntılar sağlanır.
Uyarı
Doğrudan DCR tanımıyla çalışmak veya ARM şablonları gibi diğer yöntemlerle dağıtmak için bkz. Azure İzleyici'de veri toplama kuralı (DCR) örnekleri.
Önkoşullar
Azure İzleyici ile sanal makine istemcisinden veri toplama bölümünde listelenen önkoşullara ek olarak, verileri almak için Log Analytics çalışma alanında özel bir tabloya ihtiyacınız vardır. Bu tablonun gereksinimleri hakkında ayrıntılı bilgi için bkz. Log Analytics çalışma alanı tablosu.
Özel JSON dosyası veri kaynağını yapılandırma
Azure İzleyici ile sanal makine istemcisinden veri toplama bölümünde yer alan işlemi kullanarak DCR'yi oluşturun. DCR'nin Topla ve teslim edin sekmesinde Veri kaynağı türü açılan listesinden Özel JSON Günlükleri'ni seçin.
Özel JSON Günlükleri yapılandırmasında sağlanan seçenekler aşağıdaki tabloda açıklanmıştır.
Ayarlar | Açıklama |
---|---|
Dosya düzeni | Yerel diskte günlük dosyalarının konumunu ve adını tanımlar. Farklı dosya adları için, örneğin her gün yeni bir adla yeni bir dosya oluşturulduğunda joker karakter kullanın. Virgülle ayrılmış birden çok dosya deseni girebilirsiniz. Örnekler: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log |
Tablo adı | Log Analytics Çalışma Alanınızdaki hedef tablonun adı. |
Dönüşüm | Kayıtları filtrelemek veya hedef tablonun gelen verilerini biçimlendirmek için veri alma anı dönüşümü. Gelen verileri değiştirmeden bırakmak için kullanın source . Örnek için bkz . Dönüştürme . |
JSON Şeması | JSON günlük dosyasından toplanıp hedef tabloya gönderilecek özellikler. Gereken tek özellik' dir TimeGenerated . Bu değer JSON dosyası tarafından sağlanmazsa veri alma zamanı kullanılır.
Log Analytics çalışma alanı tablosunda açıklanan ve gerekli olmayan diğer sütunlar da eklenebilir ve otomatik olarak doldurulur. Diğer tüm özellikler tablodaki sütunları aynı adla doldurur. Tablo sütunlarıyla eşleşen özelliklerin ilgili sütunla aynı veri türünü kullandığından emin olun.Yukarıdaki görüntüde, JSON dosya gereksinimlerinde ve en iyi uygulamalarda gösterilen örnek JSON dosyası için bir JSON şeması gösterilmektedir |
Hedefler ekle
Özel JSON günlükleri yalnızca oluşturduğunuz özel tabloda depolandığı bir Log Analytics çalışma alanına gönderilebilir. Azure İzleyici Günlükleri türünde bir hedef ekleyin ve bir Log Analytics çalışma alanı seçin. Özel bir JSON günlük veri kaynağı için DCR'ye yalnızca tek bir çalışma alanı ekleyebilirsiniz. Birden çok hedefe ihtiyacınız varsa, birden çok DCR oluşturun. Bunun her birine yinelenen veriler göndereceğini ve bunun ek maliyete neden olacağını unutmayın.
JSON dosya gereksinimleri ve en iyi yöntemler
Azure İzleyici aracısının topladığı dosya aşağıdaki gereksinimleri karşılamalıdır:
- Dosya, izlenen dizinde aracı makinesinin yerel sürücüsünde depolanmalıdır.
- Her bir giriş, bir satır sonuyla belirlenen ve tek bir JSON satırı formatında olan JSON Line (diğer adıyla JSONL veya NDJSON) olmalıdır. JSON gövde biçimi desteklenmez. Aşağıdaki örneğe bakın.
- Dosya ASCII veya UTF-8 kodlaması kullanmalıdır. UTF-16 gibi diğer biçimler desteklenmez.
- Yeni kayıtlar dosyanın sonuna eklenmelidir ve eski kayıtların üzerine yazılmamalıdır. Üzerine yazma veri kaybına neden olur.
Aşağıda Azure İzleyici tarafından toplanabilir tipik bir JSON günlük dosyası örneği verilmiştir. Buna şu alanlar dahildir: Time
, Code
, Severity
,Module
ve Message
.
{"Time":"2025-03-07 13:17:34","Code":1423,"Severity":"Error","Module":"Sales","Message":"Unable to connect to pricing service."}
{"Time":"2025-03-07 13:18:23","Code":1420,"Severity":"Information","Module":"Sales","Message":"Pricing service connection established."}
{"Time":"2025-03-07 15:45:13","Code":2011,"Severity":"Warning","Module":"Procurement","Message":"Module failed and was restarted."}
{"Time":"2025-03-07 15:53:31","Code":4100,"Severity":"Information","Module":"Data","Message":"Daily backup complete."}
Veri kaybı veya performans sorunları yaşamadığınızdan emin olmak için aşağıdaki önerilere uyun:
- Günlük dosyalarıyla 10'dan fazla dizini hedeflemeyin. Çok fazla dizin yoklaması performansın düşmesine neden olur.
- İzlenen dizindeki log dosyalarını sürekli temizleyin. Birçok günlük dosyasını izlemek, aracın CPU ve Bellek kullanımını artırabilir. Tüm günlüklerin işlenmesi için en az 2 gün bekleyin.
- Dosya tarama düzeniyle eşleşen bir dosyayı, aynı zamanda dosya tarama düzeniyle eşleşen başka bir adla yeniden adlandırmayın. Bu, yinelenen verilerin alınmasına neden olur.
- Dosya tarama düzeniyle eşleşen büyük günlük dosyalarını izlenen dizine yeniden adlandırmayın veya kopyalamayın. Gerekirse dakikada 50 MB'ı geçmeyin.
Log Analytics çalışma alanı tablosu
Aracı, yerel diskte belirtilen ad deseni ile eşleşen tüm json dosyalarını izler. Her girdi, günlüğe yazıldığı gibi toplanır ve ardından Log Analytics çalışma alanında belirtilen tabloya gönderilmeden önce ayrıştırılır. DCR'yi oluşturmadan önce Log Analytics çalışma alanında verileri alacak özel tablonun mevcut olması gerekir.
Tablodaki ayrıştırılan Json verilerindeki bir alanın adıyla eşleşen tüm sütunlar günlük girdisindeki değerle doldurulur. Aşağıdaki tabloda, JSON verilerinizde tanımlanan sütunlara ek olarak çalışma alanı tablosundaki gerekli ve isteğe bağlı sütunlar açıklanmaktadır.
Köşe yazısı | Türü | Gerekli mi? | Açıklama |
---|---|---|---|
TimeGenerated |
tarih/zaman | Evet | Bu sütun, kaydın oluşturulduğu saati içerir ve tüm tablolarda gereklidir. Bu değer, kaydın Log Analytics çalışma alanına eklenme zamanıyla otomatik olarak doldurulur. Bu değeri, TimeGenerated 'yi günlük girdisinden bir değere ayarlamak için bir dönüştürme kullanarak geçersiz kılabilirsiniz. |
Computer |
String | Hayı | Tablo bu sütunu içeriyorsa, günlük girdisinin toplandığı bilgisayarın adıyla doldurulur. |
FilePath |
String | Hayı | Tablo bu sütunu içeriyorsa, bu sütun günlük kaydının toplandığı dosyanın yolu ile doldurulur. |
Aşağıdaki örnekte, yukarıda gösterilen örnek JSON dosyası için oluşturulan bir tablodan verileri döndüren bir sorgu gösterilmektedir. Yukarıda gösterilen örnek JSON şemasına sahip bir DCR kullanılarak toplanmış. JSON verileri için TimeGenerated
bir özellik içermediğinden alma süresi kullanılır.
Computer
ve FilePath
sütunları da otomatik olarak doldurulur.
Özel tablo oluşturma
Hedef tablo henüz yoksa DCR'yi oluşturmadan önce bunu oluşturmanız gerekir. Bakınız Özel bir tablo oluşturma için farklı yöntemler. Örneğin, yukarıdaki örnek JSON dosyasından verileri almak üzere özel bir tablo oluşturmak için aşağıdaki PowerShell betiğini kullanabilirsiniz. Bu örnek isteğe bağlı sütunları da ekler.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "Computer",
"type": "string"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Time",
"type": "dateTime"
},
{
"name": "Code",
"type": "int"
},
{
"name": "Severity",
"type": "string"
},
{
"name": "Module",
"type": "string"
},
{
"name": "Message",
"type": "string"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{WorkspaceName}/tables/{TableName}_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Dönüşüm
Dönüştürme, kayıtları filtrelemek veya şemayı hedef tabloyla eşleşecek şekilde değiştirmek için gelen akışı potansiyel olarak değiştirir. Gelen akışın şeması hedef tabloyla aynıysa, varsayılan dönüştürmesini source
kullanabilirsiniz. Aksi takdirde ARM şablonunun transformKql
bölümünü gerekli şemayı döndüren bir KQL sorgusuyla değiştirin.
Örneğin, yukarıdaki örnekte günlük girdisinin, günlük girdisinin oluşturulduğu saati içeren bir Time
alanı vardır. Bunu hedef tabloda ayrı bir sütun olarak depolamak yerine, Time
özelliğinin değerini TimeGenerated
ile eşlemek için aşağıdaki dönüştürmeyi kullanabilirsiniz.
source | extend TimeGenerated = todatetime(Time) | project-away Time
Bu, aşağıdaki günlük sorgusuyla sonuçlanır. sütununun Time
boş olduğuna ve bu özelliğin değerinin için TimeGenerated
kullanıldığına dikkat edin.
Sorun giderme
Beklediğiniz JSON günlüğünden veri toplamazsanız aşağıdaki adımları izleyin.
- Verilerin toplanan günlük dosyasına yazıldığını doğrulayın.
- Günlük dosyasının adının ve konumunun belirttiğiniz dosya düzeniyle eşleşip eşleşmediğini doğrulayın.
- DCR'deki gelen akışın şemasının günlük dosyasındaki şemayla eşleşeceğini doğrulayın.
- Hedef tablonun şemasının gelen akışla eşleşeceğini veya gelen akışı doğru şemaya dönüştürecek bir dönüşüme sahip olduğunuzu doğrulayın.
- Ajanın çalışıp çalışmadığını ve verilerin alınıp alınmadığını doğrulamak için bkz. İşlemi doğrulama.
Sonraki Adımlar
- Azure İzleyici Aracısı hakkında daha fazla bilgi edinin.
- Veri toplama kuralları hakkında daha fazla bilgi edinin.