全部产品
Search
文档中心

Container Service for Kubernetes:Kumpulkan log Log4j dari aplikasi Java ke SLS

更新时间:Jul 02, 2025

Dengan mengonfigurasi Log4j Appender di YAML beban kerja, Anda dapat menulis log dari aplikasi Java di kluster Anda ke proyek Alibaba Cloud Simple Log Service (SLS), mencapai pengumpulan log non-intrusif.

Log4j adalah kerangka kerja logging open source yang dikelola oleh Apache, dirancang khusus untuk aplikasi Java. Komponen inti Log4j meliputi Appenders (target output), Layouts (format output), dan Filters. Dengan mengonfigurasi Appenders, Anda dapat menentukan tujuan transmisi log, seperti konsol dan file.

Prasyarat

  • Sebuah kluster ACK telah dibuat.

  • Sebuah AccessKey telah dibuat untuk mengintegrasikan Log4j Appender dalam aplikasi.

    Untuk memastikan keamanan akun, kami sarankan menggunakan pengguna RAM (bukan akun Alibaba Cloud) dan membuat AccessKey yang sesuai.

Langkah 1: Konfigurasikan Log4j Appender di SLS

Langkah ini membimbing Anda untuk membuat proyek SLS dan penyimpanan log. Setelah mengonfigurasi sumber data penyimpanan log sebagai Log4j Appender, Anda dapat mengirimkan log aplikasi Java langsung ke SLS.

Disarankan untuk membuat proyek SLS di wilayah yang sama dengan kluster Anda. Dengan cara ini, data log dapat ditransmisikan melalui jaringan internal, menghindari biaya bandwidth eksternal dan latensi jaringan yang disebabkan oleh transmisi lintas wilayah.

Untuk informasi lebih lanjut tentang penagihan proyek SLS, lihat Ikhtisar Penagihan.
  1. Buat proyek SLS.

    Berikut ini memperkenalkan parameter inti. Parameter lainnya dapat tetap menjadi default. Untuk informasi lebih lanjut, lihat Kelola proyek.

    • Region: Disarankan untuk memilih wilayah yang sama dengan kluster ACK Anda. Dalam contoh ini, China (Hangzhou) dipilih.

    • Project Name: Dalam contoh ini, k8s-log4j digunakan.

  2. Buat penyimpanan log di proyek.

    Dalam contoh ini, Logstore Name adalah k8s-logstore, dan parameter lainnya tetap menjadi default. Untuk informasi lebih lanjut, lihat Kelola penyimpanan log.

  3. Setelah k8s-logstore dibuat, ikuti petunjuk halaman untuk mengakses data.

    Membuat data akses wizard

  4. Cari dan temukan kartu akses Log4j, lalu ikuti petunjuk halaman untuk menyelesaikan akses.

    Dalam contoh ini, konfigurasi default digunakan. Anda dapat mengonfigurasi berdasarkan skenario penggunaan data log spesifik Anda.Menyesuaikan data

Langkah 2: Integrasikan Log4j di aplikasi Anda

Langkah ini menunjukkan cara mengintegrasikan plugin Log4j Appender ke aplikasi Java dengan menerapkan contoh aplikasi Spring Boot. Setelah integrasi, ketika kontainer dimulai, konfigurasi SLS dilewatkan melalui variabel lingkungan JAVA_OPTS, dan Log4j secara otomatis membaca parameter serta mengirimkan log ke SLS secara real-time.

  1. Peroleh file demo-deployment.yaml dan konfigurasikan variabel lingkungan JAVA_OPTS.

    Untuk informasi lebih lanjut tentang cara memperoleh file, lihat demo-deployment.

    Lihat file contoh

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: log4j-appender-demo-spring-boot
      labels:
        app: log4j-appender
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: log4j-appender
      template:
        metadata:
          labels:
            app: log4j-appender
        spec:
          containers:
          - name: log4j-appender-demo-spring-boot
            image: registry.cn-hangzhou.aliyuncs.com/jaegertracing/log4j-appender-demo-spring-boot:0.0.2
            env:
              - name: JAVA_OPTS            #  Atur variabel lingkungan JAVA_OPTS
                value: "-Dproject={your_project} -Dlogstore={your_logstore} -Dendpoint={your_endpoint} -Daccess_key_id={your_access_key_id} -Daccess_key={your_access_key_secret}"
            ports:
            - containerPort: 8080

    Deskripsi konfigurasi JAVA_OPTS:

    • -Dproject: Nama proyek SLS. Dalam contoh ini, k8s-log4j digunakan.

    • -Dlogstore: Nama penyimpanan log SLS. Dalam contoh ini, k8s-logstore digunakan.

    • -Dendpoint: Titik akhir layanan SLS. Konfigurasikan titik akhir layanan berdasarkan wilayah tempat proyek Anda berada. Untuk informasi lebih lanjut, lihat Titik akhir. Dalam contoh ini, cn-hangzhou.log.aliyuncs.com digunakan.

    • -Daccess_key_id: Ganti dengan ID AccessKey Anda.

    • -Daccess_key: Ganti dengan Rahasia AccessKey Anda.

  2. Buat Deployment.

    kubectl create -f demo-deployment.yaml
  3. Peroleh file demo-Service.yaml. Anda dapat mempertahankan konfigurasi default.

    Untuk alamat file, lihat demo-Service.

    Lihat file contoh

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: log4j-appender
      name: log4j-appender-demo-spring-boot-svc
      namespace: default
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
      selector:
        app: log4j-appender
      type: LoadBalancer
  4. Terapkan demo-Service.yaml untuk membuat Layanan.

    kubectl create -f demo-service.yaml

Langkah 3: Uji fungsi pengumpulan log

Setelah Deployment dan Layanan berhasil diterapkan, Anda dapat melihat IP akses eksternal Layanan, yaitu EXTERNAL-IP, akses layanan untuk menghasilkan log, dan verifikasi apakah log berhasil ditulis ke SLS.

  1. Lihat EXTERNAL-IP dari Layanan.

    kubectl get svc

    Output yang diharapkan:

    NAME                                  TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE
    log4j-appender-demo-spring-boot-svc   LoadBalancer   172.21.XX.XX   120.55.XXX.XXX   8080:30398/TCP   1h
  2. Jalankan perintah login untuk menguji apakah log kluster berhasil dihasilkan.

    Ganti K8s_SERVICE_IP dengan EXTERNAL-IP.

    curl http://${K8S_SERVICE_IP}:8080/login?name=bruce
    Anda dapat melihat koleksi API lengkap di GitHub log4j-appender-demo.

Langkah 4: Lihat log di konsol SLS

Anda dapat masuk ke konsol SLS untuk menanyakan dan menganalisis log.

  1. Masuk ke konsol Simple Log Service.

  2. Di bagian Projects, klik proyek target untuk masuk ke halaman detail proyek.

  3. Klik ikon Ikon di sebelah kanan penyimpanan log dan pilih Search & Analysis untuk melihat log yang dihasilkan oleh kluster.

    Query & Analysis

Referensi