Apache HBase

Dokumen ini menjelaskan cara mengonfigurasi deployment Google Kubernetes Engine sehingga Anda dapat menggunakan Google Cloud Managed Service for Prometheus untuk mengumpulkan metrik dari Apache HBase. Dokumen ini menunjukkan cara melakukan hal berikut:

  • Siapkan pengekspor HBase untuk melaporkan metrik.
  • Konfigurasi resource PodMonitoring untuk Google Cloud Managed Service for Prometheus guna mengumpulkan metrik yang diekspor.
  • Akses dasbor di Cloud Monitoring untuk melihat metrik.
  • Konfigurasi aturan pemberitahuan untuk memantau metrik.

Petunjuk ini hanya berlaku jika Anda menggunakan koleksi terkelola dengan Managed Service for Prometheus. Jika Anda menggunakan koleksi yang di-deploy sendiri, lihat repositori sumber untuk pengekspor JMX guna mengetahui informasi penginstalan.

Petunjuk ini diberikan sebagai contoh dan diharapkan dapat berfungsi di sebagian besar lingkungan Kubernetes. Jika Anda mengalami masalah saat menginstal aplikasi atau pengekspor karena kebijakan organisasi atau keamanan yang ketat, sebaiknya baca dokumentasi open source untuk mendapatkan dukungan.

Untuk informasi tentang HBase, lihat Apache HBase.

Prasyarat

Untuk mengumpulkan metrik dari HBase menggunakan Managed Service for Prometheus dan pengumpulan terkelola, deployment Anda harus memenuhi persyaratan berikut:

  • Cluster Anda harus menjalankan Google Kubernetes Engine versi 1.21.4-gke.300 atau yang lebih baru.
  • Anda harus menjalankan Google Cloud Managed Service for Prometheus dengan mengaktifkan koleksi terkelola. Untuk informasi selengkapnya, lihat Mulai menggunakan koleksi terkelola.

  • Agar dapat menggunakan dasbor yang tersedia di Cloud Monitoring untuk integrasi HBase, Anda harus menggunakan jmx-exporter versi 0.17.0 atau yang lebih baru.

    Untuk informasi selengkapnya tentang dasbor yang tersedia, lihat Melihat dasbor.

Menginstal pengekspor HBase

Sebaiknya instal pengekspor HBase, jmx-exporter, sebagai file bantuan untuk beban kerja HBase Anda. Untuk mengetahui informasi tentang penggunaan file bantuan, lihat Aplikasi yang diperluas di Kubernetes dengan pod multi-container.

Untuk menginstal jmx-exporter sebagai file bantuan ke HBase, ubah konfigurasi HBase Anda seperti yang ditunjukkan pada contoh berikut:

# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+   name: hbase-exporter
+ data:
+   config.yaml: |
+     hostPort: localhost:9900
+     rules:
+     - pattern: "Hadoop<service=HBase, name=RegionServer, sub=TableLatencies><>Namespace_(\\w+)_table_(\\w+)_metric_(\\w+)"
+       name: "hbase_$3"
+       labels:
+         namespace: "$1"
+         table: "$2"
+     - pattern: "Hadoop<service=HBase, name=RegionServer, sub=Regions><>Namespace_(\\w+)_table_(\\w+)_region(\\W+)_metric_(\\w+)"
+       name: "hbase_$4"
+       labels:
+         namespace: "$1"
+         table: "$2"
+         region: "$3"
+     - pattern: "Hadoop<service=HBase, name=(\\w+), sub=(\\w+)><>(\\w+)"
+       name: "hbase_$1_$2_$3"
+     - pattern: "Hadoop<service=HBase, name=(\\w+)><>(\\w+)"
+       name: "hbase_$1_$2"
+     - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+)><>(\\w+)"
+       type: GAUGE
+       name: "zookeeper_$2"
+     - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+), name1=InMemoryDataTree><>(\\w+)"
+       type: GAUGE
+       name: "zookeeper_$2"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hbase
spec:
  selector:
    matchLabels:
+     app.kubernetes.io/name: hbase
  template:
    metadata:
      labels:
+       app.kubernetes.io/name: hbase
    spec:
      containers:
      - name: hbase
+       image: dajobe/hbase:latest
        ports:
+       - containerPort: 9900
+         name: jmx
        env:
+       - name: HBASE_MASTER_OPTS
+         value: -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.rmi.port=9900 -Dcom.sun.management.jmxremote.port=9900
+     - name: jmx-exporter
+       image: bitnami/jmx-exporter:0.17.0
+       command:
+         - java
+         - -jar
+         - jmx_prometheus_httpserver.jar
+       args:
+         - "9000"
+         - config.yaml
+       ports:
+       - containerPort: 9000
+         name: prometheus
+       volumeMounts:
+       - mountPath: /opt/bitnami/jmx-exporter/config.yaml
+         subPath: config.yaml
+         name: hbase-exporter
+     volumes:
+     - name: hbase-exporter
+       configMap:
+         name: hbase-exporter
+         defaultMode: 0644
+         items:
+         - key: config.yaml
+           path: config.yaml

Anda harus menambahkan baris yang diawali dengan simbol + ke konfigurasi Anda.

HBase mendukung JMX, tetapi harus diaktifkan. Cara terbaik untuk mengaktifkan JMX adalah dengan meneruskan opsi jmxremote ke skrip startup, biasanya dengan menetapkan variabel lingkungan HBASE_MASTER_OPTS atau HBASE_REGIONSERVER_OPTS.

Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi Anda.

Menentukan resource PodMonitoring

Untuk penemuan target, Layanan Terkelola untuk Operator Prometheus memerlukan resource PodMonitoring yang sesuai dengan pengekspor HBase di namespace yang sama.

Anda dapat menggunakan konfigurasi PodMonitoring berikut:

# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: hbase
  labels:
    app.kubernetes.io/name: hbase
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: prometheus
    scheme: http
    interval: 30s
    path: /metrics
  selector:
    matchLabels:
      app.kubernetes.io/name: hbase

Pastikan pemilih label dan port cocok dengan pemilih dan port yang digunakan dalam Menginstal pengekspor HBase.

Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi Anda.

Menentukan aturan dan pemberitahuan

Anda dapat menggunakan konfigurasi Rules berikut untuk menentukan pemberitahuan pada metrik HBase:

# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: Rules
metadata:
  name: hbase-rules
  labels:
    app.kubernetes.io/component: rules
    app.kubernetes.io/name: hbase-rules
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  groups:
  - name: hbase
    interval: 30s
    rules:
    - alert: HBaseAuthenticationErrors
      annotations:
        description: |-
          HBase authentication errors
            VALUE = {{ $value }}
            LABELS: {{ $labels }}
        summary: HBase authentication errors (instance {{ $labels.instance }})
      expr: rate(hbase_RegionServer_IPC_authenticationFailures[5m]) > 5
      for: 5m
      labels:
        severity: warning

Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi Anda.

Untuk mengetahui informasi selengkapnya tentang cara menerapkan aturan ke cluster Anda, lihat Evaluasi dan pemberitahuan aturan terkelola.

Anda dapat menyesuaikan nilai minimum pemberitahuan agar sesuai dengan aplikasi Anda.

Memverifikasi konfigurasi

Anda dapat menggunakan Metrics Explorer untuk memverifikasi bahwa Anda telah mengonfigurasi pengekspor HBase dengan benar. Cloud Monitoring mungkin memerlukan waktu satu atau dua menit untuk menyerap metrik Anda.

Untuk memastikan metrik diserap, lakukan tindakan berikut:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Di toolbar panel pembuat kueri, pilih tombol dengan nama  MQL atau  PromQL.
  3. Pastikan PromQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.
  4. Masukkan dan jalankan kueri berikut:
    up{job="hbase", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Lihat dasbor

Integrasi Cloud Monitoring mencakup dasbor "Prometheus". Dasbor diinstal secara otomatis saat Anda mengonfigurasi integrasi. Anda juga dapat melihat pratinjau statis dasbor tanpa menginstal integrasi.

Untuk melihat dasbor yang terinstal, lakukan hal berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Dashboards:

    Buka Dasbor

  2. Pilih tab Daftar Dasbor.
  3. Pilih kategori Integrations.
  4. Klik nama dasbor yang ingin Anda lihat.

Untuk melihat pratinjau statis dasbor, lakukan hal berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Integrations:

    Buka Integrations

  2. Klik filter platform deployment Kubernetes Engine.
  3. Temukan integrasi Apache HBase, lalu klik View Details.
  4. Pilih tab Dasbor.

Pemecahan masalah

Untuk mengetahui informasi tentang cara memecahkan masalah penyerapan metrik, lihat Masalah terkait pengumpulan dari pengekspor dalam Memecahkan masalah sisi penyerapan.