全部产品
Search
文档中心

Container Service for Kubernetes:Pemantauan Aplikasi Java

更新时间:Jun 27, 2025

Setelah menginstal komponen Pemantauan Aplikasi dari Application Real-Time Monitoring Service (ARMS), ack-onepilot, untuk aplikasi Java yang diterapkan di Container Service for Kubernetes (ACK), ARMS secara otomatis menemukan topologi aplikasi, menghasilkan topologi 3D, memantau antarmuka, serta mendeteksi transaksi abnormal dan lambat. Hal ini meningkatkan efisiensi diagnosis masalah online.

Latar Belakang

ARMS adalah layanan manajemen kinerja aplikasi (APM). Layanan ini menyediakan pemantauan komprehensif untuk aplikasi Java yang diterapkan di ACK tanpa perlu memodifikasi kode. Dengan menginstal dan memberi otorisasi ack-onepilot, Anda dapat mengidentifikasi permintaan gagal dan lambat, mereproduksi parameter permintaan, mendeteksi kebocoran memori, serta menemukan hambatan sistem. Untuk informasi lebih lanjut tentang Pemantauan Aplikasi ARMS, lihat Apa itu Pemantauan Aplikasi.

Prasyarat

  • Sebuah namespace telah dibuat. Untuk informasi lebih lanjut, lihat Kelola namespace dan kuota sumber daya. Contohnya, digunakan sebuah namespace bernama arms-demo.

  • Versi JDK didukung oleh Pemantauan Aplikasi. ARMS mendukung versi JDK berikut:

    • JDK 1.7.0+

      Penting

      ARMS agent V3.0.X dan seterusnya tidak lagi mendukung Java 7. Jika Anda masih menggunakan Java 7, disarankan untuk memperbarui versi Java Anda. Untuk informasi lebih lanjut, lihat Pemantauan Aplikasi tidak lagi mendukung Java 7.

    • JDK 1.8.0_25+

      Catatan
      • Jika Anda menerapkan aplikasi di kluster Kubernetes, disarankan menggunakan JDK V1.8.0_191 atau yang lebih baru.

      • Pastikan versi JDK bukan 1.8.0_25 atau 1.8.0_31. Jika tidak, ARMS agent mungkin gagal diinstal. Dalam hal ini, disarankan untuk memperbarui JDK ke versi terbaru 1.8.X.

    • JDK 11.0.8+

    • JDK 17

  • ARMS telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktivasi ARMS.

Langkah 1: Instal komponen Pemantauan Aplikasi ARMS

Penting

Komponen lama arms-pilot tidak lagi dipelihara. Anda dapat menginstal komponen baru ack-onepilot untuk memantau aplikasi Anda. Komponen ack-onepilot sepenuhnya kompatibel dengan arms-pilot. Anda dapat menginstal ack-onepilot secara mulus tanpa perlu memodifikasi konfigurasi aplikasi. Untuk informasi lebih lanjut, lihat Bagaimana cara saya mencopot pemasangan arms-pilot dan menginstal ack-onepilot?

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

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

  3. Di bagian Logs and Monitoring, temukan ack-onepilot dan klik Install. Di kotak dialog yang muncul, konfigurasikan parameter sesuai kebutuhan. Disarankan menggunakan nilai default. Lalu, klik OK.

    Catatan

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

    Setelah menginstal ack-onepilot, Anda dapat memperbarui, mengonfigurasi, atau mencopot pemasangannya di halaman Add-ons.

Langkah 2: Berikan otorisasi ARMS untuk mengakses sumber daya

  • Untuk memantau aplikasi yang diterapkan di kluster ACK tanpa addon.arms.token, lakukan langkah-langkah berikut untuk memberikan otorisasi kluster ACK mengakses ARMS. Jika addon.arms.token sudah ada, tidak diperlukan otorisasi lebih lanjut.

    Catatan

    Di kluster ACK, addon.arms.token memungkinkan ARMS melakukan otorisasi tanpa kata sandi secara otomatis. Biasanya, kluster ACK yang dikelola memiliki addon.arms.token secara default. Namun, beberapa dari kluster ACK yang dikelola yang dibuat sebelumnya mungkin tidak termasuk addon.arms.token.

    1. Periksa apakah kluster memiliki addon.arms.token.

      Periksa secret addon.arms.token di dalam cluster

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

      2. Di halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel sebelah kiri, pilih Configurations > Secrets.

      3. Di bagian atas halaman, pilih kube-system dari daftar drop-down Namespace dan periksa apakah addon.arms.token ada.

    2. Jika addon.arms.token tidak ada, lakukan langkah-langkah berikut untuk memberikan otorisasi manual kluster mengakses sumber daya ARMS:

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

      2. Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, klik Cluster Information.

      3. Klik tab Basic Information. Di bagian Cluster Resources, klik tautan di sebelah kanan Worker RAM Role.

      4. Di tab Permissions, klik Grant Permission.

      5. Pilih kebijakan AliyunARMSFullAccess dan klik OK.

  • Untuk memantau aplikasi yang diterapkan di kluster ACK yang dikelola yang terhubung ke instance kontainer elastis, buka halaman Otorisasi Cepat RAM dan selesaikan otorisasi. Lalu, mulai ulang pod yang dibuat untuk ack-onepilot.

Langkah 3: Aktifkan ARMS untuk memantau aplikasi Java

Untuk mengaktifkan Pemantauan Aplikasi saat membuat aplikasi baru, ikuti langkah-langkah berikut:

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel sebelah kiri, pilih Workloads > Deployments.

  3. Di halaman Deployments, klik Create from YAML di bagian atas halaman.

  4. Di halaman Create, pilih template dari daftar drop-down Sample Template dan tambahkan label berikut ke bidang spec.template.metadata di editor kode Template.

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Ganti <your-deployment-name> dengan nama aplikasi sebenarnya.
      armsSecAutoEnable: "on"    # Jika Anda ingin menghubungkan aplikasi ke Keamanan Aplikasi, Anda harus mengonfigurasi parameter ini.
    Catatan
    • Untuk informasi lebih lanjut tentang Keamanan Aplikasi, lihat Apa itu Keamanan Aplikasi.

    • Untuk informasi lebih lanjut tentang penagihan Keamanan Aplikasi, lihat Penagihan.

    YAML Example

    Template YAML berikut menunjukkan cara membuat Deployment dan mengaktifkan Pemantauan Aplikasi untuk aplikasi:

    Perluas untuk melihat template YAML lengkap

    apiVersion: v1
    kind: Namespace
    metadata:
      name: arms-demo
    ---
    apiVersion: apps/v1 # Untuk versi sebelum 1.8.0, gunakan apps/v1beta1.
    kind: Deployment
    metadata:
      name: arms-springboot-demo
      namespace: arms-demo
      labels:
        app: arms-springboot-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: arms-springboot-demo
      template:
        metadata:
          labels:
            app: arms-springboot-demo
            armsPilotAutoEnable: "on"
            armsPilotCreateAppName: "arms-k8s-demo"
            one-agent.jdk.version: "OpenJDK11"
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
              imagePullPolicy: Always
              name: arms-springboot-demo
              env:
                - name: SELF_INVOKE_SWITCH
                  value: "true"
                - name: COMPONENT_HOST
                  value: "arms-demo-component"
                - name: COMPONENT_PORT
                  value: "6666"
                - name: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: apps/v1 # Untuk versi sebelum 1.8.0, gunakan apps/v1beta1.
    kind: Deployment
    metadata:
      name: arms-springboot-demo-subcomponent
      namespace: arms-demo
      labels:
        app: arms-springboot-demo-subcomponent
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: arms-springboot-demo-subcomponent
      template:
        metadata:
          labels:
            app: arms-springboot-demo-subcomponent
            armsPilotAutoEnable: "on"
            armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
            one-agent.jdk.version: "OpenJDK11"
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
              imagePullPolicy: Always
              name: arms-springboot-demo-subcomponent
              env:
                - name: SELF_INVOKE_SWITCH
                  value: "false"
                - name: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: arms-demo-component
      name: arms-demo-component
      namespace: arms-demo
    spec:
      ports:
        # Port yang didengarkan oleh Service ini.
        - name: arms-demo-component-svc
          port: 6666
          targetPort: 8888
      # Kunci label dan nilai harus cocok agar dapat menerima lalu lintas.
      selector:
        app: arms-springboot-demo-subcomponent
    ---
    apiVersion: apps/v1 # Untuk versi sebelum 1.8.0, gunakan apps/v1beta1.
    kind: Deployment
    metadata:
      name: arms-demo-mysql
      namespace: arms-demo
      labels:
        app: mysql
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
              name: mysql
              ports:
                - containerPort: 3306
                  name: mysql
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: mysql
      name: arms-demo-mysql
      namespace: arms-demo
    spec:
      ports:
        # Port yang didengarkan oleh Service ini.
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # Kunci label dan nilai harus cocok agar dapat menerima lalu lintas.
      selector:
        app: mysql
    ---

Apa yang Harus Dilakukan Selanjutnya

Setelah menyelesaikan langkah-langkah sebelumnya, Pemantauan Aplikasi ARMS diaktifkan untuk aplikasi yang diterapkan di kluster ACK Anda. Di halaman Deployments, pilih image > ARMS Console di kolom Actions aplikasi untuk melihat detail pemantauan aplikasi. Untuk informasi lebih lanjut, lihat Ikhtisar Aplikasi.

image.png

FAQ