All Products
Search
Document Center

Container Service for Kubernetes:Menganalisis dan memantau log akses dari nginx-ingress-controller

Last Updated:Jul 06, 2025

Container Service for Kubernetes (ACK) memungkinkan Anda mengonfigurasi komponen nginx-ingress-controller untuk kluster ACK. Komponen ini menyediakan URL yang dapat diakses oleh server di luar kluster, serta mendukung penyeimbangan beban server, terminasi SSL, dan hosting virtual berbasis nama. Anda juga dapat menggunakan nginx-ingress-controller untuk menulis data log permintaan HTTP ke stdout. Anda dapat mengaktifkan Simple Log Service untuk kluster ACK saat membuat kluster. Setelah Simple Log Service diaktifkan, Anda dapat memantau nginx-ingress-controller secara real-time dan melihat dasbor di Simple Log Service. Dasbor tersebut menampilkan statistik yang dikumpulkan dari log akses nginx-ingress-controller. Topik ini menjelaskan cara mengonfigurasi pengumpulan log untuk nginx-ingress-controller dan cara melihat log yang telah dikumpulkan.

Daftar isi

Prasyarat

  1. Komponen logtail-ds terpasang di kluster Anda.

    Secara default, logtail-ds dipasang saat Anda membuat kluster. Jika komponen ini tidak terpasang, Anda dapat memasangnya secara manual. Untuk informasi lebih lanjut, lihat Mengumpulkan Log Kontainer dari Kluster ACK.

  2. Komponen alibaba-log-controller diperbarui.

    Jalankan perintah kubectl edit deployment alibaba-log-controller -n kube-system untuk memperbarui komponen tersebut.

Mengonfigurasi pengumpulan log untuk nginx-ingress-controller

Metode 1: Gunakan konsol ACK

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi sebelah kiri, klik Add-ons.

  3. Di halaman Add-ons, klik tab Networking, temukan komponen Nginx Ingress Controller, klik ikon image.png di sudut kanan bawah kartu, lalu klik Enable Log Collection. Dalam pesan yang muncul, klik OK untuk mengaktifkan pengumpulan log.

Metode 2: Gunakan CLI

ACK mendefinisikan jenis CustomResourceDefinition (CRD) bernama AliyunLogConfig. Anda dapat membuat AliyunLogConfig untuk mengonfigurasi pengumpulan log. alibaba-log-controller secara otomatis menghasilkan konfigurasi untuk Simple Log Service untuk mengumpulkan data log dan memperbarui data di dasbor terkait.

Penting

Perhatikan item berikut saat Anda membuat AliyunLogConfig:

  • Jika nginx-ingress-controller sudah ada, Anda harus membuat ulang pod nginx-ingress-controller untuk mengaktifkan pengumpulan log setelah Anda membuat AliyunLogConfig.

  • Pastikan versi alibaba-log-controller adalah 0.2.0.0-76648ee-aliyun atau yang lebih baru. Setelah Anda memperbarui alibaba-log-controller, jika Anda menemukan bahwa AliyunLogConfig sudah dibuat, hapus AliyunLogConfig dan buat ulang.

  • AliyunLogConfig hanya berlaku untuk format log default yang ditentukan oleh ACK untuk kontroler Ingress. Jika Anda telah mengubah format log, Anda harus memodifikasi pengaturan processor_regex dalam konfigurasi AliyunLogConfig. Untuk informasi lebih lanjut, lihat Gunakan CRD untuk Mengumpulkan Log Kontainer dalam Mode DaemonSet.

  • Atur IncludeLabel ke informasi label yang diambil dengan menggunakan perintah docker inspect.

  • Namespace dan nama kontainer dalam kluster Kubernetes dipetakan secara terpisah ke label Docker berikut: io.kubernetes.pod.namespace dan io.kubernetes.container.name. Sebagai contoh, pod yang Anda buat termasuk dalam namespace backend-prod dan nama kontainernya adalah worker-server.

    • Jika Anda menentukan io.kubernetes.pod.namespace : backend-prod, log semua kontainer dalam pod di namespace yang ditentukan akan dikumpulkan.

    • Jika Anda menentukan io.kubernetes.container.name : worker-server, log kontainer yang ditentukan akan dikumpulkan.

  • Kami merekomendasikan Anda hanya menentukan label io.kubernetes.pod.namespace dan io.kubernetes.container.name. Jika Anda ingin menentukan label lain, Anda dapat mengonfigurasi parameter IncludeEnv atau ExcludeEnv. Untuk informasi lebih lanjut, lihat Gunakan Konsol Simple Log Service untuk Mengumpulkan stdout dan stderr Kontainer dalam Mode DaemonSet.

Untuk menonaktifkan pengumpulan log untuk nginx-ingress-controller, hapus AliyunLogConfig.

  1. Buat file bernama k8s-nginx-ingress.yaml dan salin template YAML berikut ke file tersebut:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # Nama AliyunLogConfig. Nama harus unik dalam kluster.
      name: k8s-nginx-ingress
      # Namespace AliyunLogConfig. Atur nilai ke namespace kontroler Ingress dari mana Anda ingin mengumpulkan log.
      namespace: kube-system
    spec:
      # Nama Logstore yang ingin Anda gunakan.
      logstore: nginx-ingress
      # Kode produk. Jangan ubah nilai ini.
      productCode: k8s-nginx-ingress
      # Konfigurasi Logtail.
      logtailConfig:
        inputType: plugin
        # Nama konfigurasi Logtail. Nama harus sama dengan nilai parameter metadata.name.
        configName: k8s-nginx-ingress
        inputDetail:
          plugin:
            inputs:
              - type: service_docker_stdout
                detail:
                  IncludeLabel: # Label kontainer Docker dari mana Anda ingin mengumpulkan log.
                    # Nama kontainer dari mana Anda ingin mengumpulkan log adalah nginx-ingress-controller.
                    # Jika Anda mengumpulkan log dari beberapa kontroler Ingress, log duplikat mungkin terkumpul. Kami merekomendasikan Anda membaca dan memahami deskripsi parameter IncludeLabel.
                    io.kubernetes.container.name: nginx-ingress-controller
                  Stderr: true
                  Stdout: true
            processors:
              - type: processor_regex # Gunakan ekspresi reguler untuk mengekstraksi bidang.
                detail:
                  KeepSource: false
                  Keys: # Bidang yang diekstraksi diurutkan dalam urutan berikut:
                    - 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 digunakan untuk mengekstraksi bidang. Jika log cocok dengan ekspresi reguler, nilai bidang sebelumnya secara otomatis ditentukan berdasarkan konten di setiap grup tangkapan.
                  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
  2. Jalankan perintah berikut untuk membuat AliyunLogConfig:

    kubectl apply -f k8s-nginx-ingress.yaml

Melihat log akses dan dasbor nginx-ingress-controller

  1. Masuk ke Konsol Simple Log Service.

  2. Di bagian Proyek, klik nama proyek yang Anda tentukan saat membuat kluster ACK. Halaman detail proyek muncul. Secara default, proyek bernama dalam format k8s-log-{cluster-id} dibuat untuk kluster ACK.

  3. Di panel navigasi sebelah kiri, klik ikon Nginx Ingress.png. Lalu, klik dasbor di daftar dasbor untuk melihat data pada dasbor tersebut.

Ikhtisar Ingress

Dasbor Ikhtisar Ingress menampilkan informasi tentang lalu lintas jaringan yang mengalir melalui nginx-ingress-controller untuk situs web. Anda dapat melihat informasi berikut:

  • Data situs web 24 jam terakhir, termasuk jumlah tampilan halaman (PV), jumlah pengunjung unik (UV), lalu lintas masuk dan keluar, latensi rata-rata, proporsi pengguna seluler, dan proporsi kesalahan 5xx dan 404.

  • Data situs web 1 menit terakhir, termasuk jumlah PV, jumlah UV, tingkat keberhasilan permintaan, latensi rata-rata, latensi P95, dan latensi P99.

  • Informasi rinci tentang permintaan dalam 24 jam terakhir, termasuk tren PV 24 jam terakhir (berdasarkan PV dalam 24 jam terakhir), tren PV 7 hari terakhir (berdasarkan PV dalam 7 hari terakhir), distribusi regional sumber permintaan, area sumber utama dan kota, proporsi pengguna seluler, serta proporsi pengguna Android dan iOS.

  • URL teratas dalam 1 jam terakhir, termasuk 10 URL dengan PV tertinggi, 10 URL dengan latensi tertinggi, 10 URL yang mengembalikan kesalahan 5xx paling banyak, dan 10 URL yang mengembalikan kesalahan 404 paling banyak.

Pusat Akses Ingress

Dasbor Pusat Akses Ingress menampilkan informasi terbaru tentang permintaan. Anda dapat memperoleh dan menganalisis data berikut untuk membantu membuat keputusan bisnis: jumlah UV dan PV dalam 24 jam terakhir, distribusi regional PV dan UV, area teratas berdasarkan permintaan, kota teratas berdasarkan permintaan, browser teratas dengan PV tertinggi, alamat IP sumber teratas dengan PV tertinggi, proporsi pengguna seluler, serta proporsi pengguna Android dan iOS.

Pusat Pemantauan Ingress

Dasbor Pusat Pemantauan Ingress menyediakan data pemantauan dan peringatan waktu nyata untuk situs web. Anda dapat melihat data berikut dalam 1 jam terakhir: tingkat keberhasilan permintaan, proporsi kesalahan 5xx, proporsi kesalahan 404, proporsi permintaan yang tidak diteruskan, latensi rata-rata, latensi P95, latensi P99, latensi P999, distribusi permintaan berdasarkan kode status, proporsi PV di setiap Ingress, 10 Layanan teratas dengan PV tertinggi, 10 Layanan teratas dengan tingkat kegagalan permintaan tertinggi, 10 Layanan teratas dengan latensi rata-rata tertinggi, dan 10 Layanan teratas dengan permintaan terbanyak.

Ingress监控中心

Pusat Pemantauan Ingress untuk penerapan blue-green

Dasbor Pusat Pemantauan Ingress untuk penerapan blue-green menampilkan data pemantauan waktu nyata dari Layanan yang digunakan untuk mengekspos versi aplikasi lama dan baru. Dasbor ini juga membandingkan data pemantauan Layanan tersebut. Ini memungkinkan Anda mengidentifikasi pengecualian dan mengembalikan versi aplikasi pada kesempatan pertama. Anda harus menentukan ServiceA dan ServiceB untuk perbandingan data pemantauan. Dasbor menampilkan data pemantauan dinamis berikut untuk setiap Layanan: jumlah PV, proporsi kesalahan 5xx, tingkat keberhasilan permintaan, latensi rata-rata, latensi P95, latensi P99, latensi P999, dan jumlah permintaan.

Ingress蓝绿发布监控中心

Pusat Pengecualian Ingress

Pusat Pengecualian Ingress secara otomatis mendeteksi anomali dalam log nginx-ingress-controller. Layanan ini menggunakan algoritma pembelajaran mesin yang disediakan oleh Simple Log Service dan algoritma analisis deret waktu untuk meningkatkan efisiensi deteksi.

Ingress异常检测中心

Konfigurasi Peringatan

Simple Log Service memungkinkan analitik log interaktif dan menyediakan dasbor visual. Anda juga dapat menggunakan Simple Log Service untuk mengonfigurasi peringatan berdasarkan data pada dasbor. Anda dapat memilih satu atau lebih metode notifikasi peringatan, seperti email, webhook chatbot DingTalk, webhook kustom, dan pesan Short Message Service (SMS).

Untuk informasi lebih lanjut tentang cara mengonfigurasi peringatan, lihat Konfigurasi Aturan Peringatan.

Contoh berikut menjelaskan cara mengonfigurasi peringatan berdasarkan proporsi kesalahan 5xx. Setelah Anda mengonfigurasi peringatan, sistem memeriksa apakah kondisi peringatan terpenuhi setiap 5 menit. Jika proporsi kesalahan 5xx dalam rentang waktu yang ditentukan mencapai 1%, peringatan akan dipicu.

  1. Di bagian Dasbor, klik dasbor Ingress Monitoring Center. Di halaman Pusat Pemantauan Ingress, gerakkan pointer ke ikon 提示 di sudut kanan atas grafik 5XX Proportion dan klik Save as Alert (Old Version).

    配置告警

  2. Di wizard Create Alert, atur Alert Name, Associated Chart, Frequency, dan Trigger Condition. Bidang total dalam pernyataan kueri menunjukkan proporsi kesalahan 5XX. Tentukan total > 1 di bidang Kondisi Pemicu.

  3. Di halaman wizard Notifications, pilih satu atau lebih metode peringatan berdasarkan kebutuhan Anda dan atur parameter. Lalu, klik Submit untuk membuat aturan peringatan.

Berlangganan ke dasbor

Simple Log Service memungkinkan Anda berlangganan ke dasbor. Fitur ini mengambil snapshot dari dasbor dan mengirimkan snapshot melalui email atau pesan grup DingTalk pada interval tertentu.

Untuk informasi lebih lanjut tentang cara berlangganan ke dasbor, lihat Berlangganan ke Dasbor.

Contoh berikut menjelaskan cara berlangganan ke dasbor Ikhtisar Ingress. Setelah Anda berlangganan ke dasbor, pesan dikirim pada pukul 10:00 setiap hari ke grup DingTalk yang ditentukan.

  1. Di bagian Dasbor, klik dasbor Ingress Overview V1.2. Di halaman Ikhtisar Ingress V1.2, pilih Subscribe > Create.

  2. Di wizard Create Subscription, pilih Harian dan 10:00 di bidang Frekuensi. Matikan Add Watermark. Lalu, klik Next.

  3. Di halaman wizard Notifikasi, pilih WebHook-DingTalk Bot dari daftar drop-down Notifikasi dan atur Request URL ke URL webhook bot chat DingTalk Anda. Lalu, klik Submit untuk menyelesaikan konfigurasi.

Gunakan Dasbor Ingress dengan ARMS

  1. Masuk ke Konsol Log Service.

  2. Di bagian Projects, klik nama proyek yang Anda tentukan saat membuat kluster ACK. Halaman detail proyek muncul. Secara default, proyek bernama dalam format k8s-log-{cluster-id} dibuat untuk kluster ACK.

  3. Di panel navigasi sebelah kiri, klik ikon image. Klik Ingress Overview V1.2 di daftar Dashboard untuk mendapatkan informasi yang diperlukan. Sebagai contoh, Anda dapat menemukan bagian Top 10 Request URLs by Latency dan memeriksa bidang URL(ARMS Troubleshooting) untuk melihat 10 URL permintaan teratas yang diurutkan berdasarkan latensi. Anda dapat mengklik URL untuk pergi ke halaman kueri jejak ARMS dari Layanan yang sesuai. Anda dapat melihat detail jejak Layanan di konsol ARMS.

Referensi

Untuk informasi lebih lanjut tentang cara memfilter log yang dikumpulkan, lihat Plugin Tambahan: Filter Log dengan Ekspresi Reguler.