全部产品
Search
文档中心

Container Service for Kubernetes:FAQ Observabilitas

更新时间:Dec 30, 2025

Kategori

Tautan

Pengumpulan log

Pemantauan Aplikasi

Managed Service for Prometheus

Pemantauan Prometheus open source (komponen ack-prometheus-operator)

Manajemen peringatan

Masalah lainnya

Pengumpulan log

Bagaimana cara memecahkan masalah error pengumpulan log kontainer?

Gejala

Jika Anda telah mengikuti petunjuk dalam Kumpulkan log kontainer kluster ACK tetapi tidak menemukan log pada halaman Preview di konsol Simple Log Service, pengumpulan log mungkin gagal. Untuk memecahkan masalah ini, periksa konfigurasi, status komponen dan node pengumpulan, serta log operasional kontainer pengumpulan log.

Sebelum memulai

Perhatikan poin-poin berikut saat mengumpulkan log dari file kontainer.

  • Komponen pengumpulan log hanya mengumpulkan log inkremental. Jika file log tidak diperbarui setelah konfigurasi Logtail diterapkan, komponen tidak akan mengumpulkan log dari file tersebut. Untuk informasi lebih lanjut, lihat Baca log.

  • Anda hanya dapat mengumpulkan log dari file yang menggunakan penyimpanan kontainer default atau yang dimount ke path lokal. Metode penyimpanan lain tidak didukung.

  • Setelah log dikumpulkan, Anda harus membuat indeks sebelum dapat melakukan kueri dan analisis log di Logstore. Untuk informasi lebih lanjut, lihat Buat indeks.

Langkah 1: Periksa konfigurasi pengumpulan

Verifikasi bahwa konfigurasi Logtail benar. Pastikan semua pengaturan pengumpulan log akurat dan kontainer terus menghasilkan log.

Konsol

  1. Pada tab Resource Object Browser, cari clusteraliyunpipelineconfig dan klik hasil ClusterAliyunPipelineConfig.

  2. Pada panel ClusterAliyunPipelineConfig, temukan resource target dan klik Edit YAML di kolom Actions.

kubectl

  1. Jalankan perintah berikut untuk melihat semua konfigurasi Logtail yang dibuat oleh AliyunPipelineConfig.

    kubectl get clusteraliyunpipelineconfigs
  2. Lihat detail dan status konfigurasi Logtail yang dibuat oleh AliyunPipelineConfig.

    Jalankan perintah berikut. Ganti <config_name> dengan nama AliyunPipelineConfig sesuai kebutuhan.

    kubectl get clusteraliyunpipelineconfigs <config_name> -o yaml

Untuk informasi lebih lanjut tentang item konfigurasi, lihat Parameter CRD.

Item konfigurasi

Ikhtisar checkpoint

Contoh

project

Periksa apakah nama proyek benar. Login ke Simple Log Service console, dan temukan nama proyek yang dihasilkan oleh komponen pengumpulan log yang diinstal.

k8s-log-<YOUR_CLUSTER_ID>

inputs.FilePaths

Periksa apakah path file log ada dan menghasilkan output. Untuk informasi lebih lanjut, lihat Pemetaan path file kontainer.

/var/log/nginx/*.log dan lainnya

inputs.EnableContainerDiscovery

Fitur penemuan kontainer diaktifkan.

true

flushers.Endpoint

Endpoint Simple Log Service benar.

cn-hangzhou.log.aliyuncs.com

flushers.Region

Informasi wilayah benar.

cn-hangzhou

File YAML contoh untuk konfigurasi CRD-AliyunPipelineConfig

apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
  # Tetapkan nama resource, yang harus unik dalam kluster Kubernetes saat ini. Nama ini juga digunakan untuk konfigurasi pengumpulan yang dibuat. Konfigurasi tidak akan berlaku jika namanya duplikat.
  name: example-k8s-file
spec:
  # Tentukan proyek tujuan.
  project:
    name: k8s-log-<YOUR_CLUSTER_ID>
  logstores:
    # Buat Logstore bernama k8s-file.
    - name: k8s-file
  # Definisikan konfigurasi pengumpulan.
  config:
    # Contoh log (opsional).
    sample: |
      2024-06-19 16:35:00 INFO test log
      line-1
      line-2
      end
    # Definisikan plugin input.
    inputs:
      # Gunakan plugin input_file untuk mengumpulkan log teks multi-baris dari kontainer.
      - Type: input_file
        # Path file di dalam kontainer.
        FilePaths:
          - /data/logs/app_1/**/test.LOG
        # Aktifkan fitur penemuan kontainer.
        EnableContainerDiscovery: true
        # Tambahkan kondisi filter informasi kontainer. Hubungan antar opsi adalah "AND".
        CollectingContainersMeta: true
        ContainerFilters:
          # Tentukan namespace pod tempat kontainer yang akan dikumpulkan berada. Mendukung pencocokan ekspresi reguler.
          K8sNamespaceRegex: default
          # Tentukan nama kontainer yang akan dikumpulkan. Mendukung pencocokan ekspresi reguler.
          IncludeK8sLabel:
            app: ^(.*app.*)$
        # Aktifkan pengumpulan log multi-baris. Untuk pengumpulan log satu baris, hapus konfigurasi ini.
        Multiline:
          # Pilih mode pola awal kustom.
          Mode: custom
          # Konfigurasikan ekspresi reguler pola awal.
          StartPattern: '\d+-\d+-\d+\s\d+:\d+:\d+'
    # Definisikan plugin pemrosesan.
    processors:
      # Gunakan plugin penguraian regex untuk mengurai log.
      - Type: processor_parse_regex_native
        # Nama field sumber.
        SourceKey: content
        # Ekspresi reguler untuk penguraian. Gunakan tanda kurung "()" untuk menangkap field yang akan diekstrak.
        Regex: (\d+-\d+-\d+\s\S+)(.*)
        # Daftar field yang diekstrak.
        Keys: ["time", "detail"]
    # Definisikan plugin output.
    flushers:
      # Gunakan plugin flusher_sls untuk mengeluarkan ke Logstore yang ditentukan.
      - Type: flusher_sls
        # Pastikan Logstore ini ada.
        Logstore: k8s-file
        # Pastikan endpoint benar.
        Endpoint: cn-beijing.log.aliyuncs.com
        Region: cn-beijing
        TelemetryType: logs

Langkah 2: Periksa status komponen pengumpulan dan kelompok mesin

Konfirmasi bahwa komponen pengumpulan, seperti Logtail atau LoongCollector, telah diterapkan dan berjalan di setiap node pekerja, serta jumlah heartbeat OK dari kontainer pengumpulan sesuai dengan jumlah node pekerja.

  1. Periksa status pod komponen pengumpulan.

    1. Hubungkan ke kluster.

    2. Jalankan perintah berikut untuk memeriksa apakah semua pod pengumpulan terkait berada dalam status Running. Jika sebuah pod berada dalam status abnormal, lihat Pecahkan masalah pengecualian pod.

      kubectl get pods -n kube-system -l 'k8s-app in (loongcollector-ds,logtail)' 

      Outputnya mirip dengan berikut:

      NAME                      READY   STATUS    RESTARTS   AGE
      loongcollector-ds-fn5zn   1/1     Running   0          3d19h
      loongcollector-ds-ks76g   1/1     Running   0          3d19h
  2. Periksa status heartbeat kelompok mesin.

    1. Login ke Simple Log Service console.

    2. Pada bagian Projects, klik yang diinginkan.

      image

    3. Di panel navigasi kiri, pilih imageResource > Machine Groups.

    4. Di daftar kelompok mesin, klik kelompok mesin tujuan.

    5. Pada halaman Machine Group Configuration, catat jumlah mesin dengan status heartbeat OK. Verifikasi bahwa jumlah ini sesuai dengan jumlah node pekerja di kluster. Untuk informasi lebih lanjut, lihat Solusi Status Heartbeat.

Langkah 3: Lihat log operasional LoongCollector (Logtail)

Periksa kontainer pengumpulan untuk mencari error pengumpulan atau pesan kesalahan guna menganalisis lebih lanjut penyebab masalah.

  1. Masuk ke pod komponen pengumpulan.

    kubectl exec -it -n kube-system loongcollector-ds-XXXX  -- bash
  2. Log Logtail disimpan di direktori /usr/local/ilogtail/ kontainer Logtail. Nama filenya adalah ilogtail.LOG dan logtail_plugin.LOG. Anda dapat login ke kontainer Logtail dan menjalankan perintah berikut untuk melihat file log:

    # Buka direktori /usr/local/ilogtail/.
    cd /usr/local/ilogtail
    
    # Lihat file ilogtail.LOG dan logtail_plugin.LOG.
    cat ilogtail.LOG
    cat logtail_plugin.LOG
  3. Lihat metrik alarm log error dan temukan solusi yang sesuai di Jenis error umum untuk pengumpulan data di Simple Log Service.

Operasi O&M lainnya

  • Lihat status komponen Simple Log Service di kluster Kubernetes

    Lihat status komponen Simple Log Service di kluster Kubernetes

    Jalankan perintah berikut untuk melihat status dan informasi deployment Simple Log Service.

    kubectl get deploy -n kube-system | grep -E 'alibaba-log-controller|loongcollector-operator'

    Hasil berikut dikembalikan:

    NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
    alibaba-log-controller   1/1     1            1           11d

    Jalankan perintah berikut untuk melihat informasi status resource DaemonSet.

    kubectl get ds  -n kube-system | grep -E 'logtail-ds|loongcollector-ds'

    Hasil berikut dikembalikan:

    NAME         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR  AGE
    logtail-ds   2         2         2       2            2           **ux           11d
  • Lihat nomor versi, alamat IP, dan waktu startup Logtail

    Informasi ini disimpan di file /usr/local/ilogtail/app_info.json kontainer Logtail.

    kubectl exec logtail-ds-****k -n kube-system cat /usr/local/ilogtail/app_info.json

    Hasil yang mirip dengan berikut dikembalikan.

    {
       "UUID" : "",
       "hostname" : "logtail-****k",
       "instance_id" : "0EB****_172.20.4.2_1517810940",
       "ip" : "172.20.4.2",
       "logtail_version" : "0.16.2",
       "os" : "Linux; 3.10.0-693.2.2.el7.x86_64; #1 SMP Tue Sep 12 22:26:13 UTC 2017; x86_64",
       "update_time" : "2018-02-05 06:09:01"
    }
  • Transfer log kluster ACK ke proyek di Akun Alibaba Cloud lain

Mengapa saya tidak dapat menghapus proyek?

Gejala

Topik ini menjelaskan cara menghapus proyek dan apa yang harus dilakukan jika Anda tidak dapat menghapus proyek serta menerima pesan error "izin tidak mencukupi".

Solusi

Untuk informasi lebih lanjut tentang cara menghapus proyek atau Logstore, lihat Kelola proyek dan Kelola Logstore. Jika proyek gagal dihapus, lihat Apa yang harus saya lakukan jika muncul pesan error "Operasi ditolak, izin tidak mencukupi" saat menghapus proyek?

Jenis error umum untuk pengumpulan data di Simple Log Service

Jenis error

Deskripsi

Solusi

LOG_GROUP_WAIT_TOO_LONG_ALARM

Paket data menunggu terlalu lama untuk dikirim setelah dihasilkan.

Periksa apakah paket dikirim sesuai harapan. Error ini dapat disebabkan oleh volume data yang melebihi konfigurasi default, kuota tidak mencukupi, atau masalah jaringan.

LOGFILE_PERMISSION_ALARM

Logtail tidak memiliki izin untuk membaca file yang ditentukan.

Periksa akun startup Logtail di server. Atasi masalah ini dengan menjalankan Logtail sebagai pengguna root.

SPLIT_LOG_FAIL_ALARM

Ekspresi reguler untuk awal baris tidak cocok dengan konten log, sehingga Logtail tidak dapat memisahkan log menjadi baris terpisah.

Periksa apakah ekspresi reguler benar.

Untuk log satu baris, atur ekspresi reguler menjadi .*.

MULTI_CONFIG_MATCH_ALARM

Secara default, satu file log hanya dapat cocok dengan satu konfigurasi Logtail. Jika beberapa konfigurasi Logtail cocok dengan file yang sama, hanya satu yang berlaku.

Catatan

Beberapa konfigurasi Logtail dapat digunakan untuk mengumpulkan output standar dari Docker.

REGEX_MATCH_ALARM

Dalam mode ekspresi reguler penuh, konten log tidak cocok dengan ekspresi reguler yang ditentukan.

Salin contoh log dari pesan error untuk menghasilkan ekspresi reguler baru.

PARSE_LOG_FAIL_ALARM

Dalam mode seperti JSON dan delimiter, penguraian gagal karena format log tidak sesuai dengan format yang ditentukan.

Klik pesan error untuk melihat laporan error detail.

CATEGORY_CONFIG_ALARM

Konfigurasi pengumpulan Logtail tidak valid.

Penyebab umum adalah ekspresi reguler gagal mengekstrak path file untuk digunakan sebagai topik.

LOGTAIL_CRASH_ALARM

Logtail crash karena melebihi batas penggunaan resource server.

Tingkatkan batas penggunaan CPU dan memori. Untuk informasi lebih lanjut, lihat Atur parameter startup Logtail.

REGISTER_INOTIFY_FAIL_ALARM

Logtail gagal mendaftarkan listener log di Linux. Error ini dapat terjadi karena Logtail tidak memiliki izin untuk mengakses folder, atau folder tersebut telah dihapus.

Periksa apakah Logtail memiliki izin untuk mengakses folder atau apakah folder tersebut telah dihapus.

DISCARD_DATA_ALARM

Resource CPU yang dikonfigurasi untuk Logtail tidak mencukupi, atau pembatasan kecepatan dipicu saat data dikirim melalui jaringan.

Tingkatkan batas penggunaan CPU atau batas konkurensi pengiriman jaringan. Untuk informasi lebih lanjut, lihat Atur parameter startup Logtail.

SEND_DATA_FAIL_ALARM

  • Pasangan Kunci Akses belum dibuat untuk Akun Alibaba Cloud Anda.

  • Server tempat klien Logtail berada tidak dapat terhubung ke Simple Log Service, atau kualitas jaringan buruk.

  • Kuota write di server Simple Log Service tidak mencukupi.

  • Buat Pasangan Kunci Akses untuk Akun Alibaba Cloud Anda.

  • Periksa file konfigurasi lokal di /usr/local/ilogtail/ilogtail_config.json. Kemudian, jalankan perintah curl <Server address> untuk memeriksa apakah respons dikembalikan.

  • Tingkatkan jumlah shard untuk logstore guna mendukung volume write data yang lebih tinggi.

REGISTER_INOTIFY_FAIL_ALARM

Logtail gagal mendaftarkan watcher inotify untuk direktori log.

Periksa apakah direktori ada dan verifikasi pengaturan izinnya.

SEND_QUOTA_EXCEED_ALARM

Traffic write log melebihi batas yang dikonfigurasi.

Tingkatkan jumlah shard di konsol. Untuk informasi lebih lanjut, lihat Pisahkan shard.

READ_LOG_DELAY_ALARM

Pengumpulan log tertunda dan ketinggalan dari generasi log. Error ini biasanya disebabkan oleh resource CPU Logtail yang tidak mencukupi atau pembatasan kecepatan pengiriman jaringan.

Tingkatkan batas penggunaan CPU atau batas konkurensi pengiriman jaringan. Untuk informasi lebih lanjut, lihat Atur parameter startup Logtail.

Jika Anda mengimpor data historis, sejumlah besar data dikumpulkan dalam waktu singkat. Anda dapat mengabaikan error ini.

DROP_LOG_ALARM

Pengumpulan log tertunda, dan jumlah file log rotated yang belum diproses melebihi 20. Error ini biasanya disebabkan oleh resource CPU Logtail yang tidak mencukupi atau pembatasan kecepatan pengiriman jaringan.

Tingkatkan batas penggunaan CPU atau batas konkurensi pengiriman jaringan. Untuk informasi lebih lanjut, lihat Atur parameter startup Logtail.

LOGDIR_PERMISSION_ALARM

Logtail tidak memiliki izin untuk membaca direktori pemantauan log.

Periksa apakah direktori pemantauan log ada. Jika ada, verifikasi pengaturan izinnya.

ENCODING_CONVERT_ALARM

Konversi encoding gagal.

Periksa apakah format encoding yang dikonfigurasi sesuai dengan format encoding aktual log.

OUTDATED_LOG_ALARM

Log kedaluwarsa karena timestamp-nya lebih dari 12 jam lebih tua daripada waktu pengumpulan. Penyebab yang mungkin termasuk:

  • Penguraian log tertunda lebih dari 12 jam.

  • Field waktu kustom dikonfigurasi salah.

  • Output waktu dari program pencatatan log abnormal.

  • Periksa apakah error READ_LOG_DELAY_ALARM juga dilaporkan.

    Jika iya, selesaikan error tersebut terlebih dahulu. Jika tidak, periksa konfigurasi field waktu.

  • Periksa konfigurasi field waktu. Jika konfigurasi benar, verifikasi bahwa output waktu dari program pencatatan log normal.

STAT_LIMIT_ALARM

Jumlah file di direktori yang ditentukan dalam konfigurasi pengumpulan melebihi batas.

Periksa apakah direktori pengumpulan target berisi banyak file dan subdirektori. Atur direktori root yang sesuai untuk pemantauan dan tentukan kedalaman pemantauan maksimum untuk subdirektori.

Anda juga dapat mengubah parameter mem_usage_limit. Untuk informasi lebih lanjut, lihat Atur parameter startup Logtail.

DROP_DATA_ALARM

Menyimpan log ke disk lokal timeout saat proses keluar. Log yang belum disimpan akan dibuang.

Error ini biasanya terjadi karena proses pengumpulan sangat terblokir. Tingkatkan batas penggunaan CPU atau batas konkurensi pengiriman jaringan. Untuk informasi lebih lanjut, lihat Atur parameter startup Logtail.

INPUT_COLLECT_ALARM

Terjadi error selama pengumpulan dari sumber input.

Selesaikan error berdasarkan detail dalam pesan error.

HTTP_LOAD_ADDRESS_ALARM

Parameter Addresses yang ditentukan dalam konfigurasi pengumpulan data HTTP tidak valid.

Periksa apakah parameter Addresses valid.

HTTP_COLLECT_ALARM

Terjadi error selama pengumpulan data HTTP.

Pecahkan masalah berdasarkan detail dalam pesan error. Error ini biasanya disebabkan oleh timeout.

FILTER_INIT_ALARM

Terjadi error selama inisialisasi filter.

Error ini biasanya disebabkan oleh ekspresi reguler yang tidak valid dalam filter. Perbaiki ekspresi berdasarkan detail dalam pesan error.

INPUT_CANAL_ALARM

Terjadi error runtime dalam binary logging MySQL.

Pecahkan masalah berdasarkan detail dalam pesan error.

Layanan canal mungkin restart saat konfigurasi diperbarui. Abaikan error yang disebabkan oleh restart layanan.

CANAL_INVALID_ALARM

Status internal binary logging MySQL abnormal.

Error ini biasanya terjadi ketika perubahan skema tabel selama runtime menyebabkan inkonsistensi metadata. Konfirmasi apakah skema tabel dimodifikasi saat error dilaporkan.

MYSQL_INIT_ALARM

Terjadi error selama inisialisasi MySQL.

Selesaikan error berdasarkan detail dalam pesan error.

MYSQL_CHECKPOINT_ALARM

Format checkpoint MySQL abnormal.

Konfirmasi apakah pengaturan terkait checkpoint dalam konfigurasi ini telah dimodifikasi.

MYSQL_TIMEOUT_ALARM

Kueri MySQL timeout.

Konfirmasi bahwa server MySQL dan jaringan berfungsi normal.

MYSQL_PARSE_ALARM

Gagal mengurai hasil kueri MySQL.

Konfirmasi bahwa format checkpoint dalam konfigurasi MySQL sesuai dengan format field yang sesuai.

AGGREGATOR_ADD_ALARM

Gagal menambahkan data ke antrian.

Error ini menunjukkan bahwa data dikirim terlalu cepat. Abaikan error ini jika volume data aktual besar.

ANCHOR_FIND_ALARM

Terjadi error dalam plugin processor_anchor. Ini dapat disebabkan oleh konfigurasi salah atau log yang tidak sesuai dengan konfigurasi.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut. Periksa konfigurasi Anda berdasarkan detail subtipe spesifik.

  • anchor cannot find key: Parameter SourceKey ditentukan dalam konfigurasi, tetapi field yang sesuai tidak ditemukan di log.

  • anchor no start: Tidak ditemukan kecocokan untuk parameter Start dalam nilai field SourceKey.

  • anchor no stop: Tidak ditemukan kecocokan untuk parameter Stop dalam nilai field SourceKey.

ANCHOR_JSON_ALARM

Terjadi error dalam plugin processor_anchor saat memperluas konten JSON yang ditentukan oleh parameter Start dan Stop.

Klik tautan error untuk melihat pesan error detail. Periksa konten yang diproses dan konfigurasi terkait untuk mengidentifikasi kesalahan konfigurasi atau menemukan log yang tidak valid.

CANAL_RUNTIME_ALARM

Terjadi error runtime dalam plugin binary logging.

Klik tautan error untuk melihat pesan error detail dan pecahkan masalah. Error ini biasanya terkait dengan instance MySQL primer yang terhubung.

CHECKPOINT_INVALID_ALARM

Gagal mengurai checkpoint.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan kunci checkpoint, konten checkpoint (1024 byte pertama), dan pesan error spesifik.

DIR_EXCEED_LIMIT_ALARM

Jumlah direktori yang didengarkan Logtail secara bersamaan melebihi batas.

Periksa apakah konfigurasi pengumpulan untuk logstore saat ini dan konfigurasi lain yang diterapkan pada Logtail melibatkan banyak direktori. Atur direktori root yang sesuai untuk pemantauan dan tentukan kedalaman pemantauan maksimum untuk subdirektori.

DOCKER_FILE_MAPPING_ALARM

Logtail gagal menambahkan pemetaan file Docker dengan menjalankan perintah.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan perintah dan pesan error spesifik.

DOCKER_FILE_MATCH_ALARM

File yang ditentukan tidak ditemukan di kontainer Docker.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan informasi kontainer dan path file yang dicari.

DOCKER_REGEX_COMPILE_ALARM

Terjadi error dalam plugin service_docker_stdout. Plugin gagal mengompilasi BeginLineRegex dari konfigurasi.

Klik tautan error untuk melihat pesan error detail. Periksa apakah ekspresi reguler benar.

DOCKER_STDOUT_INIT_ALARM

Plugin service_docker_stdout gagal diinisialisasi.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut.

  • host...version...error: Periksa apakah Docker Engine yang ditentukan dalam konfigurasi dapat diakses.

  • load checkpoint error: Plugin gagal memuat file checkpoint. Anda dapat mengabaikan error ini jika tidak memengaruhi operasi bisnis Anda.

  • container...: Nilai `label` untuk `container` yang ditentukan tidak valid. Nilai yang valid adalah `stdout` dan `stderr`. Untuk informasi lebih lanjut, lihat pesan error.

DOCKER_STDOUT_START_ALARM

Ukuran stdout melebihi batas selama pengumpulan oleh plugin service_docker_stdout.

Error ini biasanya terjadi jika data stdout sudah ada selama pengumpulan pertama. Abaikan error ini.

DOCKER_STDOUT_STAT_ALARM

Plugin service_docker_stdout tidak dapat mendeteksi stdout.

Error ini biasanya terjadi karena stdout tidak dapat diakses saat kontainer keluar. Abaikan error ini.

FILE_READER_EXCEED_ALARM

Jumlah objek file yang dibuka Logtail secara bersamaan melebihi batas.

Error ini biasanya terjadi karena terlalu banyak file dikumpulkan secara bersamaan. Periksa apakah konfigurasi pengumpulan masuk akal.

GEOIP_ALARM

Terjadi error dalam plugin processor_geoip.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut.

  • invalid ip...: Plugin gagal memperoleh alamat IP. Periksa apakah SourceKey dalam konfigurasi benar atau apakah ada log yang tidak valid.

  • parse ip...: Plugin gagal menyelesaikan kota dari alamat IP. Periksa pesan error detail untuk memecahkan masalah.

  • cannot find key...: SourceKey yang ditentukan tidak ditemukan di log. Periksa apakah konfigurasi benar atau apakah ada log yang tidak valid.

HTTP_INIT_ALARM

Terjadi error dalam plugin metric_http. Ekspresi reguler ResponseStringMatch yang ditentukan dalam konfigurasi gagal dikompilasi.

Klik tautan error untuk melihat pesan error detail. Periksa apakah ekspresi reguler benar.

HTTP_PARSE_ALARM

Terjadi error dalam plugin metric_http. Plugin gagal mengambil respons HTTP.

Klik tautan error untuk melihat pesan error detail. Periksa konten konfigurasi atau server HTTP yang diminta berdasarkan pesan error spesifik.

INIT_CHECKPOINT_ALARM

Terjadi error dalam plugin binary logging. Plugin gagal memuat file checkpoint. Plugin mengabaikan checkpoint dan mulai memproses dari awal.

Klik tautan error untuk melihat pesan error detail. Tentukan apakah akan mengabaikan error ini berdasarkan informasi error spesifik.

LOAD_LOCAL_EVENT_ALARM

Logtail sedang menangani event lokal.

Peringatan ini jarang terjadi. Jika tidak disebabkan oleh operasi manual, Anda harus memecahkan masalah. Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan nama file, nama konfigurasi, proyek, dan logstore.

LOG_REGEX_FIND_ALARM

Terjadi error dalam plugin processor_split_log_regex dan processor_split_log_string. SplitKey yang ditentukan dalam konfigurasi tidak ditemukan di log.

Klik tautan error untuk melihat pesan error detail dan periksa kesalahan konfigurasi.

LUMBER_CONNECTION_ALARM

Terjadi error dalam plugin service_lumberjack. Server dimatikan saat plugin berhenti.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan informasi error spesifik. Anda biasanya dapat mengabaikan error ini.

LUMBER_LISTEN_ALARM

Terjadi error dalam plugin service_lumberjack selama inisialisasi listener.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut.

  • init tls error...: Periksa apakah konfigurasi terkait TLS benar berdasarkan pesan error spesifik.

  • listen init error...: Periksa apakah konfigurasi terkait alamat benar berdasarkan pesan error spesifik.

LZ4_COMPRESS_FAIL_ALARM

Terjadi error saat Logtail melakukan kompresi LZ4.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan nilai baris log, proyek, kategori, dan wilayah.

MYSQL_CHECKPOINT_ALARM

Terjadi error dalam plugin MySQL terkait checkpoint.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut.

  • init checkpoint error...: Plugin gagal menginisialisasi checkpoint. Periksa kolom checkpoint yang ditentukan dalam konfigurasi dan nilai yang diambil berdasarkan pesan error.

  • not matched checkpoint...: Informasi checkpoint tidak cocok. Periksa apakah error disebabkan oleh operasi manual, seperti pembaruan konfigurasi. Jika iya, abaikan error.

NGINX_STATUS_COLLECT_ALARM

Terjadi error dalam plugin nginx_status saat mengambil status.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan URL dan informasi error spesifik.

NGINX_STATUS_INIT_ALARM

Terjadi error dalam plugin nginx_status. Plugin gagal menginisialisasi dan mengurai URL yang ditentukan dalam konfigurasi.

Klik tautan error untuk melihat pesan error detail. Periksa apakah URL dikonfigurasi dengan benar.

OPEN_FILE_LIMIT_ALARM

Jumlah file yang dibuka Logtail melebihi batas, dan tidak ada file baru yang dapat dibuka.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan path file log, proyek, dan logstore.

OPEN_LOGFILE_FAIL_ALARM

Terjadi error saat Logtail mencoba membuka file.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan path file log, proyek, dan logstore.

PARSE_DOCKER_LINE_ALARM

Terjadi error dalam plugin service_docker_stdout. Plugin gagal mengurai log.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut.

  • parse docker line error: empty line: Baris log kosong.

  • parse json docker line error...: Plugin gagal mengurai log dalam format JSON. Pecahkan masalah berdasarkan pesan error dan 512 byte pertama log.

  • parse cri docker line error...: Plugin gagal mengurai log dalam format CRI. Pecahkan masalah berdasarkan pesan error dan 512 byte pertama log.

PLUGIN_ALARM

Terjadi error selama inisialisasi plugin dan panggilan terkait.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut. Pecahkan masalah berdasarkan detail error spesifik.

  • init plugin error...: Gagal menginisialisasi plugin.

  • hold on error...: Gagal menjeda plugin.

  • resume error...: Gagal melanjutkan plugin.

  • start service error...: Gagal memulai plugin tipe input layanan.

  • stop service error...: Gagal menghentikan plugin tipe input layanan.

PROCESSOR_INIT_ALARM

Terjadi error dalam plugin processor_regex. Plugin gagal mengompilasi ekspresi reguler Regex yang ditentukan dalam konfigurasi.

Klik tautan error untuk melihat pesan error detail. Periksa apakah ekspresi reguler benar.

PROCESS_TOO_SLOW_ALARM

Logtail mengurai log terlalu lambat.

  1. Klik tautan error untuk melihat pesan error detail. Periksa jumlah log, ukuran buffer, dan waktu penguraian untuk menentukan apakah kecepatan normal.

  2. Jika kecepatannya terlalu lambat, periksa apakah proses lain di node Logtail mengonsumsi resource CPU berlebihan atau apakah ada konfigurasi penguraian yang tidak efisien, seperti ekspresi reguler yang tidak efisien.

REDIS_PARSE_ADDRESS_ALARM

Terjadi error dalam plugin Redis. Plugin gagal mengurai ServerUrls yang disediakan dalam konfigurasi.

Klik tautan error untuk melihat pesan error detail. Periksa URL yang dilaporkan error.

REGEX_FIND_ALARM

Terjadi error dalam plugin processor_regex. Plugin tidak dapat menemukan field yang ditentukan oleh SourceKey dalam konfigurasi.

Klik tautan error untuk melihat pesan error detail. Periksa konfigurasi SourceKey yang salah atau log yang tidak valid.

REGEX_UNMATCHED_ALARM

Terjadi error dalam plugin processor_regex. Kecocokan gagal.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut. Pecahkan masalah berdasarkan informasi error spesifik.

  • unmatch this log content...: Konten log tidak cocok dengan ekspresi reguler dalam konfigurasi.

  • match result count less...: Jumlah hasil yang cocok kurang dari jumlah Keys yang dikonfigurasi.

SAME_CONFIG_ALARM

Konfigurasi dengan nama yang sama sudah ada untuk logstore. Konfigurasi yang ditemukan kemudian dibuang.

Klik tautan error untuk melihat pesan error detail. Periksa kesalahan konfigurasi berdasarkan path konfigurasi dan informasi lainnya.

SPLIT_FIND_ALARM

Terjadi error dalam plugin split_char dan split_string. Plugin tidak dapat menemukan field yang ditentukan oleh SourceKey dalam konfigurasi.

Klik tautan error untuk melihat pesan error detail. Periksa konfigurasi SourceKey yang salah atau log yang tidak valid.

SPLIT_LOG_ALARM

Terjadi error dalam plugin processor_split_char dan processor_split_string. Jumlah field yang diurai berbeda dari jumlah yang ditentukan dalam SplitKeys.

Klik tautan error untuk melihat pesan error detail. Periksa konfigurasi SourceKey yang salah atau log yang tidak valid.

STAT_FILE_ALARM

Terjadi error saat mengumpulkan data dari file menggunakan objek LogFileReader.

Klik tautan error untuk melihat pesan error detail. Pecahkan masalah berdasarkan path file dan informasi error.

SERVICE_SYSLOG_INIT_ALARM

Terjadi error dalam plugin service_syslog. Plugin gagal diinisialisasi.

Klik tautan error untuk melihat pesan error detail. Periksa apakah parameter Address dalam konfigurasi benar.

SERVICE_SYSLOG_STREAM_ALARM

Terjadi error dalam plugin service_syslog selama pengumpulan data melalui TCP.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut. Pecahkan masalah berdasarkan detail error spesifik.

  • accept error...: Terjadi error saat menjalankan perintah Accept. Plugin menunggu periode waktu tertentu lalu mencoba operasi lagi.

  • setKeepAlive error...: Plugin gagal mengatur Keep-Alive. Plugin melewati error ini dan melanjutkan.

  • connection i/o timeout...: Operasi baca TCP timeout. Plugin mengatur ulang periode timeout dan melanjutkan membaca data.

  • scan error...: Terjadi error baca TCP. Plugin menunggu periode waktu tertentu lalu mencoba operasi lagi.

SERVICE_SYSLOG_PACKET_ALARM

Terjadi error dalam plugin service_syslog selama pengumpulan data melalui UDP.

Klik tautan error untuk melihat pesan error detail. Error ini memiliki subtipe berikut. Pecahkan masalah berdasarkan detail error spesifik.

  • connection i/o timeout...: Operasi baca UDP timeout. Plugin mengatur ulang periode timeout dan melanjutkan membaca data.

  • read from error...: Terjadi error baca UDP. Plugin menunggu periode waktu tertentu lalu mencoba operasi lagi.

PARSE_TIME_FAIL_ALARM

Plugin gagal mengurai waktu log.

Identifikasi dan selesaikan masalah dengan salah satu cara berikut:

  • Periksa apakah field waktu yang diekstrak oleh ekspresi reguler benar.

  • Periksa apakah konten field waktu yang ditentukan sesuai dengan ekspresi waktu dalam konfigurasi.

Pemantauan Aplikasi

Mengapa tidak ada data pemantauan setelah saya menginstal probe untuk aplikasi di kluster ACK?

Penyebab

  1. Pemantauan aplikasi dijeda.

  2. Agen ARMS tidak dimuat seperti yang diharapkan di pod tempat aplikasi berada.

Solusi

  1. Periksa apakah pemantauan aplikasi dijeda.

    1. Login ke ARMS console. Di panel navigasi kiri, pilih Application Monitoring > Application List.

    2. Pada halaman Application List, pilih wilayah di bilah navigasi atas dan klik nama aplikasi.

      Jika aplikasi tidak ditemukan, lanjutkan ke Langkah 2: Periksa apakah agen ARMS dimuat seperti yang diharapkan.

    3. Jika Anda menggunakan konsol Application Real-Time Monitoring Service (ARMS) baru, pilih Configuration > Custom Configurations di bilah navigasi atas halaman detail aplikasi. Di bagian Probe switch settings, periksa apakah pemantauan aplikasi dijeda.

    4. Jika Anda menggunakan konsol ARMS lama, klik Application Settings di panel navigasi kiri halaman detail aplikasi. Pada halaman yang muncul, klik tab Custom Configuration. Di bagian Agent Switch Settings, periksa apakah Probe Master Switch diaktifkan.

  2. Periksa apakah probe dimuat dengan benar.

    1. Login ke ACK console. Di panel navigasi kiri, klik Clusters. Pada halaman Clusters, klik nama kluster untuk membuka halaman detail kluster.

    2. Di panel navigasi kiri, pilih Workloads > Pods.

    3. Pada halaman Pods, pilih namespace tempat aplikasi Anda berada, temukan aplikasi, lalu klik Edit YAML di kolom Actions.

    4. Di kotak dialog Edit YAML, periksa apakah file YAML berisi initContainers.

      db_am_ack_apppod_yaml

      • Jika file YAML tidak berisi initContainers, pod belum diinjeksi one-pilot-initcontainer. Lakukan Langkah 5.

      • Jika file YAML berisi initContainers, pod telah diinjeksi one-pilot-initcontainer. Lakukan Langkah 8.

    5. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Pods. Pada halaman yang muncul, atur parameter Namespace ke ack-onepilot. Periksa apakah ada pod bernama ack-onepilot-* dengan pembaruan bergulir yang telah selesai di daftar pod.

    6. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Deployments atau StatefulSets. Pada halaman yang muncul, temukan aplikasi dan pilih image > Edit YAML di kolom Actions. Di kotak dialog Edit YAML, periksa apakah file YAML berisi label berikut di bagian spec.template.metadata:

      labels:
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "<your-deployment-name>"    # Ganti <your-deployment-name> dengan nama aplikasi sebenarnya. 
        armsSecAutoEnable: "on"    # Jika Anda ingin menghubungkan aplikasi ke Application Security, Anda harus mengonfigurasi parameter ini.
      • Jika file YAML berisi label tersebut, lakukan Langkah 7.

      • Jika file YAML tidak berisi label tersebut, lakukan operasi berikut: Di kotak dialog Edit YAML, tambahkan label ke bagian spec > template > metadata dan ganti <your-deployment-name> dengan nama aplikasi sebenarnya. Kemudian, klik Update.

    7. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Pods. Pada halaman yang muncul, temukan pod dan pilih More > Logs di kolom Actions untuk memeriksa apakah log pod ack-onepilot melaporkan error Security Token Service (STS) dalam format "Message":"STS error".

    8. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Pods, temukan pod dan klik Edit YAML di kolom Actions. Di kotak dialog Edit YAML, periksa apakah file YAML berisi parameter javaagent berikut:

      -javaagent:/home/admin/.opt/ArmsAgent/aliyun-java-agent.jar
      Catatan

      Jika Anda menggunakan agen ARMS versi sebelum 2.7.3.5, ganti aliyun-java-agent.jar dalam kode di atas dengan arms-bootstrap-1.7.0-SNAPSHOT.jar. Kami menyarankan Anda meningkatkan agen ke versi terbaru sesegera mungkin.

      • Jika file YAML berisi parameter tersebut, temukan pod di halaman Pods dan klik Terminal di kolom Actions untuk membuka halaman command line. Jalankan perintah berikut untuk memeriksa apakah direktori log berisi file log dengan ekstensi .log. Kemudian, submit a ticket.

        cd /home/admin/.opt/ArmsAgent/logs
      • Jika file YAML tidak berisi parameter tersebut, submit a ticket.

Token ARMS Addon tidak ada di kluster

Gejala

Token ARMS Addon tidak ada di kluster target.

  1. Login ke ACK console. Di panel navigasi kiri, klik Clusters. Pada halaman Clusters, klik nama kluster untuk membuka halaman detail kluster.

  2. Di panel navigasi kiri, pilih Configurations > Secrets.

  3. Di bagian atas halaman, pilih kube-system dari daftar drop-down Namespace untuk memeriksa apakah addon.arms.token diaktifkan.

    ARMS Addon Token

Solusi

Berikan izin akses Container Service for Kubernetes ke resource ARMS.

Tambahkan kebijakan izin secara manual

  1. Login ke ACK console. Di panel navigasi kiri, klik Clusters. Pada halaman Clusters, klik nama kluster.

  2. Pada tab Basic Information halaman Cluster Information, klik tautan di samping Worker RAM Role di bagian Cluster Resources.

  3. Pada halaman yang muncul, klik Grant Permission di tab Permissions.

  4. Di panel Grant Permission, tambahkan kebijakan berikut dan klik Grant permissions.

    • AliyunTracingAnalysisFullAccess: akses penuh ke Managed Service for OpenTelemetry.

    • AliyunARMSFullAccess: akses penuh ke ARMS.

Mengapa data pemantauan menjadi abnormal setelah aplikasi dipindahkan ke kluster atau namespace yang berbeda?

Gejala

  • Nilai yang ditampilkan di kolom namespace pada dasbor kustom tidak diperbarui setelah Anda mengubah namespace aplikasi Anda.

    image.png

  • Setelah Anda mengubah kluster aplikasi, data untuk metrik rate, errors, dan duration (RED) ditampilkan normal tetapi tidak ada data yang ditampilkan untuk metrik pemantauan kontainer, seperti CPU dan memori.

Kemungkinan penyebab

Parameter terkait kontainer, seperti Namespace dan ClusterId, dikonfigurasi saat aplikasi dibuat dan nilainya tidak dapat diperbarui secara otomatis. Jika Anda mengubah kluster atau namespace aplikasi, data terkait kontainer mungkin gagal diambil atau ditampilkan.

Solusi

  • Hapus aplikasi, buat ulang aplikasi, lalu laporkan data pemantauan lagi. Untuk informasi lebih lanjut, lihat Hapus aplikasi.

    Metode ini menyebabkan kehilangan data historis.

  • Kirim tiket.

Bagaimana cara menyesuaikan path mount untuk probe Java?

Latar belakang

Dalam penerapan standar, komponen ack-onepilot menentukan path mount untuk agen Java dengan menginjeksi variabel lingkungan JAVA_TOOL_OPTIONS. Namun, Anda mungkin perlu menyesuaikan path mount agen untuk skenario tertentu, seperti berikut:

  • Manajemen konfigurasi terpusat

    Anda dapat mengelola path agen secara terpusat menggunakan ConfigMap Kubernetes untuk memastikan konsistensi konfigurasi di berbagai lingkungan.

  • Persyaratan penyimpanan persisten

    Kebijakan keamanan perusahaan atau persyaratan O&M mungkin mengharuskan menyimpan file probe di volume persisten kustom (PVC).

Solusi

Menyesuaikan path mount agen Java memerlukan versi komponen berikut:

Penting

Komponen ack-onepilot digunakan bersama oleh Microservice Engine (MSE) dan Application Real-Time Monitoring Service (ARMS). Oleh karena itu, prosedur ini juga berlaku untuk aplikasi administrasi layanan MSE.

  1. Tambahkan anotasi disableJavaToolOptionsInjection ke beban kerja Kubernetes, seperti deployment, yang memerlukan agen Java dengan mount kustom.

    Setelah Anda menambahkan anotasi ini, komponen ack-onepilot tidak akan menggunakan variabel lingkungan JAVA_TOOL_OPTIONS untuk secara otomatis menentukan path mount agen atau parameter JVM lainnya.

    1. Jalankan perintah berikut untuk melihat file YAML deployment target.

      kubectl get deployment YOUR_DEPLOYMENT_NAME -o yaml
      Catatan

      Jika Anda tidak yakin dengan nama deployment, Anda dapat menjalankan perintah berikut untuk mencantumkan semua deployment. Temukan deployment target di hasilnya, lalu lihat file YAML-nya.

      kubectl get deployments --all-namespaces
    2. Anda dapat mengedit file YAML untuk aplikasi stateless target (Deployment).

      kubectl edit deployment YOUR_DEPLOYMENT_NAME -o yaml
    3. Dalam file YAML, tambahkan konten berikut di bawah `spec.template.metadata`.

      labels:
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "<span class="var-span" contenteditable="true" data-var="YOUR_DEPLOYMENT_NAME">YOUR_DEPLOYMENT_NAME"</span> # Ganti YOUR_DEPLOYMENT_NAME dengan nama aplikasi Anda.
        disableJavaToolOptionsInjection: "true"            # Untuk menyesuaikan path mount agen Java, atur ini ke true.
  2. Tambahkan path mount untuk agen Java ARMS ke skrip startup aplikasi atau perintah startup Java Anda.

    Path mount default adalah /home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar. Ganti path ini dengan path kustom Anda.

    java -javaagent:/home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar ... ... -jar xxx.jar

    Informasi lain, seperti wilayah pelaporan dan kunci lisensi, diinjeksikan oleh ack-onepilot melalui variabel lingkungan.

Bagaimana cara melaporkan data dari kluster ACK lintas wilayah?

Gejala

Bagaimana cara melaporkan data dari Wilayah A ke Wilayah B?

Solusi

  1. Perbarui komponen ack-onepilot ke V4.0.0 atau lebih baru.

  2. Tambahkan variabel lingkungan ARMS_REPORT_REGION ke aplikasi ack-onepilot-ack-onepilot di namespace ack-onepilot. Nilainya harus berupa ID wilayah tempat ARMS tersedia. Contoh: cn-hangzhou atau cn-beijing.

  3. Restart aplikasi yang ada atau terapkan aplikasi baru untuk melaporkan data lintas wilayah.

    Catatan

    Setelah variabel lingkungan ditambahkan, semua aplikasi yang diterapkan di kluster akan melaporkan data ke wilayah yang ditentukan pada langkah sebelumnya.

Bagaimana cara menguninstall arms-pilot dan menginstal ack-onepilot?

Latar belakang

Agen Pemantauan Aplikasi lama arms-pilot tidak lagi dipelihara. Anda dapat menginstal agen baru ack-onepilot untuk memantau aplikasi Anda. ack-onepilot sepenuhnya kompatibel dengan arms-pilot. Anda dapat menginstal ack-onepilot secara mulus tanpa perlu mengubah konfigurasi aplikasi. Topik ini menjelaskan cara menguninstall arms-pilot dan menginstal ack-onepilot.

Solusi

  • Anda harus menginstal ack-onepilot di kluster ACK V1.16 atau lebih baru. Jika kluster Anda lebih lama dari V1.16, tingkatkan kluster terlebih dahulu. Untuk informasi lebih lanjut, lihat Perbarui versi Kubernetes kluster ACK.

  • Anda harus menguninstall arms-pilot sebelum menginstal ack-onepilot. Jika Anda memiliki ack-onepilot dan arms-pilot yang diinstal, agen ARMS tidak dapat dimount. Jika arms-pilot tidak sepenuhnya diuninstall, ack-onepilot tidak berfungsi karena menganggap arms-pilot masih bekerja di lingkungan tersebut.

  • Saat Anda menguninstall arms-pilot dan menginstal ack-onepilot, konfigurasi arms-pilot tidak dapat disinkronkan secara otomatis ke ack-onepilot. Kami menyarankan Anda mencatat konfigurasi tersebut lalu mengonfigurasi ack-onepilot secara manual.

  1. Uninstall arms-pilot.

    1. Login ke ACK console. Pada halaman Clusters, klik nama kluster.

    2. Di panel navigasi kiri, pilih Applications > Helm.

    3. Pada halaman Helm, temukan arms-pilot dan klik Delete di kolom Actions.

    4. Pada pesan Delete, klik OK.

  2. Periksa apakah arms-pilot telah diuninstall.

    Buka halaman detail kluster di ACK console. Di panel navigasi kiri, pilih Workloads > Deployments. Pada halaman Deployments, pilih arms-pilot dari daftar drop-down Namespace, dan periksa apakah pod namespace tersebut dihapus seperti yang diharapkan.

    Catatan

    Jika Anda telah mengubah namespace tempat arms-pilot berada, pilih namespace baru tersebut.

  3. Instal ack-onepilot.

    1. Login ke ACK console. Pada halaman Clusters, klik nama kluster.

    2. Di panel navigasi kiri, klik Add-ons. Pada halaman Add-ons, cari ack-onepilot.

    3. Klik Install pada kartu ack-onepilot.

      Catatan

      Secara default, komponen ack-onepilot mendukung 1.000 pod. Untuk setiap tambahan 1.000 pod di kluster, Anda harus menambahkan 0,5 core CPU dan 512 MB memori untuk komponen tersebut.

    4. Di kotak dialog yang muncul, konfigurasikan parameter dan klik OK. Kami menyarankan Anda menggunakan nilai default.

      Catatan

      Setelah Anda menginstal ack-onepilot, Anda dapat meningkatkan, mengonfigurasi, atau menguninstallnya di halaman Add-ons.

  4. Periksa apakah ack-onepilot telah diinstal.

    Buka halaman detail kluster di ACK console. Di panel navigasi kiri, pilih Workloads > Deployments. Pada halaman Deployments, pilih ack-onepilot dari daftar drop-down Namespace, dan periksa apakah pod namespace tersebut berjalan seperti yang diharapkan.

    image

Managed Service for Prometheus

Halaman pemantauan Prometheus menampilkan "Tidak ditemukan dasbor terkait"

Gejala

Jika Anda mengaktifkan pemantauan Prometheus dan melihat pesan No dashboard is found pada halaman Operations > Prometheus Monitoring untuk kluster target, ikuti prosedur di bawah ini untuk menyelesaikan masalah.

image

Solusi

  1. Instal ulang komponen pemantauan Prometheus.

    1. Nonaktifkan pemantauan Prometheus.

    2. Instal ulang komponen:

      1. Setelah memastikan penghapusan selesai, klik Install, lalu klik OK di kotak dialog.

      2. Setelah instalasi selesai, kembali ke halaman Pemantauan Prometheus untuk memeriksa apakah masalah telah terselesaikan.

        Jika masalah masih berlanjut, lanjutkan ke langkah berikutnya.

  2. Periksa koneksi instance Prometheus.

    1. Di panel navigasi kiri ARMS console, klik Integration Management.

    2. Pada tab Integrated Environments, periksa daftar Container Service untuk lingkungan kontainer dengan nama yang sama dengan kluster Anda.

      • Jika tidak ada lingkungan kontainer yang sesuai: Lihat Hubungkan menggunakan konsol ARMS atau Prometheus.

      • Jika Anda memiliki lingkungan kontainer, klik Configure Agent di kolom Actions untuk lingkungan target guna membuka halaman Configure Agent.

        Periksa apakah agen yang diinstal berjalan seperti yang diharapkan.

Mengapa data tidak ditampilkan di Managed Service for Prometheus?

Penyebab

Data mungkin tidak ditampilkan di Managed Service for Prometheus karena tugas sinkronisasi dengan layanan Prometheus Alibaba Cloud gagal, yang menyebabkan kegagalan pendaftaran resource, atau karena instance Prometheus tidak disediakan dengan benar. Ikuti proses di bawah ini untuk memeriksa dan menyelesaikan masalah.

Solusi

  1. Periksa status tugas penyediaan untuk Managed Service for Prometheus.

    1. Pada halaman Jobs, atur Namespace ke arms-prom di bagian atas halaman, lalu klik o11y-init-environment untuk memverifikasi bahwa job berhasil.

      Jika tidak berhasil, mungkin karena sinkronisasi dengan layanan Prometheus Alibaba Cloud dan pendaftaran resource gagal. Anda dapat melihat log pod-nya untuk menemukan alasan spesifik kegagalan tersebut. Untuk informasi lebih lanjut, lihat Pecahkan masalah pengecualian pod.

      Jika pod tersebut tidak ada lagi, lanjutkan dengan langkah-langkah berikut.

  2. Instal ulang komponen pemantauan Prometheus.

    1. Nonaktifkan pemantauan Prometheus.

    2. Instal ulang komponen:

      1. Setelah memastikan penghapusan selesai, klik Install, lalu klik OK di kotak dialog.

      2. Setelah instalasi selesai, kembali ke halaman Pemantauan Prometheus untuk memeriksa apakah masalah telah terselesaikan.

        Jika masalah masih berlanjut, lanjutkan ke langkah berikutnya.

  3. Periksa penyediaan instance Prometheus.

    1. Di panel navigasi kiri ARMS console, klik Integration Management.

    2. Pada tab Integrated Environments, periksa daftar Container Service untuk lingkungan kontainer dengan nama yang sama dengan kluster Anda.

      • Jika tidak ada lingkungan kontainer yang sesuai: Lihat Hubungkan menggunakan konsol ARMS atau Prometheus.

      • Jika Anda memiliki lingkungan kontainer, klik Configure Agent di kolom Actions untuk lingkungan target guna membuka halaman Configure Agent.

        Periksa apakah agen yang diinstal berjalan seperti yang diharapkan.

Managed Service for Prometheus gagal diinstal ulang dan muncul pesan error "rendered manifests contain a resource that already exists"

Gejala

Saat Anda menguninstall dan menginstal ulang agen Prometheus, muncul pesan error berikut:

rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: kind: ClusterRole, namespace: , name: arms-pilot-prom-k8s

image

Penyebab

Setelah Anda menjalankan perintah untuk menguninstall agen Prometheus secara manual, resource seperti role mungkin gagal dihapus.

Solusi

  1. Jalankan perintah berikut untuk menemukan ClusterRoles agen Prometheus:

    kubectl get ClusterRoles --all-namespaces | grep prom

  2. Jalankan perintah berikut untuk menghapus ClusterRoles yang ditemukan pada langkah sebelumnya:

     kubectl delete ClusterRole [$Cluster_Roles] -n arms-prom
    Catatan

    Parameter [$Cluster_Roles] menentukan ClusterRoles yang ditemukan pada langkah sebelumnya.

  3. Jika masalah masih berlanjut setelah Anda menghapus ClusterRoles, lihat nilai kind dalam pesan error untuk memeriksa apakah ada resource selain ClusterRoles. Lakukan operasi di atas untuk menghapusnya secara berurutan.

How do I view the version of the ack-arms-prometheus component?

Latar belakang

Anda perlu memeriksa versi komponen ack-arms-prometheus yang diterapkan di kluster Anda dan apakah perlu diperbarui.

Solusi

  1. Login ke ACK console. Di panel navigasi kiri, klik Clusters.

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

  3. Pada halaman Component Management, klik tab Log And Monitoring dan temukan komponen ack-arms-prometheus.

    Versi saat ini ditampilkan di bawah nama komponen. Jika tersedia versi yang lebih baru, klik Upgrade di sebelah nomor versi untuk memperbarui komponen.

    Catatan

    Tombol Upgrade hanya tersedia jika komponen yang diinstal bukan versi terbaru.

Mengapa saya tidak dapat menerapkan pemantauan GPU?

Penyebab

Pemantauan GPU mungkin gagal diterapkan jika node GPU memiliki taint. Anda dapat melakukan langkah-langkah berikut untuk memeriksa taint pada node GPU.

Solusi

  1. Jalankan perintah berikut untuk melihat taint node GPU target.

    Jika node GPU memiliki taint kustom, Anda akan menemukan entri terkait di output. Topik ini menggunakan taint dengan key test-key, value test-value, dan effect NoSchedule sebagai contoh:

    kubectl describe node cn-beijing.47.100.***.***

    Output yang diharapkan:

    Taints:test-key=test-value:NoSchedule
  2. Anda dapat menangani taint pada node GPU dengan salah satu cara berikut.

    • Jalankan perintah berikut untuk menghapus taint node GPU.

      kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
    • Deklarasikan toleransi untuk taint node GPU agar pod dapat dijadwalkan ke node tersebut.

      # 1. Jalankan perintah berikut untuk mengedit ack-prometheus-gpu-exporter.
      kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter
      
      # 2. Tambahkan field berikut ke file YAML untuk mendeklarasikan toleransi terhadap taint.
      # Abaikan field lainnya.
      # Field tolerations ditambahkan di atas field containers dan sejajar dengan field containers.
      tolerations:
      - key: "test-key"
        operator: "Equal"
        value: "test-value"
        effect: "NoSchedule"
      containers:
       # Abaikan field lainnya.

Bagaimana cara menguninstall ARMS-Prometheus sepenuhnya untuk menghindari kegagalan instalasi ulang?

Latar belakang

Jika Anda hanya menghapus namespace Prometheus Monitoring for Alibaba Cloud, konfigurasi sisa mungkin tetap ada dan menyebabkan instalasi ulang gagal. Untuk menghapus semua konfigurasi ARMS-Prometheus secara manual dan lengkap, lakukan operasi berikut.

Solusi

  • Hapus namespace arms-prom.

    kubectl delete namespace arms-prom
  • Hapus ClusterRoles.

    kubectl delete ClusterRole arms-kube-state-metrics
    kubectl delete ClusterRole arms-node-exporter
    kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-prometheus-oper3
    kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-pilot-prom-k8s
    kubectl delete ClusterRole gpu-prometheus-exporter
    kubectl delete ClusterRole o11y:addon-controller:role
    kubectl delete ClusterRole arms-aliyunserviceroleforarms-clusterrole
  • Hapus ClusterRoleBindings.

    kubectl delete ClusterRoleBinding arms-node-exporter
    kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2
    kubectl delete ClusterRoleBinding arms-kube-state-metrics
    kubectl delete ClusterRoleBinding arms-pilot-prom-k8s
    kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding gpu-prometheus-exporter
    kubectl delete ClusterRoleBinding o11y:addon-controller:rolebinding
    kubectl delete ClusterRoleBinding arms-kube-state-metrics-agent
    kubectl delete ClusterRoleBinding arms-node-exporter-agent
    kubectl delete ClusterRoleBinding arms-aliyunserviceroleforarms-clusterrolebinding
  • Hapus Roles dan RoleBindings.

    kubectl delete Role arms-pilot-prom-spec-ns-k8s
    kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system

Setelah Anda menghapus resource ARMS-Prometheus secara manual, navigasikan ke Operations Management > Component Management di Container Service for Kubernetes (ACK) console untuk menginstal ulang komponen ack-arms-prometheus.

Terjadi error "xxx sedang digunakan" saat menginstal komponen ack-arms-prometheus

Penyebab

Saat Anda menerapkan komponen ack-arms-prometheus, muncul error "xxx sedang digunakan". Hal ini kemungkinan disebabkan oleh resource yang sedang digunakan atau resource sisa, yang menyebabkan instalasi komponen gagal.

Solusi

  1. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri halaman detail kluster, pilih Applications > Helm.

  2. Pada halaman Helm, verifikasi bahwa ack-arms-prometheus ada.

Komponen ack-arms-prometheus gagal diinstal setelah muncul pesan "Komponen Belum Diinstal"

Gejala

Saat Anda mencoba menginstal komponen ack-arms-prometheus, muncul pesan "Komponen Belum Diinstal" terlebih dahulu, dan instalasi tetap gagal pada percobaan kedua.

Solusi

  • Periksa apakah komponen ack-arms-prometheus sudah diinstal.

    1. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri halaman detail kluster, pilih Applications > Helm.

    2. Pada halaman Helm, verifikasi bahwa ack-arms-prometheus ada.

  • Periksa log ack-arms-prometheus untuk mencari error.

    1. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Deployments.

    2. Di bagian atas halaman Deployments, atur Namespace ke arms-prom lalu klik arms-prometheus-ack-arms-prometheus.

    3. Klik tab Logs dan periksa log untuk mencari error.

  • Periksa apakah terjadi error selama instalasi agen.

    1. Login ke ARMS console. Di panel navigasi kiri, klik Integration Management.

    2. Pada tab Integration Management, temukan lingkungan kontainer target di daftar Container Service. Di kolom Actions, klik Configure Agent untuk membuka halaman Configure Agent.

Pemantauan Prometheus open source

Bagaimana cara mengonfigurasi pemberitahuan peringatan DingTalk?

Gejala

Setelah Anda menerapkan Prometheus open source, Anda harus mengonfigurasinya untuk mengirim pemberitahuan peringatan menggunakan DingTalk.

Solusi

  1. Dapatkan URL webhook chatbot DingTalk Anda. Untuk informasi lebih lanjut, lihat Pemantauan event.

  2. Pada halaman wizard Parameters, temukan bagian dingtalk, atur enabled ke true, lalu tentukan URL webhook chatbot DingTalk Anda di field token. Untuk informasi lebih lanjut, lihat Configure DingTalk alert notifications di Konfigurasi peringatan.

Terjadi error saat menerapkan prometheus-operator

Gejala

Can't install release with errors: rpc error: code = Unknown desc = object is being deleted: customresourcedefinitions.apiextensions.k8s.io "xxxxxxxx.monitoring.coreos.com" already exists

Solusi

Pesan error menunjukkan bahwa kluster gagal membersihkan objek definisi sumber daya kustom (CRD) dari penerapan sebelumnya. Jalankan perintah berikut untuk menghapus objek CRD. Kemudian, terapkan prometheus-operator lagi:

kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com

Peringatan email tidak berfungsi

Gejala

Setelah Anda menerapkan Prometheus open source, peringatan email yang Anda konfigurasi tidak mengirim pemberitahuan peringatan.

Solusi

Pastikan bahwa nilai smtp_auth_password adalah kode otorisasi SMTP, bukan kata sandi logon akun email. Pastikan endpoint server SMTP mencakup nomor port.

Muncul pesan error "Kluster tidak dapat diakses. Coba lagi nanti atau kirim tiket." saat saya mengklik Update YAML

Gejala

Setelah Anda menerapkan Prometheus open source, saat mengklik Update YAML, muncul pesan error "Kluster saat ini sementara tidak dapat diakses. Silakan coba lagi nanti atau kirim tiket untuk umpan balik".

Solusi

Jika file konfigurasi Tiller terlalu besar, kluster tidak dapat diakses. Untuk mengatasi masalah ini, Anda dapat menghapus beberapa anotasi di file konfigurasi dan memount file tersebut ke pod sebagai ConfigMap. Anda dapat menentukan nama ConfigMap di field configMaps bagian prometheus dan alertmanager. Untuk informasi lebih lanjut, lihat metode kedua di Mount ConfigMap ke Prometheus.

Bagaimana cara mengaktifkan fitur setelah menerapkan prometheus-operator?

Gejala

Setelah Anda menerapkan Prometheus open source, Anda mungkin perlu melakukan konfigurasi lebih lanjut untuk mengaktifkan fiturnya.

Solusi

Setelah prometheus-operator diterapkan, Anda dapat melakukan langkah-langkah berikut untuk mengaktifkan fitur prometheus-operator. Buka halaman detail kluster dan pilih Applications > Helm di panel navigasi kiri. Pada halaman Helm, temukan ack-prometheus-operator dan klik Update di kolom Actions. Di panel Update Release, konfigurasikan blok kode untuk mengaktifkan fitur. Kemudian, klik OK.

Bagaimana cara memilih antara TSDB dan disk Alibaba Cloud?

Gejala

Saat memilih solusi penyimpanan, bagaimana cara memilih antara TSDB dan disk Alibaba Cloud, dan bagaimana cara mengonfigurasi kebijakan retensi data?

Solusi

Penyimpanan TSDB tersedia di wilayah terbatas. Namun, penyimpanan disk didukung di semua wilayah. Gambar berikut menunjukkan cara mengonfigurasi kebijakan retensi data.数据回收策略

Dasbor Grafana tidak ditampilkan dengan benar

Gejala

Setelah Anda menerapkan Prometheus open source, dasbor Grafana tidak ditampilkan dengan benar.

Solusi

Buka halaman detail kluster dan pilih Applications > Helm di panel navigasi kiri. Pada halaman Helm, temukan ack-prometheus-operator dan klik Update di kolom Actions. Di panel Update Release, periksa apakah nilai field clusterVersion benar. Jika versi Kubernetes kluster Anda lebih lama dari 1.16, atur clusterVersion ke 1.14.8-aliyun.1. Jika versi Kubernetes kluster Anda 1.16 atau lebih baru, atur clusterVersion ke 1.16.6-aliyun.1.

ack-prometheus-operator gagal diinstal ulang setelah namespace-nya dihapus

Penyebab

Setelah Anda menghapus namespace ack-prometheus, konfigurasi resource terkait mungkin tetap ada. Dalam kasus ini, Anda mungkin gagal menginstal ack-prometheus lagi. Anda dapat melakukan operasi berikut untuk menghapus konfigurasi resource terkait:

Solusi

  1. Hapus konfigurasi resource terkait kontrol akses berbasis peran (RBAC).

    1. Jalankan perintah berikut untuk menghapus ClusterRoles terkait:

      kubectl delete ClusterRole ack-prometheus-operator-grafana-clusterrole
      kubectl delete ClusterRole ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRole psp-ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRole psp-ack-prometheus-operator-prometheus-node-exporter
      kubectl delete ClusterRole ack-prometheus-operator-operator
      kubectl delete ClusterRole ack-prometheus-operator-operator-psp
      kubectl delete ClusterRole ack-prometheus-operator-prometheus
      kubectl delete ClusterRole ack-prometheus-operator-prometheus-psp
    2. Jalankan perintah berikut untuk menghapus ClusterRoleBindings terkait:

      kubectl delete ClusterRoleBinding ack-prometheus-operator-grafana-clusterrolebinding
      kubectl delete ClusterRoleBinding ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRoleBinding psp-ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRoleBinding psp-ack-prometheus-operator-prometheus-node-exporter
      kubectl delete ClusterRoleBinding ack-prometheus-operator-operator
      kubectl delete ClusterRoleBinding ack-prometheus-operator-operator-psp
      kubectl delete ClusterRoleBinding ack-prometheus-operator-prometheus
      kubectl delete ClusterRoleBinding ack-prometheus-operator-prometheus-psp
  2. Jalankan perintah berikut untuk menghapus objek CRD terkait:

    kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
    kubectl delete crd alertmanagers.monitoring.coreos.com
    kubectl delete crd podmonitors.monitoring.coreos.com
    kubectl delete crd probes.monitoring.coreos.com
    kubectl delete crd prometheuses.monitoring.coreos.com
    kubectl delete crd prometheusrules.monitoring.coreos.com
    kubectl delete crd servicemonitors.monitoring.coreos.com
    kubectl delete crd thanosrulers.monitoring.coreos.com

Manajemen peringatan

Aturan peringatan gagal disinkronkan dan muncul pesan error "Proyek tidak ada: k8s-log-xxx"

Gejala

Di Alert Center, status sinkronisasi aturan peringatan menunjukkan pesan The Project does not exist : k8s-log-xxx.

Penyebab

Resource Pusat Insiden SLS belum dibuat.

Solusi

  1. Di Simple Log Service console, konfirmasi apakah batas kuota telah tercapai. Untuk informasi lebih lanjut tentang resource, lihat Batas resource dasar.

    1. Jika batas kuota telah tercapai, hapus proyek yang tidak perlu, atau submit a ticket untuk mengajukan peningkatan batas kuota resource proyek. Untuk informasi tentang cara menghapus proyek, lihat Kelola proyek.

    2. Jika batas belum tercapai, lanjutkan dengan langkah-langkah berikut.

  2. Instal ulang komponen ack-node-problem-detector.

    Menginstal ulang komponen akan membuat ulang proyek default bernama k8s-log-xxxxxx.

    1. Uninstall komponen ack-node-problem-detector.

      1. Pada halaman manajemen kluster target di Container Service for Kubernetes console, di panel navigasi kiri, pilih O&M > Component Management.

      2. Klik tab Logs and Monitoring. Kemudian, klik Uninstall pada kartu komponen ack-node-problem-detector dan klik Confirm di kotak dialog.

    2. Setelah penghapusan selesai, instal komponen ack-node-problem-detector.

      1. Di panel navigasi kiri, pilih O&M > Alerting

      2. Pada halaman Alert Rules, klik Start Installation. Konsol secara otomatis membuat proyek, serta menginstal dan memperbarui komponen.

  3. Pada halaman Alert Rules, nonaktifkan set aturan peringatan yang sesuai. Tunggu hingga Alert Rule Status berubah menjadi Rule Disabled, lalu aktifkan kembali set aturan untuk mencoba lagi.

Aturan peringatan gagal disinkronkan dan muncul pesan error this rule have no xxx contact groups reference

Gejala

Aturan peringatan gagal disinkronkan selama konfigurasi atau penerapan, dan sistem menampilkan pesan error seperti this rule have no xxx contact groups reference. Akibatnya, pemberitahuan untuk aturan peringatan ini tidak dikirim.

Penyebab

Sinkronisasi aturan peringatan gagal, dengan pesan kesalahan serupa berikut dilaporkan: aturan ini tidak memiliki referensi kelompok kontak xxx.

Solusi

  1. Anda telah membuat kontak dan menambahkannya ke grup kontak.

  2. Di sebelah kanan set aturan peringatan target, klik Edit Notification Policy untuk mengonfigurasi grup kontak mana yang berlangganan set aturan peringatan.

Masalah lainnya

Mengapa tidak ada data yang dikembalikan untuk kubectl top pod/node?

Gejala

Saat Anda menjalankan kubectl top pod atau kubectl top node di command line, tidak ada data yang dikembalikan.

Solusi

  1. Jalankan perintah berikut untuk memeriksa apakah API Service metrics-server normal.

    kubectl get apiservices | grep metrics-server

    metris

    Jika hasil yang dikembalikan untuk v1beta1.metrics.k8s.io menunjukkan True, API Service metrics-server normal.

  2. Opsi: Jika API Service metrics-server tidak normal, jalankan perintah berikut pada node kluster untuk memeriksa apakah port 443 dan 8082 metrics-server dapat diakses secara normal dalam kluster.

    curl -v <metrics-server_Pod_IP>:8082/apis/metrics/v1alpha1/nodes
    
    curl -v <metrics-server_Pod_IP>:443/apis/metrics/v1alpha1/nodes

    Jika perintah mengembalikan data secara normal, port 443 dan 8082 metrics-server dapat diakses secara normal dalam kluster.

  3. Opsi: Jika port 443 dan 8082 metrics-server tidak dapat diakses secara normal dalam kluster, restart metrics-server.

    Anda dapat merestart metrics-server dengan menghapus pod-nya.

    1. Di bagian atas halaman Stateless, atur Namespace ke `kube-system` lalu klik `metrics-server`.

    2. Pada tab Pods, di kolom Actions untuk pod metrics-server, pilih More > Delete, lalu klik OK di kotak dialog.

Mengapa sebagian data hilang untuk kubectl top pod/node?

Gejala

Saat Anda menjalankan kubectl top pod atau kubectl top node, sebagian data hilang.

Solusi

Lakukan pemeriksaan awal berikut.

  • Periksa apakah semua pod di node tertentu tidak memiliki data, atau apakah pod tertentu tidak memiliki data. Jika semua pod di node tertentu tidak memiliki data, periksa apakah node tersebut memiliki deviasi zona waktu. Anda dapat menggunakan perintah date di server NTP untuk memverifikasi zona waktu.

  • Periksa konektivitas jaringan dari pod metrics-server ke port 10255 node tertentu.

Apa yang harus saya lakukan jika HPA tidak dapat memperoleh data metrik?

Gejala

Saat Anda menggunakan Horizontal Pod Autoscaler (HPA) Kubernetes, Anda mungkin mengalami situasi di mana HPA tidak dapat memperoleh data metrik.

Solusi

Lakukan pemeriksaan awal berikut.

Periksa hasil menjalankan kubectl top pod untuk pod yang sesuai. Jika datanya abnormal, lihat metode pemeriksaan di Mengapa tidak ada data yang dikembalikan untuk kubectl top pod/node? dan Mengapa sebagian data hilang untuk kubectl top pod/node?

Mengapa HPA membuat Pod tambahan selama penyebaran bergulir?

Gejala

Selama pembaruan bergulir Kubernetes, Anda mungkin menemukan bahwa Horizontal Pod Autoscaler (HPA) secara tak terduga memulai Pod tambahan.

Solusi

Lakukan pemeriksaan awal berikut.

Periksa apakah metrics-server telah ditingkatkan ke versi terbaru. Jika versinya benar, gunakan perintah kubectl edit deployments -n kube-system metrics-server untuk menambahkan parameter startup berikut di bagian command.

--metric-resolution=15s
--enable-hpa-rolling-update-skipped=true