LoongCollector, Docker konteynerlerinin standart çıktılarını (stdout ve stderr) ve metin tabanlı günlük dosyalarını toplar. Bu verileri Simple Log Service üzerindeki tek bir LogStore'da birleştirir. Merkezi toplama işlemi, her bir düğümdeki konteyner günlüklerini tek tek aramanıza gerek kalmamasını sağlar. Ayrıca yapısal ayrıştırma, veri maskeleme, filtreleme ile verimli sorgulama ve analiz olanakları sunar.
Gereksinimler
LoongCollector'ı dağıtmadan önce aşağıdaki gereksinimleri ve sınırlamaları kontrol edin:
İzin gereksinimleri — Dağıtım için kullandığınız Alibaba Cloud hesabı veya RAM kullanıcısının
AliyunLogFullAccessiznine sahip olması gerekir.-
Docker ve LoongCollector gereksinimleri:
Docker Engine sürümünüz v29.0 veya üzeri ise ya da desteklenen minimum Docker API sürümü 1.42 veya üzeri ise LoongCollector 3.2.4 veya sonraki bir sürümü kullanın. Aksi takdirde LoongCollector, konteynerlerin standart çıktısını veya dosya günlüklerini toplayamaz.
LoongCollector 3.2.4 ve sonraki sürümler, Docker API sürümleri 1.24 ile 1.48 arasını destekler.
LoongCollector 3.2.3 ve önceki sürümler, Docker API sürümleri 1.18 ile 1.41 arasını destekler.
-
Standart çıktı toplamaya ilişkin sınırlamalar:
Docker yapılandırma dosyası daemon.json içine
"log-driver": "json-file"satırını eklemelisiniz.CentOS 8.0 hariç, CentOS 7.4 veya sonraki sürümlerde
fs.may_detach_mounts=1değerini ayarlamanız gerekir.
-
Metin günlüklerini toplamaya ilişkin sınırlamalar — Yalnızca overlay ve overlay2 depolama sürücüleri desteklenir. Diğer depolama sürücülerini kullanıyorsanız günlük dizinini manuel olarak bağlamanız gerekir.
1. Adımdaki dağıtım komutlarını çalıştırmadan önce aşağıdaki kararları verin. Çünkü her bir karar,
docker pullvedocker runkomutlarına yansıtılır: Görüntü ve bölge — Çekeceğiniz görüntü ve bu görüntüyü çekeceğiniz bölge ID'si.
Günlük yükleme kanalı —
${sls_upload_channel}değişkeninin kodladığı ağ iletim türü. Dahili ağ, İnternet ve aktarma hızlandırma seçeneklerinin karşılaştırması için bu konunun Ek: Ağ iletim türleri bölümüne bakın.Makine grubu tanımlayıcısı —
${user_defined_id}değişkeniyle ilettiğiniz özel tanımlayıcı. Tanımlayıcı bölge içinde benzersiz olmalı ve makine grubu aynı değeri kullanmalıdır.
Toplama yapılandırma iş akışı
Aşağıdaki liste, toplama iş akışını bu konudaki bölümlerle eşleştirir:
Hazırlıklar: Bir proje ve LogStore oluşturun. Proje, farklı uygulamalardaki günlükleri birbirinden ayıran bir kaynak yönetimi birimidir; LogStore ise günlükleri saklar.
1. Adım: Makine grubu yapılandırma (LoongCollector'ı yükleme): Günlük toplamak istediğiniz sunuculara LoongCollector'ı yükleyin ve bunları bir makine grubuna ekleyin. Makine grubu kullanarak toplama düğümlerini merkezi olarak yönetebilir, yapılandırmaları dağıtabilir ve sunucularınızın durumunu izleyebilirsiniz.
-
2. Adım: Günlük toplama kuralı oluşturma ve yapılandırma
Genel ve giriş yapılandırması: Toplama yapılandırmasının adını, günlük kaynağını ve toplama kapsamını tanımlayın.
-
Günlük işleme ve yapılandırma: Günlük biçimine göre işleme kuralları yapılandırın.
Çok satırlı günlükler: Tek bir günlük girdisinin birden fazla satıra yayıldığı durumlar (örneğin Java istisna yığını veya Python geri izleme) için geçerlidir. Her girdinin başlangıç satırını belirlemek üzere ilk satır düzenli ifadesini kullanın.
Yapısal ayrıştırma: Ham metinlerden anahtar-değer çiftlerini çıkararak daha kolay sorgulama ve analiz sağlamak amacıyla düzenli ifade, ayırıcı veya NGINX modu gibi bir ayrıştırma eklentisi yapılandırın.
Günlük filtreleme (Data Filtering): Yalnızca yararlı günlük içeriğini tutmak ve gereksiz veri iletimi ile depolamayı azaltmak için bir toplama kara listesi ve içerik filtreleme kuralları yapılandırın.
Günlük kategorize etme: Farklı uygulamalardan, konteynerlerden veya kaynak yollarından gelen günlükleri esnek şekilde ayırt etmek için konu ve günlük etiketleme yapılandırın.
Çıkış yapılandırması: Toplanan günlükleri mevcut LogStore'da tutun veya birden çok LogStore'a dağıtın.
3. Adım: Sorgulama ve analizi yapılandırma (Query and Analysis Configurations): Tam metin dizini varsayılan olarak etkindir ve anahtar kelime aramalarını destekler. Yapısal alanlarda hassas sorgular ve analizler çalıştırabilmek, ayrıca arama verimliliğini artırmak için alan dizinini de etkinleştirmenizi öneririz.
4. Adım: Doğrulama ve sorun giderme: Yapılandırmayı tamamladıktan sonra günlüklerin toplandığını doğrulayın. Toplanan veri olmaması, heartbeat hataları veya ayrıştırma hataları gibi sorunlarla karşılaşırsanız SSS bölümüne bakın.
Hazırlıklar
Günlükleri toplamaya başlamadan önce günlüklerinizi yönetecek ve saklayacak projeyi ve LogStore'u planlayıp oluşturun. Bu kaynaklar zaten varsa bu bölümü atlayıp doğrudan 1. Adım: Makine grubu yapılandırma (LoongCollector'ı yükleme) bölümüne geçin.
Proje oluşturma
Simple Log Service konsolu üzerinde oturum açın.
-
Create Project seçeneğine tıklayın ve aşağıdaki parametreleri yapılandırın:
Region: Günlük kaynaklarınızın konumuna göre bir bölge seçin. Oluşturduktan sonra bu ayarı değiştiremezsiniz.
Project Name: Ad, Alibaba Cloud genelinde benzersiz olmalıdır. Oluşturduktan sonra adı değiştiremezsiniz.
Diğer ayarları varsayılan değerlerinde bırakın ve Create seçeneğine tıklayın. Diğer parametreler hakkında daha fazla bilgi için Proje oluşturma konusuna bakın.
LogStore oluşturma
Hedef projeye gitmek için proje adına tıklayın.
Sol gezinme bölmesinde
Logstores seçeneğini belirleyin ve + simgesine tıklayın.-
Create LogStore sayfasında aşağıdaki temel ayarları tamamlayın:
Logstore Name: Proje içinde benzersiz bir ad girin. Oluşturduktan sonra adı değiştiremezsiniz.
Logstore Type: Teknik özellikler karşılaştırmasına göre Standard veya Query seçeneğini belirleyin.
-
Billing Mode:
Pay-by-feature (Cannot Be Changed): Depolama, dizin oluşturma ve okuma/yazma işlemleri gibi her bir kaynak için ayrı faturalandırılırsınız. Bu mod, küçük ölçekli senaryolar veya özellik kullanımının henüz net olmadığı durumlar için uygundur.
Pay-by-ingested-data : Yalnızca alınan ham veriler için faturalandırılırsınız. Bu mod, 30 günlük ücretsiz depolama ve veri dönüştürme ile veri sevkiyatı gibi ücretsiz özellikler sunar. Bekletme süresi yaklaşık 30 gün olan veya karmaşık veri işleme işlem hatlarına sahip iş senaryoları için uygundur.
Data Retention Period: Günlüklerin saklanacağı gün sayısını belirtin. Geçerli değerler: 1 ila 3.650. 3.650 değeri kalıcı saklamayı ifade eder. Varsayılan değer: 30.
Diğer ayarları varsayılan değerlerinde bırakın ve OK seçeneğine tıklayın. Diğer ayarlar hakkında daha fazla bilgi için LogStore yönetme konusuna bakın.
1. Adım: Makine grubu yapılandırma (LoongCollector'ı yükleme)
LoongCollector'ı Docker ana makinesinde bir konteyner olarak dağıtın ve bir makine grubuna ekleyin. Makine grubu sayesinde birden çok toplama düğümünü merkezi olarak yönetebilir, yapılandırmaları dağıtabilir ve durumu izleyebilirsiniz.
1. Görüntüyü çekme
Docker yüklü bir ana makinede LoongCollector görüntüsünü çekmek için aşağıdaki komutu çalıştırın. İndirme hızını ve kararlılığını artırmak için ${region_id} yerine ana makinenin bulunduğu bölgenin veya yakın bir bölgenin bölge ID'sini (örneğin cn-hangzhou) yazın.
# LoongCollector image address
docker pull aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun
# Logtail image address
docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun
2. LoongCollector konteynerini başlatın
Konteyneri başlatmak için aşağıdaki komutu çalıştırın. Gerekli dizinleri bağladığınızdan ve gerekli ortam değişkenlerini ayarladığınızdan emin olun:
docker run -d \
-v /:/logtail_host:ro \
-v /var/run/docker.sock:/var/run/docker.sock \
--env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${sls_upload_channel}/ilogtail_config.json \
--env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \
--env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \
aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun
Konteyner yeniden başlatma ilkesi: LoongCollector konteynerini başlatırken, Docker'ın beklenmeyen bir çıkış veya Docker daemon yeniden başlatma işleminden sonra konteyneri otomatik olarak yeniden başlatması için --restart=unless-stopped veya --restart=always belirtmenizi öneririz. Aksi takdirde, konteyner harici bir işlem tarafından zorla sonlandırılırsa veya anormal şekilde çıkış yaparsa otomatik olarak kurtarılmaz. Konteyner kendi kendini iyileştirme yeteneğini kaybeder ve günlük toplama işlemi sessizce durur.
Parametreler:
${aliyun_account_id}: Alibaba Cloud hesabınızın ID değeri.${user_defined_id}: Makine grubunun özel tanımlayıcısı; bu tanımlayıcı konteyneri makine grubuna bağlar (örneğinuser-defined-docker-1). Tanımlayıcı bölge içinde benzersiz olmalıdır.${sls_upload_channel}: Günlük yükleme kanalı. Değer, projeyi barındıran bölge ve aşağıdaki tabloda açıklandığı gibi ağ iletim türünden oluşur.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Her iletim türünün arkasındaki ağ özellikleri için bu konunun Ek: Ağ iletim türleri bölümüne bakın.
Gerekli başlatma koşulları:
Üç temel ortam değişkenini doğru şekilde yapılandırın:
ALIYUN_LOGTAIL_CONFIG,ALIYUN_LOGTAIL_USER_IDveALIYUN_LOGTAIL_USER_DEFINED_ID.Konteyner yaşam döngüsü olaylarını dinlemek için
/var/run/docker.sockdizinini bağlayın.Ana bilgisayarın dosya sistemine erişmek için
/dizinini/logtail_hostdizinine bağlayın.
3. Konteyner durumunu doğrulayın
Aşağıdaki komutu çalıştırın:
docker ps | grep loongcollector
Aşağıdaki çıktı döndürülür:
6ad510001753 aliyun-observability-release-registry.cn-beijing.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun "/usr/local/ilogtail…" About a minute ago Up About a minute recursing_shirley
4. Makine grubunu yapılandırın
Sol gezinme bölmesinde seçeneğine gidin.
> Create Machine Group öğesine tıklayın, aşağıdaki parametreleri yapılandırın ve ardından OK düğmesine tıklayın:
Name: Makine grubu için özel bir ad girin (örneğin
docker-host-group).Machine Group Identifier: seçeneği için Custom Identifier değerini seçin.
Custom Identifier alanına, konteyneri başlatırken ayarladığınız
${user_defined_id}değerini girin. Değerler aynı olmalıdır. Aksi takdirde ilişkilendirme başarısız olur.
5. Makine grubunun heartbeat durumunu doğrulayın
Yeni makine grubunun adına tıklayarak ayrıntılar sayfasına gidin ve Machine Group Status değerini kontrol edin:
OK: LoongCollector, Simple Log Service hizmetine bağlıdır.
FAIL: Sorunu gidermek için Heartbeat sorunlarının özeti konusuna bakın.
Adım 2: Günlük toplama kuralı oluşturun ve yapılandırın
LoongCollector'ın hangi günlükleri toplayacağını, günlük yapısını nasıl ayrıştıracağını ve içeriği nasıl filtreleyeceğini tanımlayın; ardından yapılandırmayı kayıtlı bir makine grubuna bağlayın.
LogStores sayfasında, hedef LogStore adının yanındaki
simgesine tıklayarak bunu genişletin.-
Click the
icon next to Import Data. In the Quick Data Import dialog box, select a template based on your log source and click Integrate Now:-
Docker standart çıkışı: Docker Stdout and Stderr - New Version seçeneğini belirleyin.
Konteyner standart çıkış toplama işlemi yeni ve eski bir şablonu destekler. Yeni şablonu kullanmanızı öneririz. İki sürüm arasındaki farklar için bkz. Ek: Yeni ve eski konteyner standart çıkış sürümlerinin karşılaştırılması. Eski şablonu kullanmak için bkz. Docker konteynerlerinden standart çıkış toplama (eski sürüm).
İki şablon varsayılan toplama davranışı açısından da farklılık gösterir: Yeni şablonda bir konteynerin standart çıkışı varsayılan olarak yalnızca bir toplama yapılandırması tarafından toplanabilir; eski şablon ise birden fazla yapılandırma tarafından toplamayı destekler ve ek yapılandırma gerektirmez. Bu kısıtlamayı kaldırma talimatları için bu konunun SSS bölümüne bakın.
Docker dosya günlükleri: Docker File - Container seçeneğini belirleyin. 3. Machine Group Configurations öğelerini yapılandırın ve ardından Next seçeneğine tıklayın:
Scenario: Docker Containers seçeneğini belirleyin.
Adım 1 adımında oluşturduğunuz makine grubunu, sağ taraftaki Source Machine Group listesinden Applied Machine Group listesine taşıyın. 4. Logtail Configuration sayfasında aşağıdaki bölümlerde açıklanan ayarları tamamlayın ve Next seçeneğine tıklayın.
-
1. Global ve giriş yapılandırması
Başlamadan önce bir veri içe aktarma şablonu seçtiğinizden ve bir makine grubu bağladığınızdan emin olun. Bu adım, toplama yapılandırmasının adını, günlük kaynağını ve toplama kapsamını tanımlar.
Docker standart çıkışını topla
Global Configurations
-
Configuration Name: Toplama yapılandırması için özel bir ad girin. Ad, proje içinde benzersiz olmalı ve oluşturulduktan sonra değiştirilememelidir. Adlandırma kuralları:
Ad yalnızca küçük harfler, rakamlar, tire (-) ve alt çizgi (_) içerebilir.
Ad küçük harf veya rakamla başlamalı ve bitmelidir.
Giriş yapılandırması
Stdout and Stderr anahtarını veya Standard Error anahtarını açın. İkisi de varsayılan olarak açıktır. Toplanan günlüklerin sıralı kalmasını sağlamak için standart çıkış ve standart hatayı aynı anda toplamayın.
Docker konteynerlerinden metin günlüklerini topla
Global Configurations:
-
Configuration Name: Toplama yapılandırması için özel bir ad girin. Ad, proje içinde benzersiz olmalı ve oluşturulduktan sonra değiştirilememelidir. Adlandırma kuralları:
Ad yalnızca küçük harfler, rakamlar, tire (-) ve alt çizgi (_) içerebilir.
Ad küçük harf veya rakamla başlamalı ve bitmelidir.
Input Configurations:
-
File Path Type:
Path in Container: Konteyner içindeki günlük dosyalarını toplayın.
Host Path: Ana makinedeki yerel hizmet günlüklerini toplayın.
-
File Path: Günlük toplama için mutlak yol.
Linux: Yol eğik çizgi (/) ile başlar; örneğin
/data/mylogs/**/*.log,/data/mylogsdizinindeki .log uzantılı tüm dosyaları ifade eder.Windows: Yol bir sürücü harfiyle başlar; örneğin
C:\Program Files\Intel\**\*.Log.
Maximum Directory Monitoring Depth: File Path içindeki
**joker karakteriyle eşleşen maksimum dizin derinliği. Varsayılan değer: 0 (yalnızca geçerli dizini ifade eder). Geçerli değerler: 0 ila 1000. Bu parametreyi 0 olarak ayarlamanızı ve yolu dosyaları içeren dizine kadar yapılandırmanızı öneririz.
2. Günlük işleme ve yapılandırma
Ham yapılandırılmamış günlükleri yapılandırılmış verilere dönüştürmek ve günlük sorgulama ile analiz verimliliğini artırmak için günlük işleme kurallarını yapılandırın. Önce bir günlük örneği eklemenizi öneririz:
Logtail Configuration sayfasında, Processor Configurations bölümünde Add Sample Log seçeneğine tıklayın ve toplamak istediğiniz günlük içeriğini girin. Simple Log Service, örnekten günlük biçimini tanımlar ve düzenli ifadeler ile ayrıştırma kuralları oluşturmanıza yardımcı olur; bu da yapılandırmayı basitleştirir.
Senaryo 1: Java yığın günlükleri gibi çok satırlı günlükleri işleme
Java özel durum yığınları ve JSON gibi günlükler genellikle birden çok satıra yayılır. Varsayılan toplama modunda bunlar birkaç eksik girdiye bölünür ve bağlam kaybolur. Bunu önlemek için çok satırlı modu açın ve aynı günlüğün ardışık satırlarını tek bir eksiksiz girdide birleştirmek için ilk satır düzenli ifadesini yapılandırın.
Örnek:
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Multi-line Mode seçeneğini açın:
-
Type: Custom veya Multi-line JSON seçeneğini belirleyin.
-
Custom: Ham günlüklerin biçimi sabit değildir. Her günlüğün başlangıç satırını tanımlamak için Regex to Match First Line öğesini yapılandırın.
-
Regex to Match First Line: İfadeyi otomatik olarak oluşturabilir veya manuel olarak girebilirsiniz. Düzenli ifade eksiksiz bir satırla eşleşmelidir. Yukarıdaki örnekte ifade şu şekildedir:
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.Otomatik oluşturma: Automatically Generate Regular Expression seçeneğine tıklayın, Log Sample metin kutusunda ayıklamak istediğiniz günlük içeriğini seçin ve ardından Generate Regular Expression seçeneğine tıklayın.
Manuel giriş: Manually Enter Regular Expression seçeneğine tıklayın. İfadeyi girdikten sonra Validate seçeneğine tıklayın.
-
Multi-line JSON: Tüm ham günlükler standart JSON biçimindeyse Simple Log Service, tek bir JSON günlüğündeki satır sonlarını otomatik olarak işler.
-
-
Processing Method If Splitting Fails:
Discard: Bir metin parçası ilk satır kuralıyla eşleşmezse parça atılır.
Retain Single Line: Eşleşmeyen metin bölünür ve orijinal tek satır modunda korunur.
Senaryo 2: Günlükleri yapılandırma
Ham günlükler NGINX erişim günlükleri veya uygulama çıktı günlükleri gibi yapılandırılmamış veya yarı yapılandırılmış metinler olduğunda bunları doğrudan sorgulamak ve analiz etmek verimsizdir. Simple Log Service, farklı biçimlerdeki ham günlükleri otomatik olarak yapılandırılmış verilere dönüştüren birden çok veri ayrıştırma eklentisi sağlar; bu da sonraki analiz, izleme ve uyarı süreçleri için sağlam bir veri temeli oluşturur.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde:
-
Ayrıştırma eklentisi ekleme: Add Processor seçeneğine tıklayın ve gerçek biçime göre düzenli ifade ayrıştırma, sınırlayıcı ayrıştırma veya JSON ayrıştırma gibi bir eklenti yapılandırın. Her eklentinin parametreleri için bu konunun Ek: Yerel ayrıştırma eklentileri bölümüne bakın. Aşağıdaki örnekte NGINX günlükleri toplanır; bu nedenle seçeneğini belirleyin.
-
NGINX Log Configuration: NGINX sunucu yapılandırma dosyasından (nginx.conf) tam
log_formattanımını kopyalayın ve bu metin kutusuna yapıştırın. Örnek:log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';Sunucuda günlükleri üreten biçimle tamamen aynı olmalıdır. Aksi takdirde günlük ayrıştırma başarısız olur.
-
-
Genel yapılandırma parametreleri: Aşağıdaki parametreler birden çok veri ayrıştırma eklentisinde görünür ve aynı işlev ile kullanıma sahiptir.
Kaynak alan: Ayrıştırılacak kaynak alanının adı. Varsayılan değer:
content(toplanan günlük içeriğinin tamamı).Ayrıştırma başarısız olduğunda kaynak alanı koru: Bu seçeneği açmanızı öneririz. Bir eklenti biçim uyumsuzluğu gibi nedenlerle bir günlüğü ayrıştıramazsa bu seçenek, eksiksiz ham günlük içeriğini belirtilen kaynak alanda tutar ve düşürmez.
Ayrıştırma başarılı olduğunda kaynak alanı koru: Bu seçeneği belirlerseniz günlük başarıyla ayrıştırıldığında bile ham günlük içeriği korunur.
3. Günlük filtreleme
DEBUG veya INFO gibi düşük değerli ya da ilgisiz büyük miktarda günlük toplamak, depolama kaynaklarını israf eder, maliyetleri artırır, sorgu verimliliğini düşürür ve veri sızıntısı riski oluşturur. Verimli ve güvenli günlük toplama için ince ayarlı filtreleme ilkelerini kullanın.
Filtreleme, konsolda iki yerde yapılandırılır: İçerik filtreleme, Processor Configurations bölümündeki bir işleme eklentisidir; toplama kara listesi ve konteyner filtreleme ise Input Configurations bölümündeki anahtarlardır.
İçerik filtreleme ile maliyetleri azaltma
Günlük içerik alanına göre filtreleme yapın; örneğin, yalnızca düzeyi WARNING veya ERROR olan günlükleri toplayın.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yöntem: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor öğesine tıklayın ve seçeneğini belirleyin:
Field Name: Filtrelenecek günlük alanı.
Field Value: Filtreleme için kullanılan düzenli ifade. Yalnızca tam metin eşleşmesi desteklenir. Kısmi anahtar kelime eşleşmesi desteklenmez.
Kara liste ile toplama kapsamını kontrol etme
Belirtilen dizinleri veya dosyaları hariç tutmak ve ilgisiz ya da hassas günlüklerin yüklenmesini önlemek için kara liste kullanın.
Yöntem: Logtail Configuration sayfasında, bölümünde Collection Blacklist anahtarını açın ve Add öğesine tıklayın.
Dizin ve dosya adları tam eşleşmeyi ve joker karakter eşleşmesini destekler. Desteklenen tek joker karakterler yıldız işareti (*) ve soru işaretidir (?).
-
File Path Blacklist: Yok sayılacak dosya yolları. Örnekler:
/home/admin/private*.log: Toplama sırasında/home/admin/dizinindeki private ile başlayan ve .log ile biten tüm dosyaları yok sayar./home/admin/private*/*_inner.log: Toplama sırasında/home/admin/dizini altındaki private ile başlayan dizinlerde _inner.log ile biten dosyaları yok sayar.
-
File Blacklist: Toplama sırasında yok sayılacak dosya adları. Örnek:
app_inner.log: Toplama sırasındaapp_inner.logadlı tüm dosyaları yok sayar.
-
Directory Blacklist: Dizin yolu eğik çizgi (/) ile bitemez. Örnekler:
/home/admin/dir1/: Dizin kara listesi etkili olmaz./home/admin/dir*: Toplama sırasında/home/admin/dizini altındaki dir ile başlayan tüm alt dizinlerdeki dosyaları yok sayar./home/admin/*/dir: Toplama sırasında/home/admin/dizini altındaki dir adlı ikinci düzey alt dizinlerdeki tüm dosyaları yok sayar. Örneğin,/home/admin/a/dirdizinindeki dosyalar yok sayılırken/home/admin/a/b/dirdizinindeki dosyalar toplanır.
Konteyner filtreleme
Hangi konteyner günlüklerinin toplanacağını hassas bir şekilde kontrol etmek için ortam değişkenleri, Pod etiketleri, ad alanları ve konteyner adları gibi konteyner meta verilerine dayalı toplama koşulları ayarlayın.
Yöntem: Logtail Configuration sayfasında, Input Configurations bölümünde Container Filtering anahtarını açın ve Add öğesine tıklayın.
Birden çok koşul mantıksal VE ile birleştirilir. Tüm düzenli ifade eşleşmeleri Go RE2 motoruna dayanır ve bu motor PCRE gibi diğer motorlara göre daha sınırlıdır. Düzenli ifadelerinizi Ek: Düzenli ifade sınırlamaları (konteyner filtreleme) kılavuzuna göre yazın.
Aşağıdaki koşullar docker konteynerlerine uygulanır:
Ortam değişkeni kara listesi/izin listesi: Günlüklerin toplanacağı konteynerlerin ortam değişkeni koşullarını belirtir.
-
Konteyner etiketi kara listesi/izin listesi: Etiketleri koşulları karşılayan konteynerlerden günlük toplar. Bu parametreyi docker senaryolarında kullanın. Kubernetes senaryolarında önerilmez.
Aşağıdaki koşullar Kubernetes tarafından yönetilen konteynerlere uygulanır:
Kubernetes Pod etiketi kara listesi/izin listesi: Günlüklerin toplanacağı konteynerleri barındıran Pod'ların etiket koşullarını belirtir.
Kubernetes Pod adı düzenli ifade eşleşmesi: Günlüklerin toplanacağı konteynerleri Pod adına göre belirtir.
Kubernetes ad alanı düzenli ifade eşleşmesi: Günlüklerin toplanacağı konteynerleri ad alanı adına göre belirtir.
Kubernetes konteyner adı düzenli ifade eşleşmesi: Günlüklerin toplanacağı konteynerleri konteyner adına göre belirtir.
4. Günlük sınıflandırması
Birden fazla uygulama veya örnek aynı günlük biçimini paylaştığında, günlük kaynaklarını ayırt etmek zorlaşır. Bu durum, sorguların bağlamdan yoksun kalmasına ve analiz verimliliğinin düşmesine neden olur. Bu sorunu çözmek için, otomatik bağlam ilişkilendirmesi ve mantıksal sınıflandırma amacıyla konuları ve günlük etiketlemeyi yapılandırın.
Konu yapılandırma
Farklı yollarda bulunan ancak aynı biçimde günlük üreten birden fazla uygulama veya örneğiniz varsa (örneğin /apps/app-A/run.log ve /apps/app-B/run.log), toplanan günlüklerin kaynağını izlemek zor olabilir. Bu durumda, farklı uygulamalardan veya kaynak yollarından gelen günlükleri esnek bir şekilde ayırt etmek için makine grubuna, özel bir ada veya dosya yolu çıkarımına dayalı olarak bir konu oluşturun.
Yöntem:: Konunun nasıl oluşturulacağını seçin. Aşağıdaki üç tür desteklenir:
makine grubu konusu: Bir toplama yapılandırması birden fazla makine grubuna uygulandığında, LoongCollector sunucunun ait olduğu makine grubunun adını otomatik olarak
__topic__alanı olarak yükler. Bu tür, günlüklerin ana bilgisayar kümesine göre bölündüğü senaryolar için uygundur.Custom: Biçim
customized://<custom_topic_name>şeklindedir; örneğincustomized://app-login. Bu tür, sabit bir uygulama tanımlayıcısına sahip statik konu senaryoları için uygundur.-
Dosya yolu çıkarımı: Günlük dosyasının tam yolundan temel bilgileri çıkararak günlük kaynağını dinamik olarak işaretler. Bu tür, farklı yollarda aynı günlük dosya adını paylaşan birden fazla kullanıcı veya uygulamanın bulunduğu senaryolar için uygundur.
Birden fazla kullanıcı veya hizmet farklı üst düzey dizinlere günlük yazarken alt düzey yollar ve dosya adları aynıysa, yalnızca dosya adı kaynağı ayırt etmek için yeterli değildir. Örneğin:
/data/logs
├── userA
│ └── serviceA
│ └── service.log
├── userB
│ └── serviceA
│ └── service.log
└── userC
└── serviceA
└── service.log
Bu durumda, File Path Extraction özelliğini yapılandırın ve tam yoldan temel bilgileri çıkarmak için bir düzenli ifade kullanın. Eşleşen sonuç, konu olarak LogStore'a yüklenir.
Çıkarma kuralları: Düzenli ifadedeki yakalama grupları
Düzenli ifadeyi yapılandırdığınızda, Simple Log Service çıktı alanı biçimini aşağıdaki tabloda açıklandığı gibi yakalama gruplarının sayısı ve adlandırmasına göre belirler. Bir dosya yoluna yönelik düzenli ifadede eğik çizgiyi (/) kaçış karakteriyle belirtmeniz gerekir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Günlük etiketleme
Ayrıntılı günlük gruplama sağlamak amacıyla konteyner ortam değişkenlerinden veya Kubernetes Pod etiketlerinden temel bilgileri çıkarıp etiket olarak eklemek için günlük etiketi zenginleştirmeyi açın.
Yöntem: Logtail Configuration sayfasında, Input Configurations bölümünde Log Tag Enrichment seçeneğini açın ve Add öğesine tıklayın.
-
Environment Variables: Bir ortam değişkeni adı ve bir etiket adı yapılandırın. Ortam değişkeninin değeri, etiket adı altında depolanır.
Ortam değişkeni adı: Çıkarılacak ortam değişkeninin adı.
Etiket adı: Ortam değişkeni etiketinin adı.
-
Pod Labels: Bir Pod etiketi adı ve bir etiket adı yapılandırın. Pod etiketinin değeri, etiket adı altında depolanır.
Pod etiketi adı: Çıkarılacak Kubernetes Pod etiketinin adı.
Etiket adı: Etiketin adı.
5. Çıkış yapılandırması
Varsayılan olarak, tüm günlükler lz4 sıkıştırmasıyla geçerli LogStore'a gönderilir. Aynı kaynaktan gelen günlükleri farklı LogStore'lara dağıtmak için aşağıdaki adımları uygulayın.
Birden çok hedefe dinamik dağıtım
Birden çok hedefe gönderme işlemi için LoongCollector 3.0.0 veya sonraki bir sürüm gereklidir. Logtail bu özelliği desteklemez.
En fazla beş çıkış hedefi yapılandırabilirsiniz.
-
Birden çok çıkış hedefi yapılandırdıktan sonra, toplama yapılandırması geçerli LogStore'un toplama yapılandırması listesinde görünmez. Çok hedefli dağıtım yapılandırmasını görüntülemek, değiştirmek veya silmek için bkz. Çok hedefli dağıtım yapılandırmalarını nasıl yönetirim?.
Yöntem: Logtail Configuration sayfasında, Output Configurations bölümünde:
Çıkış yapılandırmasını genişletmek için
simgesine tıklayın.-
Add Output Targets öğesine tıklayın ve aşağıdaki ayarları tamamlayın:
Logstores: Hedef LogStore'u seçin.
Compression Method: lz4 ve zstd desteklenir.
-
Route Settings: Günlükleri etiket alanlarına göre yönlendirir ve dağıtır. Yönlendirme yapılandırmasını karşılayan günlükler hedef LogStore'a yüklenir. Yönlendirme yapılandırması boşsa, toplanan tüm günlükler hedef LogStore'a yüklenir.
-
Tag Name: Yönlendirme için kullanılan etiket alanının adı. Alan adını doğrudan girin; örneğin
__path__.__tag__:önekini kullanmayın. Etiket alanları aşağıdaki iki kategoriye ayrılır:Aracıyla ilgili: Toplama aracısının kendisiyle ilgilidir ve eklentilerden bağımsızdır; örneğin
__hostname__ve__user_defined_id__.-
Giriş eklentisiyle ilgili: Bir giriş eklentisi tarafından sağlanır ve günlükleri ilgili bilgilerle zenginleştirir; örneğin dosya toplama için
__path__ve Kubernetes toplama için_pod_name_ile_container_name_.Etiketler hakkında daha fazla bilgi için bkz. Toplama etiketlerini yönetme.
Tag Value: Etiket alanı değeri bu değerle eşleşen günlükler hedef LogStore'a gönderilir.
Discard this tag?: Bu anahtarı açarsanız, yüklenen günlükler bu etiket alanını içermez.
-
3. Adım: Sorgu ve analiz yapılandırma
Günlük işleme ve eklenti yapılandırmasını tamamladıktan sonra, Next öğesine tıklayarak Query and Analysis Configurations sayfasına gidin:
Varsayılan olarak bir tam metin dizini etkindir ve ham günlük içeriğinde anahtar kelime aramalarını destekler.
-
Alana göre hassas sorgular çalıştırmak için sayfada Preview Data yüklenmesini bekleyin ve ardından Automatic Index Generation öğesine tıklayın. Simple Log Service, önizleme verilerindeki ilk girdiye dayalı olarak bir alan dizini oluşturur.
Yapılandırmayı tamamladıktan sonra, tüm toplama kurulumunu bitirmek için Next öğesine tıklayın.
4. Adım: Doğrulama ve sorun giderme
Toplama yapılandırmasını tamamlayıp bir makine grubuna uyguladıktan sonra, Simple Log Service yapılandırmayı otomatik olarak dağıtır ve artımlı günlüklerin toplanmasına başlar.
Yüklenen günlükleri görüntüleyin
Günlük dosyasında yeni içerik olduğundan emin olun: LoongCollector yalnızca artımlı günlükleri toplar.
tail -f /path/to/your/log/filekomutunu çalıştırın ve yeni günlüklerin yazıldığını doğrulamak için bir uygulama işlemi tetikleyin.Günlükleri sorgulayın: Hedef LogStore'un sorgu ve analiz sayfasına gidin ve Search & Analyze seçeneğine tıklayın. Varsayılan zaman aralığı son 15 dakikadır. Yeni günlüklerin gelip gelmediğini kontrol edin. Varsayılan olarak, toplanan her Docker konteyner metin günlüğü aşağıdaki alanları içerir:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Konteyner standart çıktısının kullandığı meta veri alan adları için bu konunun Ek: Yeni ve eski konteyner standart çıktı sürümlerinin karşılaştırılması bölümüne bakın.
Yaygın sorunları giderin
Makine grubunun heartbeat durumu FAIL olarak görünüyor
Kullanıcı tanımlayıcısını kontrol edin
Sunucunuz bir ECS örneği değilse veya ECS örneği ile proje farklı Alibaba Cloud hesaplarına aitse, belirtilen dizinde doğru kullanıcı tanımlayıcısının var olup olmadığını kontrol etmek için aşağıdaki yöntemleri kullanın:
Linux: Kullanıcı tanımlayıcı dosyasını oluşturmak için
cd /etc/ilogtail/users/ && touch <uid>komutunu çalıştırın.-
Windows:
C:\LogtailData\users\dizinine gidin ve<uid>adlı boş bir dosya oluşturun.Belirtilen yolda, mevcut projeye sahip olan Alibaba Cloud hesap ID'si adında bir dosya varsa kullanıcı tanımlayıcısı doğru şekilde yapılandırılmıştır.
Makine grubu tanımlayıcısını kontrol edin
Özel tanımlayıcı tabanlı bir makine grubu kullanıyorsanız, belirtilen dizinde user_defined_id dosyasının var olup olmadığını kontrol edin. Dosya varsa içeriğinin makine grubu için yapılandırılan özel tanımlayıcı ile aynı olduğunu doğrulayın.
|
|
|
|
|
|
|
|
Özel tanımlayıcıyı yapılandırın. Dizin yoksa manuel olarak oluşturun.
echo "user-defined-1" > /etc/ilogtail/user_defined_id | | Windows | C:\LogtailData\user_defined_id | C:\LogtailData dizininde user_defined_id` dosyasını oluşturun ve içine özel tanımlayıcıyı yazın. Dizin yoksa manuel olarak oluşturun. |
Hem kullanıcı tanımlayıcısı hem de makine grubu tanımlayıcısı doğru şekilde yapılandırıldıysa daha fazla sorun giderme için bkz. LoongCollector (Logtail) makine grubu sorunlarını giderme.
Günlük verisi toplanmıyor
Artımlı günlükleri kontrol edin: LoongCollector (Logtail) toplamayı yapılandırdıktan sonra, bir günlük dosyasına yeni günlükler yazılmıyorsa LoongCollector (Logtail) bu dosyayı toplamaz.
Makine grubunun heartbeat durumunu kontrol edin: Resource Group > Machine Groups sayfasına gidin, hedef makine grubunun adına tıklayın ve Machine Group Configurations > Machine Group Status bölümündeki Heartbeat durumunu kontrol edin.
Heartbeat durumu OK ise makine grubu Simple Log Service projesine bağlıdır.
Heartbeat durumu FAIL ise sorunu gidermek için bkz. Makine grubunun heartbeat durumu FAIL.
LoongCollector (Logtail) toplama yapılandırmasının makine grubuna uygulandığını doğrulayın: LoongCollector (Logtail) toplama yapılandırması oluşturulmuş olsa bile, yapılandırma bir makine grubuna uygulanana kadar günlükler toplanmaz.
Resource Group > Machine Groups sayfasına gidin ve hedef makine grubunun adına tıklayarak Machine Group Configurations sayfasına ulaşın.
Sayfada Manage Configuration öğesini kontrol edin. Sol tarafta All Logtail Configurations listesi, sağ tarafta ise Applied Logtail Configs listesi görünür. Hedef LoongCollector (Logtail) toplama yapılandırması sağ taraftaki uygulanan alana taşındıysa yapılandırma hedef makine grubuna uygulanmış demektir.
Hedef LoongCollector (Logtail) toplama yapılandırması sağ taraftaki uygulanan alana taşınmadıysa Modify seçeneğine tıklayın, sol taraftaki All Logtail Configurations listesinden hedef LoongCollector (Logtail) yapılandırmasının adını seçin, sağ taraftaki uygulanan alana taşımak için
simgesine tıklayın ve ardından OK seçeneğine tıklayın.
Günlük toplama hataları veya biçim hataları
Sorun giderme yaklaşımı: Bu durum, ağ bağlantısının ve temel yapılandırmanın çalıştığını, sorunun ise günlük içeriği ile ayrıştırma kuralları arasındaki uyumsuzluktan kaynaklandığını gösterir. Sorunu tespit etmek için belirli hata mesajını kontrol edin:
Logtail Configuration sayfasında toplama hatası bildiren LoongCollector (Logtail) yapılandırmasının adına tıklayın. Log Collection Error sekmesinde sorgu zamanını ayarlamak için Select Time Range seçeneğine tıklayın.
Collection Exception Monitoring > Complete Error Information bölümünde hata günlüğünün uyarı türünü kontrol edin ve Veri toplamadaki yaygın hata türleri bölümünde ilgili çözümü bulun.
Yaygın komutlar
LoongCollector (Logtail) çalışma durumunu görüntüleyin
Aşağıdaki komutu çalıştırın:
docker exec ${logtail_container_id} /etc/init.d/ilogtaild status
LoongCollector (Logtail) sürümünü, IP adresini, başlangıç zamanını ve diğer bilgileri görüntüleyin
Aşağıdaki komutu çalıştırın:
docker exec ${logtail_container_id} cat /usr/local/ilogtail/app_info.json
LoongCollector (Logtail) işlem günlüklerini görüntüleyin
LoongCollector (Logtail) işlem günlükleri konteyner içindeki /usr/local/ilogtail/ dizininde saklanır. Dosya adı ilogtail.LOG şeklindedir ve döndürülen dosyalar sıkıştırılarak ilogtail.LOG.x.gz olarak depolanır. Örnek:
# View the operational logs of LoongCollector
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/loongcollector.LOG
# View the operational logs of Logtail
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/ilogtail.LOG
Aşağıdaki çıktı döndürülür:
[2025-08-25 09:17:44.610496] [info] [22] /build/loongcollector/file_server/polling/PollingModify.cpp:75 polling modify resume:succeeded
[2025-08-25 09:17:44.610497] [info] [22] /build/loongcollector/file_server/polling/PollingDirFile.cpp:100 polling discovery resume:starts
[2025-08-25 09:17:44.610498] [info] [22] /build/loongcollector/file_server/polling/PollingDirFile.cpp:103 polling discovery resume:succeeded
[2025-08-25 09:17:44.610499] [info] [22] /build/loongcollector/file_server/FileServer.cpp:117 file server resume:succeeded
[2025-08-25 09:17:44.610500] [info] [22] /build/loongcollector/file_server/EventDispatcher.cpp:1019 checkpoint dump:succeeded
LoongCollector (Logtail) yeniden başlatın
Aşağıdaki komutları çalıştırın:
# Stop LoongCollector
docker exec a287de895e40 /etc/init.d/ilogtaild stop
# Start LoongCollector
docker exec a287de895e40 /etc/init.d/ilogtaild start
SSS
Yaygın hata mesajları
|
|
|
|
|
|
|
|
|
|
|
|
Hata günlüğü: The parameter is invalid : uuid=none
Sorun açıklaması: LoongCollector (Logtail) günlük dosyasında (/usr/local/ilogtail/ilogtail.LOG) The parameter is invalid : uuid=none hatası bulunur.
Çözüm: Ana makinede bir product_uuid dosyası oluşturun, içine 169E98C9-ABC0-4A92-B1D2-AA6239C0D261 gibi geçerli bir UUID girin ve bu dosyayı LoongCollector (Logtail) konteynerindeki /sys/class/dmi/id/product_uuid dizinine bağlayın.
Aynı günlük dosyasını veya konteyner standart çıktısını birden fazla toplama yapılandırmasıyla nasıl toplarım?
Simple Log Service, yinelenen verileri önlemek amacıyla varsayılan olarak her günlük kaynağının yalnızca bir toplama yapılandırması tarafından toplanmasına izin verir:
Bir metin günlük dosyası yalnızca tek bir Logtail toplama yapılandırmasıyla eşleşebilir.
Konteyner standart çıktısı (stdout):
Yeni standart çıktı şablonunu kullanıyorsanız, standart çıktı varsayılan olarak yalnızca tek bir standart çıktı toplama yapılandırması tarafından toplanabilir.
-
Eski standart çıktı şablonunu kullanıyorsanız, varsayılan olarak birden fazla yapılandırmayla toplama desteklenir ve ek yapılandırma gerekmez.
Aynı günlük kaynağının birden fazla toplama yapılandırması tarafından toplanmasına izin vermek için aşağıdaki adımları uygulayın:
Simple Log Service konsolu üzerinde oturum açın ve hedef projeye gidin.
Sol gezinme bölmesinde
LogStores seçeneğine tıklayın ve hedef LogStore'u bulun.LogStore'u genişletmek için adının yanındaki
simgesine tıklayın.Logtail Configuration seçeneğine tıklayın, yapılandırma listesinde hedef Logtail yapılandırmasını bulun ve Actions sütunundaki Manage Logtail Configuration seçeneğine tıklayın.
Logtail yapılandırma sayfasında Edit seçeneğine tıklayın ve Input Configurations bölümüne kadar aşağı kaydırın: - Metin dosya günlüklerini toplamak için: Allow File to Be Collected for Multiple Times seçeneğini etkinleştirin. - Konteyner standart çıktısını toplamak için: Allow Collection by Different Logtail Configurations seçeneğini etkinleştirin.
Çoklu hedef dağıtım yapılandırmalarını nasıl yönetirim?
Çoklu hedef dağıtım yapılandırması birden fazla LogStore ile ilişkilendirildiğinden bu tür yapılandırmaları proje düzeyindeki yönetim sayfasından sürdürmeniz gerekir:
Simple Log Service konsolu üzerinde oturum açın ve hedef projenin adına tıklayın.
-
Hedef proje sayfasında sol gezinme bölmesinden
Resource Group > Configurations seçeneğine tıklayın.Bu sayfa, yanlışlıkla silinen bir LogStore'dan geriye kalan yapılandırmalar dahil olmak üzere projedeki tüm toplama yapılandırmalarını merkezi olarak yönetir.
Ek: Yerel Ayrıştırma Eklentileri
Logtail Configuration sayfasında, Processor Configurations bölümünde ham günlükleri yapılandırmak için işleme eklentileri ekleyebilirsiniz. Mevcut bir toplama yapılandırmasına işleme eklentisi eklemek için aşağıdaki adımları uygulayın:
Sol gezinme bölmesinde,
LogStores seçeneğini belirleyin ve hedef LogStore'u bulun.LogStore'u genişletmek için adının yanındaki
simgesine tıklayın.Logtail Configuration seçeneğine tıklayın, yapılandırma listesinde hedef Logtail yapılandırmasını bulun ve Actions sütununda Manage Logtail Configuration öğesine tıklayın.
-
Logtail yapılandırma sayfasında Edit seçeneğine tıklayın.
Bu bölümde yalnızca tipik günlük işleme senaryolarını kapsayan yaygın işleme eklentileri açıklanmaktadır. Daha fazla özellik için bkz. Genişletilmiş işleme eklentileri.
Eklentileri birleştirme kuralları (LoongCollector / Logtail 2.0 ve sonraki sürümler için geçerlidir):
Yerel işleme eklentilerini ve genişletilmiş işleme eklentilerini bağımsız olarak kullanabilir veya ihtiyaçlarınıza göre bunları birleştirebilirsiniz.
Daha iyi performans ve daha yüksek kararlılık sunduklarından öncelikle yerel işleme eklentilerini kullanmanızı öneririz.
Yerel özellikler iş ihtiyaçlarınızı karşılayamıyorsa, yapılandırılmış yerel işleme eklentilerinin ardından ek işleme için genişletilmiş işleme eklentileri ekleyin.
Sıra kısıtlaması:
Tüm eklentiler, yapılandırıldıkları sırada bir işleme zinciri oluşturur ve bu sırayla çalışır. Not: Tüm yerel işleme eklentileri, herhangi bir genişletilmiş işleme eklentisinden önce gelmelidir. Bir genişletilmiş işleme eklentisi ekledikten sonra başka yerel işleme eklentisi ekleyemezsiniz.
Normal ifade ile ayrıştırma
Günlük alanlarını bir normal ifadeyle ayıklar ve günlüğü anahtar-değer çiftlerine ayrıştırarak her bir alanın bağımsız olarak sorgulanıp analiz edilmesini sağlar.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve Native Processor > Data Parsing (Regex Mode) öğesini seçin:
Regular Expression: Günlüklerle eşleşmek için kullanılan ifade. Bu ifadeyi otomatik olarak oluşturabilir veya manuel olarak girebilirsiniz:
-
Otomatik oluşturma:
Automatically Generate Regular Expression seçeneğine tıklayın.
Log Sample bölümünde, ayıklamak istediğiniz günlük içeriğini vurgulayın.
-
Generate Regular Expression seçeneğine tıklayın.
Log Sample bölümüne Apache Combined erişim günlüğü gibi doğru biçimde günlük içeriğinin yapıştırıldığını onaylayın ve ardından ayrıştırma ifadesini otomatik olarak oluşturmak için bu bölümdeki Generate Regular Expression seçeneğine tıklayın. - Manuel giriş: Günlük biçimine göre Manually enter a regular expression.
Yapılandırmayı tamamladıktan sonra, normal ifadenin günlük içeriğini doğru şekilde ayrıştırıp ayrıştırmadığını test etmek için Validate seçeneğine tıklayın. - Extracted Field: Ayıklanan her bir günlük içeriği parçası (Value) için bir alan adı (Key) belirleyin. - Diğer parametreler hakkında bilgi için Senaryo 2: Günlükleri yapılandırma bölümünde açıklanan genel yapılandırma parametrelerine bakın.
Sınırlayıcı ile ayrıştırma
Günlük içeriğini bir sınırlayıcı kullanarak yapılandırır ve birden çok anahtar-değer çiftine ayrıştırır. Tek karakterli ve çok karakterli sınırlayıcılar desteklenir.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve Native Processor > Data Parsing (Delimiter Mode) öğesini seçin:
Delimiter: Günlük içeriğini bölmek için kullanılan karakteri belirtin. Örnek: Bir CSV dosyası için Custom seçeneğini belirleyin ve virgül (,) girin.
Quote: Bir alan değeri sınırlayıcı içeriyorsa, alanı çevrelemek ve yanlış bölünmeyi önlemek için bir tırnak işareti belirtin.
Extracted Field: Alanların bölündüğü sıraya göre her bir sütun için bir alan adı (Key) belirleyin. Aşağıdaki kurallar geçerlidir:
Bir alan adı yalnızca harf, rakam ve alt çizgi (_) içerebilir.
Bir alan adı bir harf veya alt çizgi (_) ile başlamalıdır.
Maksimum uzunluk: 128 bayt.
Diğer parametreler hakkında bilgi için Senaryo 2: Günlükleri yapılandırma bölümünde açıklanan genel yapılandırma parametrelerine bakın.
Standart JSON ayrıştırma
Object türündeki bir JSON günlüğünü yapılandırır ve anahtar-değer çiftlerine ayrıştırır.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve Native Processor > Data Parsing (JSON Mode) öğesini seçin:
Original Field: Varsayılan değer: content. Bu alan, ayrıştırılacak ham günlük içeriğini depolar.
Diğer parametreler hakkında bilgi için Senaryo 2: Günlükleri yapılandırma bölümünde açıklanan genel yapılandırma parametrelerine bakın.
İç içe geçmiş JSON ayrıştırma
Bir genişletme derinliği belirterek iç içe geçmiş bir JSON günlüğünü anahtar-değer çiftlerine ayrıştırır.
Örnek:
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve öğesini seçin:
Original Field: Genişletilecek orijinal alanın adı, örneğin
content.JSON Expansion Depth: JSON nesnesinin genişletme düzeyi. 0 değeri tam genişletmeyi (varsayılan değer), 1 değeri geçerli düzeyi belirtir ve böyle devam eder.
Character to Concatenate Expanded Keys: JSON genişletme sırasında alan adlarını birleştirmek için kullanılan karakter. Varsayılan değer: alt çizgi (_).
Name Prefix of Expanded Keys: JSON genişletmeden sonraki alan adlarının öneki.
-
Expand Array: Bir diziyi indekslerle anahtar-değer çiftlerine genişletmek için bu seçeneği açın. Örnek:
{"k":["a","b"]}ifadesi{"k[0]":"a","k[1]":"b"}şeklinde genişletilir.Genişletilen bir alanı yeniden adlandırmak için (örneğin, prefix_s_key_k1 ifadesini new_field_name olarak değiştirmek) eşlemeyi tamamlamak üzere ardından bir Rename Fields eklentisi ekleyin.
Diğer parametreler hakkında bilgi için Senaryo 2: Günlükleri yapılandırma bölümünde açıklanan genel yapılandırma parametrelerine bakın.
JSON dizi ayrıştırma
Bir JSON dizisinden JSON nesnelerini ayıklamak için json_extractişlevini kullanın.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Processing Method seçeneğini SPL olarak değiştirin, SPL statement öğesini yapılandırın ve JSON dizisinden JSON nesnelerini ayıklamak için json_extract işlevini kullanın.
Örnek: content günlük alanından JSON dizisinin öğelerini ayıklayın ve sonuçları yeni json1 ve json2 alanlarında saklayın.
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')
Apache günlük ayrıştırma
Apache günlük yapılandırma dosyasındaki tanımlara dayanarak günlük içeriğini yapılandırır ve birden çok anahtar-değer çiftine ayrıştırır.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve yolunu izleyin:
Log Format öğesini combined olarak ayarlayın.
APACHE LogFormat Configuration ayarı, Simple Log Service tarafından Log Format değerine göre otomatik olarak doldurulur. Sunucunuzdaki Apache yapılandırma dosyasında (genellikle /etc/apache2/apache2.conf konumunda bulunur) tanımlanan LogFormat değeriyle aynı olduğundan emin olmak için otomatik doldurulan içeriği kontrol edin.
Diğer parametreler hakkında bilgi için Senaryo 2: Günlükleri yapılandırma bölümünde açıklanan genel yapılandırma parametrelerine bakın.
Veri maskeleme
Günlüklerdeki hassas verileri maskeler.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve yolunu izleyin:
Original Field: Ayrıştırmadan önce günlük içeriğini depolayan orijinal alan.
-
Data Masking Method ayarını yapılandırın:
const: Hassas içeriği belirtilen dizeyle değiştirir.
md5: Hassas içeriği MD5 değeriyle değiştirir.
Replacement String: Data Masking Method ayarını const olarak belirlediyseniz, hassas içeriğin yerine kullanılacak dizeyi girin.
Content Expression that Precedes Replaced Content: Hassas içeriği bulur. RE2 sözdizimini kullanarak yapılandırın.
Content Expression to Match Replaced Content: Hassas içeriğin ifadesidir. RE2 sözdizimini kullanarak yapılandırın.
Zaman ayrıştırma
Günlükteki zaman alanını ayrıştırır ve ayrıştırma sonucunu günlüğün __time__ alanı olarak ayarlar.
Örnek:
|
|
|
|
|
|
|
|
|
|
|
|
Yordam: Logtail Configuration sayfasında, Processor Configurations bölümünde Add Processor seçeneğine tıklayın ve Native Processor > Time Parsing yolunu izleyin:
Original Field: Ayrıştırmadan önce günlük içeriğini depolayan orijinal alan.
Time Format: Günlükteki zaman içeriğine göre eşleşen zaman biçimini ayarlayın.
Time Zone: Günlükteki zaman alanının saat dilimini seçin. Varsayılan olarak, LoongCollector (Logtail) işlemini barındıran ortamın saat dilimi olan makine saat dilimi kullanılır.
Ek: Normal ifade sınırlamaları (konteyner filtreleme)
Konteyner filtreleme için kullanılan normal ifadeler Go RE2 motoruna dayanır ve bu motor, PCRE gibi diğer motorlara kıyasla bazı sözdizimi sınırlamalarına sahiptir. Normal ifadeler yazarken aşağıdaki hususlara dikkat edin:
-
Adlandırılmış grup sözdizimindeki farklılıklar
Go, adlandırılmış bir grup tanımlamak için
(?P<name>...)sözdizimini kullanır ve PCRE'nin(?<name>...)sözdizimini desteklemez.
Doğru örnek:
(?P<year>\d{4})-
Yanlış örnek:
(?<year>\d{4})2. Desteklenmeyen normal ifade özellikleriAşağıdaki yaygın ancak karmaşık normal ifade özellikleri RE2'de kullanılamaz. Bunları kullanmayın:
Lookarounds (İleri/Geri Bakış):
(?=...),(?!...),(?<=...),(?<!...)Koşullu ifadeler:
(?(condition)true|false)Özyineleme:
(?R),(?0)Alt yordam referansları:
(?&name),(?P>name)-
Atomik gruplar:
(?>...)3. ÖnerilerNormal ifadeleri Regex101 gibi bir araçla hata ayıklarken, bunları doğrulamak ve uyumluluğu sağlamak için Golang (RE2) modunu seçin. Desteklenmeyen sözdizimlerinden herhangi birini kullanırsanız, eklenti ifadenizi doğru şekilde ayrıştıramaz veya eşleştiremez.
Ek: Yeni ve eski konteyner standart çıktı sürümlerinin karşılaştırılması
Depolama verimliliğini ve toplama tutarlılığını artırmak amacıyla, konteyner standart çıktısı için günlük meta veri biçimi yükseltildi. Yeni biçim, meta verileri __tag__ alanı altında birleştirerek depolamayı optimize eder ve biçimi standart hale getirir.
Yeni standart çıktının temel avantajları
Performans önemli ölçüde iyileştirildi
C++ ile yeniden yazılan yeni sürüm, önceki Go uygulamasına kıyasla %180 ila %300 arasında performans artışı sağlar.
Yerel eklentilerle veri işlemeyi ve çok iş parçacıklı paralel işlemeyi destekleyerek sistem kaynaklarını tam olarak kullanır.
Karmaşık senaryoların gereksinimlerini karşılamak üzere yerel eklentiler ile Go eklentilerinin esnek kombinasyonlarını destekler.
Daha güçlü güvenilirlik
Standart çıktı günlükleri için döndürme kuyruğunu destekler ve günlük toplama mekanizmasını dosya toplama mekanizmasıyla birleştirir; bu sayede standart çıktı günlükleri hızla döndürüldüğünde yüksek güvenilirlik sunar.
Daha düşük kaynak tüketimi
CPU kullanımı %20 ila %25 oranında azalır.
Bellek kullanımı %20 ila %25 oranında azalır.
Geliştirilmiş İşletim ve Bakım (O&M) tutarlılığı
Birleştirilmiş parametre yapılandırması: Yeni standart çıktı toplama eklentisinin yapılandırma parametreleri, dosya toplama eklentisiyle tutarlıdır.
Birleştirilmiş meta veri yönetimi: Konteyner meta veri alanlarının adlandırılması ve etiket depolama konumu, dosya toplama senaryosuyla uyumlu hale getirilmiştir; böylece tüketici tarafı yalnızca tek bir işlem mantığını korur.
Yeni ve eski sürümlerin özellik karşılaştırması
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Konteyner meta veri alanı eşlemesi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yeni sürümde, tüm meta veri alanları günlük içeriğine gömülmek yerine günlüğün etiket bölümünde __tag__:<key> biçiminde depolanır.
Yeni sürümün kullanıcılar üzerindeki etkisi
Tüketici tarafı uyarlaması: Depolama konumu içerikten etikete değiştiği için günlük tüketim mantığınızı buna göre ayarlamanız gerekir. Örneğin, bir sorgu çalıştırdığınızda alanlara
__tag__üzerinden erişmeniz gerekir.SQL uyumluluğu: Sorgu SQL'i her iki sürümle de otomatik olarak uyumludur; bu nedenle, herhangi bir sürümden gelen günlükleri işlemek için sorgu ifadelerinizi değiştirmeniz gerekmez.
Ek: Ağ iletim türleri
Genel parametreler
Genel parametreler
|
|
|
|
|
|
|
|
|
|
|
|
Giriş parametreleri
İşlemci parametreleri
Bölgeler
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sonraki adımlar
Veri görselleştirme: Anahtar ölçümlerin eğilimlerini görselleştirme panolarında izleyin.
Veri anormallikleri için otomatik uyarı: Sistem anormalliklerini gerçek zamanlı olarak tespit etmek için bir uyarı ilkesi yapılandırın.




