ECI günlüklerini SLS'deki özel projelere, Logstore'lara ve makine gruplarına yönlendirmek için ortam değişkenlerini ayarlayın.
Arka Plan
Simple Log Service (SLS), günlük verileri için tek duraklı bir hizmettir. Özel geliştirme yapmadan günlükleri toplamanıza, tüketmenize, aktarmanıza, sorgulamanıza ve analiz etmenize olanak tanır. Daha fazla bilgi için bkz. Simple Log Service'e Giriş.
SLS, kullanıma göre faturalandırılır. Faturalandırmaya genel bakış.
ECI örneği oluşturma sırasında günlük toplamayı etkinleştirdiğinizde sistem varsayılan bir proje ve makine grubu oluşturur:
Proje adı:
eci-log-default-project-{Region}-{AccountID}.Makine grubu adı:
eci-log-default-machine-group-{Region}.
Özel bir proje, Logstore veya makine grubu kullanmak için günlük yapılandırmalarını konteyner ortam değişkenleri olarak ayarlayın. Belirtilen kaynaklar SLS'de yoksa sistem bunları otomatik olarak oluşturur.
Kullanım notları
Günlüklerle ilgili ortam değişkenleri yalnızca örnek oluşturma sırasında etkili olur. Örnek güncellemeleri sırasında ayarlanan değişkenler yoksayılır.
Ücretlerden kaçınmak için kullanılmayan özel projeleri ve Logtail yapılandırmalarını silin.
Bir ortam değişkenini yeniden adlandırmak özgün yapılandırmayı silmez. Ücretlerden kaçınmak için bunu manuel olarak silin.
Yapılandırma
Özel günlük yapılandırmalarını (proje, Logstore, Logtail yapılandırması, makine grubu, parça sayısı, saklama süresi ve etiket) konteyner ortam değişkenleri olarak iletin.
Günlüklerle ilgili ortam değişkeni adları aliyun_logs_{key} ile başlamalıdır; burada {key} Logtail yapılandırma adıdır. Anahtar yalnızca küçük harfleri, rakamları ve tire (-) karakterini destekler.
|
Parametre |
Ortam değişkeni |
Değer açıklaması |
|
Logtail yapılandırması |
aliyun_logs_{key} |
Bir Logtail yapılandırması oluşturur ve günlük toplama yolunu belirtir.
|
|
Proje |
aliyun_logs_{key}_project |
Projeyi belirtir. Ad gereksinimleri:
Not
Proje adları genel olarak benzersiz olmalı ve oluşturulduktan sonra değiştirilememelidir. Geçersiz adlar yoksayılır ve varsayılan proje kullanılır. |
|
Logstore |
aliyun_logs_{key}_logstore |
Logstore'u belirtir. Ad gereksinimleri:
Not
Geçersiz adlar yoksayılır ve varsayılan Logstore kullanılır. Varsayılan Logstore adı, Logtail yapılandırma adı ile eşleşir: |
|
Makine grubu |
aliyun_logs_{key}_machinegroup |
Makine grubunu belirtir. Ad gereksinimleri:
Not
Geçersiz adlar yoksayılır ve varsayılan makine grubu kullanılır. |
|
Parça |
aliyun_logs_{key}_shard |
Logstore için parça sayısını ayarlar. Değer 1 ila 10 arasında bir tamsayı olabilir. Bir Logstore'dan okunan ve yazılan günlükler parçalarda depolanır. Her Logstore varsayılan olarak iki parçaya sahiptir. |
|
Günlük saklama süresi |
aliyun_logs_{key}_ttl |
Günlük saklama süresini gün cinsinden ayarlar. Değer 1 ila 3.650 arasında bir tamsayı olabilir.
|
|
Etiket |
aliyun_logs_{key}_tags |
Günlüklere bir etiket ekler. Değer |
Örnekler
Aşağıdaki örnek şu özel günlük yapılandırmalarını kullanır:
Logtail yapılandırması ve Logstore adları: Standart çıktı günlükleri
stdout-ecikonumuna, metin dosyası günlükleri isefile-ecikonumuna kaydedilir.Proje adı:
project-eci-testMakine grubu adı:
mg-eci-test
Bunlar örnek değerlerdir. Kendi yapılandırmalarınızı kullanın ve proje adının genel olarak benzersiz olduğundan emin olun.
API
CreateContainerGroup işlemini çağırın ve Container.N.EnvironmentVar.N.Key ile Container.N.EnvironmentVar.N.Value parametrelerini kullanarak ortam değişkenlerini ayarlayın:
ContainerGroupName=test-sls
Container.1.Name=busybox
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
Container.1.Command.1=/bin/sh
Container.1.Arg.1=-c
Container.1.Arg.2=mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;done
# Collect stdout logs
Container.1.EnvironmentVar.1.Key=aliyun_logs_stdout-eci
Container.1.EnvironmentVar.1.Value=stdout
Container.1.EnvironmentVar.2.Key=aliyun_logs_stdout-eci_project
Container.1.EnvironmentVar.2.Value=project-eci-test
Container.1.EnvironmentVar.3.Key=aliyun_logs_stdout-eci_machinegroup
Container.1.EnvironmentVar.3.Value=mg-eci-test
# Collect text files
Container.1.EnvironmentVar.4.Key=aliyun_logs_file-eci
Container.1.EnvironmentVar.4.Value=/log/*.log
Container.1.EnvironmentVar.5.Key=aliyun_logs_file-eci_project
Container.1.EnvironmentVar.5.Value=project-eci-test
Container.1.EnvironmentVar.6.Key=aliyun_logs_file-eci_machinegroup
Container.1.EnvironmentVar.6.Value=mg-eci-test
Konsol
Elastic Container Instance konsolunda bir ECI örneği oluştururken Container Configurations bölümünde bir konteyner seçin, Gelişmiş Ayarlarını genişletin ve ardından değişkenlerinizi eklemek için Environment Variable seçeneğini etkinleştirin.
Stdout günlüklerini toplamak için şu ortam değişkenlerini ekleyin: aliyun_logs_stdout-eci = stdout, aliyun_logs_stdout-eci_project = project-eci-test ve aliyun_logs_stdout-eci_machinegroup = mg-eci-test. Metin dosyası günlüklerini toplamak için şu ortam değişkenlerini ekleyin: aliyun_logs_file-eci = /log/*.log, aliyun_logs_file-eci_project = project-eci-test ve aliyun_logs_file-eci_machinegroup = mg-eci-test.
Sonuçları doğrulama
Simple Log Service konsolunda hedef projeyi açarak Logstore'daki günlükleri görüntüleyin.
Standart çıktı
project-eci-test projesini açın ve stdout-eci Logstore'unu seçin. Stdout günlükleri _container_name_, _image_name_, _namespace_, _pod_name_, _pod_uid_, _source_ ve content gibi alanları içerir.
Metin dosyası
Logstore, ECI örneğinden toplanan ve içeriği hello sls olan metin dosyası günlüklerini gösterir.