Tüm Ürünler
Search
Belge Merkezi

Serverless App Engine:Günlük toplama işlemini ApsaraMQ for Kafka'ya yapılandırma

Son Güncelleme:Oct 06, 2026

SAE, uygulama örneklerinden standart çıktı (stdout) ve dosya günlüklerini toplayarak bunları ApsaraMQ for Kafka konularına iletebilir. Bu özellik, Simple Log Service (SLS) günlük toplama yeteneklerini genişletir; özellikle günlükleri SLS projelerine toplayamadığınız durumlarda veya RAM kullanıcılarının SLS'deki günlükleri görüntüleme izninin olmadığı senaryolarda oldukça kullanışlıdır. Kafka üzerinden günlük verilerini analiz ve uzun vadeli depolama amacıyla Elasticsearch gibi alt sistemlere yönlendirebilirsiniz.

Önkoşullar

Başlamadan önce aşağıdaki gereksinimlerin karşılandığından emin olun:

SAE gereksinimleri:

  • Her uygulama örneğinde en az 0,25 Çekirdek CPU ve 250 MB kullanılabilir kaynak bulunmalıdır.

ApsaraMQ for Kafka gereksinimleri:

Kafka kullanım sınırları ve faturalama ayrıntıları için Sınırlamalar ve Faturalandırma genel bakışı konularına bakın.

Uygulama oluştururken günlük toplamayı yapılandırma

  1. SAE konsoluna giriş yapın. Sol gezinme bölmesinde Applications > Applications seçeneğini seçin. Namespace açılır listesinden bir bölge ve ad alanı seçin, ardından Create Application düğmesini tıklayın.

  2. Basic Information bölümünde uygulama bilgilerini yapılandırın ve Next: Advanced Settings düğmesini tıklayın.

  3. Log Settings bölümünü genişletin ve Activate Kafka seçeneğini etkinleştirin. Aşağıdaki parametreleri yapılandırın:

    ParametreZorunluAçıklama
    Kafka InstanceEvetHedef ApsaraMQ for Kafka örneği.
    Collection Log TypeEvetToplanacak günlük türü. File Logs (Log Path In Container) birden fazla toplama kuralını destekler. Container Standard Output Logs yalnızca bir toplama kuralını destekler ve vSwitch'iniz bir önerilen alanda bulunduğunda kullanılabilir.
    Log SourceEvet (yalnızca dosya günlükleri için)Konteyner içindeki günlük dosyasının tam yolu, örneğin /tmp0/cjsc.log. Düzenli ifadeler desteklenir. Aynı biçime sahip birden çok dosyayı eşleştirmek için /xxx/xxx/xxx/*.log gibi joker karakterli bir yol kullanın.
    Önemli

    Günlük kaynak dizininde diğer önemli dosyaları saklamayın — bu dizindeki dosyaların üzerine yazılabilir.

    Kafka Topic NameEvetGünlüklerin teslim edileceği mevcut ApsaraMQ for Kafka konusu.
  4. Create Application düğmesini tıklayın.

  5. Yapılandırmayı doğrulayın. Uygulama dağıtıldıktan sonra SAE, kurallarınıza göre günlük toplamaya başlar. Uygulama ayrıntıları sayfasının sol gezinme bölmesinde Log Management > Persistent Logs seçeneğini seçin. Log collection to Kafka sekmesine tıklayın. Günlükler görünüyorsa toplama kuralı etkindir.

Mevcut bir uygulamayı dağıtırken günlük toplamayı yapılandırma

Uyarı

Bir uygulamayı yeniden dağıtmak uygulamanın yeniden başlatılmasına neden olur. İş etkisini en aza indirmek için dağıtımı yoğun olmayan saatlerde gerçekleştirin.

Bu bölüm, bir veya daha fazla örneği olan uygulamalar için geçerlidir. Sıfır örneği olan uygulamalar için Uygulamayı güncelleme konusuna bakın.
  1. SAE konsoluna giriş yapın. Sol gezinme bölmesinde Applications > Applications seçeneğini seçin. Bir bölge ve ad alanı seçin, ardından uygulama adını tıklayın.

  2. Basic Information sayfasında Deploy Application düğmesini tıklayın.

  3. Log Settings bölümünde Activate Kafka seçeneğini etkinleştirin. Parametreleri önceki bölümdeki tabloda açıklandığı gibi yapılandırın.

  4. OK düğmesini tıklayın.

    Önemli

    Bir günlük dosyası aynı anda yalnızca bir Kafka konusuna teslim edilebilir. Aşamalı yayınlama veya kanarya yayınlama kullanıyor ve günlük kaynağını aynı tutarken konuyu değiştiriyorsanız, tüm örnekler güncellenene kadar günlükler orijinal konuya teslim edilmeye devam eder.

  5. Yapılandırmayı doğrulayın. Uygulama dağıtıldıktan sonra sol gezinme bölmesinde Log Management > Persistent Logs seçeneğini seçin. Günlüklerin göründüğünü onaylamak için Log collection to Kafka sekmesine tıklayın.

Günlük biçimi

ApsaraMQ for Kafka'ya teslim edilen her mesaj, aşağıdaki alanlara sahip bir JSON nesnesidir:

{
    "file":"/home/admin/apache-tomcat-8.5.42/logs/localhost.2022-03-01.log",
    "host":"test-kafka-9527eec8-b2c1-4f03-9178-5dac0fe16d07-*****",
    "message":"01-Mar-2022 15:09:36.016 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath",
    "topic":"test2"
}
Alan Açıklama
file Konteyner içindeki toplanan günlük dosyasının yolu.
host Günlüğü üreten uygulama örneğinin adı.
message Günlük içeriği.
topic Günlüğün alındığı ApsaraMQ for Kafka konusu.

Çok satırlı günlükler

SAE, her satır sonunu (\n) bir günlük kaydı sınırı olarak kabul eder. Uygulamanız Java istisna yığın izlemeleri gibi çok satırlı girişler yazıyorsa her satır ayrı bir mesaj olarak teslim edilir. Java uygulamalarında günlüklerin otomatik olarak tek bir satırda birleştirilmesi durumunda hata bildirildiğini unutmayın:

java.lang.RuntimeException: testLog
    at cn.niutong.controller.TestController.heathc(TestController.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
  at ...

Çok satırlı girişleri birlikte tutmak için uygulamanızda günlük dosyasına yazmadan önce bunları tek satırlık bir JSON dizesi olarak serileştirin.

Sunucu tarafında günlük birleştirme gibi gelişmiş kullanım durumları için teknik destek almak üzere DingTalk grubu 32874633'e katılın.

SSS

Günlük kaynak yolları için joker karakterler destekleniyor mu?

Evet. Bir dizindeki tüm dosyaları eşleştirmek için yıldız işareti (*) kullanın. Örneğin, /tmp/logs/*.log ifadesi /tmp/logs/ dizinindeki tüm .log dosyalarını eşleştirir.

Neden günlükler toplanmıyor?

En yaygın neden, SAE ile Kafka örneği arasındaki ağ bağlantısı sorunudur. Aşağıdakileri kontrol edin:

  • Ağ yolu: Uygulamanız için SAE Webshell'i açın ve bağlantıyı test etmek amacıyla Kafka örneği uç noktasına bir telnet komutu çalıştırın. Ayrıntılar için Uygulama sağlığını kontrol etmek için Webshell özelliğini kullanma konusuna bakın.

  • VPC ve izin listesi: SAE uygulaması ile Kafka örneğinin aynı VPC'de bulunduğunu ve Kafka IP adresi izin listesinin SAE vSwitch CIDR bloğunu içerdiğini onaylayın.

Ağ erişilebilir olduğu halde günlükler hala eksikse teknik destek için DingTalk grubu 32874633'e katılın.