All Products
Search
Document Center

Container Service for Kubernetes:Analisis log akses nginx-ingress-controller dengan SLS

Last Updated:Sep 02, 2026

Alibaba Cloud Ingress mencatat permintaan HTTP ke stdout. Aktifkan pengumpulan log saat membuat kluster, lalu gunakan Simple Log Service (SLS) untuk menganalisis log akses Nginx Ingress dan memantau status Ingress secara real-time. Topik ini menjelaskan cara menerapkan dan melihat log akses Nginx Ingress.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Aktifkan pengumpulan log untuk nginx-ingress-controller

Gunakan Konsol ACK kecuali jika Anda perlu mengotomatiskan penyiapan melalui pipeline GitOps atau CI/CD.

Konsol ACK

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Konsol ACK Clusters.

  2. Pada halaman Clusters, klik kluster target. Di panel navigasi kiri, pilih Operations > Add-ons.

  3. Pada halaman Add-ons, klik tab Networking. Pada kartu Nginx Ingress Controller, klik ikon image.png dan pilih Enable Log Collection. Klik OK.

CLI

ACK menyediakan CRD bernama AliyunLogConfig. Saat Anda membuat AliyunLogConfig, alibaba-log-controller secara otomatis menghasilkan konfigurasi SLS dan memperbarui dasbor.

Penting

Sebelum membuat AliyunLogConfig:

  • Jika Pod nginx-ingress-controller sudah ada, buat ulang Pod tersebut setelah menerapkan AliyunLogConfig agar pengumpulan log berlaku.

  • alibaba-log-controller harus versi 0.2.0.0-76648ee-aliyun atau lebih baru. Jika AliyunLogConfig sudah ada setelah memperbarui controller, hapus dan buat ulang.

  • Konfigurasi ini mengasumsikan format log ACK default. Jika Anda menyesuaikan format log, perbarui bagian processor_regex. Lihat Gunakan CRD untuk mengumpulkan log kontainer dalam mode DaemonSet.

  1. Buat file bernama k8s-nginx-ingress.yaml dengan konten berikut:

    Tetapkan IncludeLabel ke label Docker dari docker inspect. io.kubernetes.pod.namespace memilih berdasarkan namespace; io.kubernetes.container.name memilih berdasarkan kontainer. Misalnya, io.kubernetes.pod.namespace: backend-prod mengumpulkan semua kontainer dalam namespace tersebut; io.kubernetes.container.name: worker-server menargetkan kontainer tertentu. Tentukan hanya dua label ini. Untuk memfilter berdasarkan variabel lingkungan, gunakan IncludeEnv atau ExcludeEnv. Lihat Gunakan Konsol Simple Log Service untuk mengumpulkan stdout dan stderr kontainer dalam mode DaemonSet.

    Field

    Description

    Modify?

    metadata.namespace

    Namespace dari controller Ingress

    Ya, jika bukan kube-system

    spec.logstore

    Nama Logstore SLS

    Opsional

    IncludeLabel

    Label Docker yang digunakan untuk memilih kontainer

    Ya, jika mengumpulkan dari namespace tertentu

    processor_regex > Regex

    Ekspresi reguler untuk penguraian log

    Hanya jika Anda mengubah format log default

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # Nama unik untuk AliyunLogConfig ini dalam kluster.
      name: k8s-nginx-ingress
      # Tetapkan ke namespace dari controller Ingress tempat Anda ingin mengumpulkan log.
      namespace: kube-system
    spec:
      # Logstore SLS tempat log disimpan.
      logstore: nginx-ingress
      # Kode produk — jangan ubah nilai ini.
      productCode: k8s-nginx-ingress
      logtailConfig:
        inputType: plugin
        # Harus sesuai dengan metadata.name.
        configName: k8s-nginx-ingress
        inputDetail:
          plugin:
            inputs:
              - type: service_docker_stdout
                detail:
                  IncludeLabel:
                    # Kumpulkan log dari kontainer nginx-ingress-controller.
                    # Jika beberapa controller Ingress berjalan di kluster Anda,
                    # pengumpulan berdasarkan nama kontainer dapat menghasilkan log duplikat.
                    # Tinjau perilaku IncludeLabel sebelum menerapkan.
                    io.kubernetes.container.name: nginx-ingress-controller
                  Stderr: true
                  Stdout: true
            processors:
              - type: processor_regex
                detail:
                  KeepSource: false
                  # Field yang diekstraksi dari setiap baris log, berurutan:
                  Keys:
                    - client_ip
                    - x_forward_for
                    - remote_user
                    - time
                    - method
                    - url
                    - version
                    - status
                    - body_bytes_sent
                    - http_referer
                    - http_user_agent
                    - request_length
                    - request_time
                    - proxy_upstream_name
                    - upstream_addr
                    - upstream_response_length
                    - upstream_response_time
                    - upstream_status
                    - req_id
                    - host
                    - proxy_alternative_upstream_name
                  NoKeyError: true
                  NoMatchError: true
                  # Ekspresi reguler yang memetakan setiap grup tangkapan ke Keys di atas.
                  Regex: ^(\S+)\s-\s\[([^]]+)]\s-\s(\S+)\s\[(\S+)\s\S+\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\d+)\s"([^"]*)"\s"([^"]*)"\s(\S+)\s(\S+)+\s\[([^]]*)]\s(\S+?(?:,\s\S+?)*)\s(\S+?(?:,\s\S+?)*)\s(\S+?(?:,\s\S+?)*)\s(\S+?(?:,\s\S+?)*)\s(\S+)\s*(\S*)\s*\[*([^]]*)\]*.*
                  SourceKey: content

    Tabel berikut menjelaskan field yang kemungkinan besar akan Anda sesuaikan:

  2. Terapkan konfigurasi:

    kubectl apply -f k8s-nginx-ingress.yaml

Untuk menonaktifkan pengumpulan log, hapus AliyunLogConfig:

kubectl delete aliyunlogconfig k8s-nginx-ingress -n kube-system

Lihat log akses dan dasbor

  1. Masuk ke Konsol Simple Log Service.

  2. Di bagian Projects, klik proyek untuk kluster ACK Anda (bernama k8s-log-{cluster-id}).

  3. Di panel navigasi kiri, klik ikon Nginx Ingress.png, lalu pilih dasbor dari daftar.

Dasbor yang tersedia:

Dashboard

Time range

What it shows

Ingress overview

Last 24 h / last 1 min

Traffic volume, latency, error rates, geographic distribution, top URLs

Ingress access center

Last 24 h

UV/PV counts, regional distribution, top browsers and source IPs, mobile breakdown

Ingress monitoring center

Last 1 h

Real-time success rate, error proportions, latency percentiles, top Services by PV and failure rate

Ingress monitoring center for blue-green deployments

Dynamic

Side-by-side comparison of ServiceA and ServiceB metrics for safe rollouts

Ingress exceptions center

Automatic

Anomaly detection powered by SLS machine learning and time series analysis

Ingress overview

Memantau trafik tingkat website melalui nginx-ingress-controller. Metrik utama:

  • Last 24 hours: jumlah tampilan halaman (PVs), pengunjung unik (UVs), lalu lintas arah masuk/keluar, latensi rata-rata, proporsi pengguna seluler, proporsi error 5xx, proporsi error 404

  • Last 1 minute: PVs, UVs, tingkat keberhasilan permintaan, latensi rata-rata, latensi P95, latensi P99

  • Trends and distribution: tren PV selama 24 jam dan 7 hari, distribusi permintaan berdasarkan wilayah, wilayah dan kota teratas, rincian Android/iOS

  • Top URLs (last 1 hour): 10 URL dengan PV tertinggi, latensi tertinggi, error 5xx terbanyak, dan error 404 terbanyak

Ingress access center

Asal permintaan dan distribusi klien selama 24 jam: jumlah UV/PV, rincian wilayah, browser teratas, IP sumber, dan proporsi seluler.

Ingress monitoring center

Metrik real-time dari jam terakhir untuk mendeteksi dan menangani masalah:

  • Tingkat keberhasilan permintaan, proporsi 5xx, proporsi 404, dan proporsi permintaan yang tidak diteruskan ke upstream

  • Latensi rata-rata, latensi P95, latensi P99, dan latensi P999

  • Distribusi permintaan berdasarkan kode status, dan proporsi PV per Ingress

  • 10 layanan teratas berdasarkan PV, tingkat kegagalan, latensi rata-rata, dan total permintaan

Ingress monitoring center

Ingress monitoring center for blue-green deployments

Perbandingan berdampingan metrik ServiceA dan ServiceB — PV, tingkat error, persentil latensi, dan total permintaan — untuk mendeteksi regresi selama peluncuran biru-hijau.

Ingress blue-green deployment monitoring center

Ingress exceptions center

Mendeteksi anomali dalam log nginx-ingress-controller menggunakan pembelajaran mesin dan analisis deret waktu SLS.

Ingress exceptions center

Konfigurasi notifikasi

Konfigurasikan aturan notifikasi pada grafik dasbor mana pun, dengan notifikasi melalui email, chatbot DingTalk, webhook, atau SMS.

Lihat Konfigurasi aturan notifikasi.

Contoh ini membuat notifikasi yang aktif ketika proporsi error 5xx melebihi 1%, diperiksa setiap 5 menit.

  1. Di bagian Dashboard, klik Ingress Monitoring Center. Arahkan kursor ke ikon Tip di pojok kanan atas grafik 5XX Proportion dan klik Save as Alert (Old Version).

  2. Pada wizard Create Alert, tetapkan Alert Name, Associated Chart, Frequency, dan Trigger Condition. Field total merepresentasikan proporsi error 5xx; tetapkan Trigger Condition ke total > 1.

  3. Pada halaman Notifications, pilih saluran notifikasi, konfigurasi parameter, lalu klik Submit.

Berlangganan dasbor

Kirim snapshot dasbor terjadwal ke alamat email atau grup DingTalk. Lihat Berlangganan dasbor.

Contoh ini berlangganan dasbor Ingress Overview V1.2 dan mengirim snapshot harian ke grup DingTalk pada pukul 10.00.

  1. Di bagian Dashboard, klik Ingress Overview V1.2. Pilih Subscribe > Create.

  2. Pada wizard Create Subscription, tetapkan Frequency ke Daily dan 10:00. Matikan Add Watermark, lalu klik Next.

  3. Pada halaman Notifications, pilih WebHook-DingTalk Bot dari Notifications dan tetapkan Request URL ke URL webhook chatbot DingTalk Anda. Klik Submit.

Gunakan dasbor Ingress dengan ARMS

Dasbor Ingress Overview V1.2 terintegrasi dengan Application Real-Time Monitoring Service (ARMS) untuk memberikan visibilitas jejak end-to-end.

  1. Masuk ke Konsol Simple Log Service.

  2. Di bagian Projects, klik proyek untuk kluster ACK Anda.

  3. Di panel navigasi kiri, klik ikon image dan pilih Ingress Overview V1.2 dari daftar Dashboard.

  4. Di bagian Top 10 Request URLs by Latency, klik URL di kolom URL(ARMS Troubleshooting) untuk melihat detail jejak ARMS untuk layanan tersebut.

Langkah selanjutnya