Apache HBase

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

L'integrazione di Apache HBase raccoglie le metriche del cluster da master e dai server a livello di regione. Le metriche del server della regione sono correlate allo spazio di archiviazione, nonché alle richieste e alla latenza. L'integrazione raccoglie anche i log del server master e della regione e li analizza in un payload JSON. Il risultato include campi per origine, livello e messaggio.

Per ulteriori informazioni su HBase, consulta la documentazione di Apache HBase.

Prerequisiti

Per raccogliere la telemetria HBase, devi installare l'agente Ops:

  • Per le metriche, installa la versione 2.11.0 o successive.
  • Per i log, installa la versione 2.11.0 o successive.

Questa integrazione supporta le versioni HBase 1.7.x, 2.3.x e 2.4.x.

Configura la tua istanza HBase

Per esporre un endpoint JMX, devi impostare la proprietà di sistema com.sun.management.jmxremote.port all'avvio della JVM. Ti consigliamo inoltre di impostare la proprietà di sistema com.sun.management.jmxremote.rmi.port sulla stessa porta. Per esporre un endpoint JMX da remoto, devi anche impostare la proprietà di sistema java.rmi.server.hostname.

Per impostazione predefinita, queste proprietà sono impostate nel file hbase-env.sh di un deployment HBase.

Per impostare le proprietà di sistema utilizzando gli argomenti della riga di comando, anteponi -Dil nome della proprietà all'avvio di JVM. Ad esempio, per impostare com.sun.management.jmxremote.port sulla porta 10101, specifica quanto segue all'avvio della JVM:

-Dcom.sun.management.jmxremote.port=10101

Configura l'agente Ops per HBase

Segui la guida per la configurazione dell'agente Ops, aggiungi gli elementi richiesti per raccogliere la telemetria dalle istanze HBase e riavvia l'agente.

Configurazione di esempio

I seguenti comandi creano la configurazione per raccogliere e importare la telemetria per HBase e riavvia l'agente Ops.

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    hbase:
      type: hbase
      endpoint: service:jmx:rmi:///jndi/rmi://127.0.0.1:10101/jmxrmi
  service:
    pipelines:
      hbase:
        receivers:
          - hbase
logging:
  receivers:
    hbase_system:
      type: hbase_system
  service:
    pipelines:
      hbase_system:
        receivers:
          - hbase_system
EOF

sudo service google-cloud-ops-agent restart

Configura raccolta di log

Per importare i log da HBase, devi creare destinatari per i log generati da HBase e quindi creare una pipeline per i nuovi ricevitori.

Per configurare un destinatario per i log hbase_system, specifica i seguenti campi:

Campo Predefinito Descrizione
exclude_paths Un elenco di pattern di percorsi del file system da escludere dal set corrispondente a include_paths.
include_paths [/opt/hbase/logs/hbase-*-regionserver-*.log, /opt/hbase/logs/hbase-*-master-*.log] Un elenco di percorsi del filesystem da leggere aggiungendo in coda ogni file. È possibile utilizzare un carattere jolly (*) nei percorsi, ad esempio /var/log/hbase*/*.log.
record_log_file_path false Se è impostato su true, il percorso del file specifico da cui è stato ottenuto il record di log viene visualizzato nella voce di log di output come valore dell'etichetta agent.googleapis.com/log_file_path. Quando utilizzi un carattere jolly, viene registrato solo il percorso del file da cui è stato ottenuto il record.
type Questo valore deve essere hbase_system.
wildcard_refresh_interval 60s L'intervallo con cui vengono aggiornati i percorsi dei file con caratteri jolly in include_paths. Dato come durata temporale analizzabile da time.ParseDuration, ad esempio 30s o 2m. Questa proprietà potrebbe essere utile in velocità effettiva di logging elevata in cui i file di log vengono ruotati più velocemente dell'intervallo predefinito.

Cosa viene registrato

logName deriva dagli ID ricevitore specificati nella configurazione. I campi dettagliati all'interno di LogEntry sono i seguenti.

I log hbase_system contengono i seguenti campi in LogEntry:

Campo Tipo Descrizione
jsonPayload.level string Livello voce di log
jsonPayload.message string Invia messaggio di log, includendo stackt dettagliato, se fornito
jsonPayload.module string Modulo di hbase da cui ha origine il log
jsonPayload.source string l'origine della registrazione
severity stringa (LogSeverity) Livello delle voci di log (tradotto).

Configurazione della raccolta di metriche

Per importare le metriche da HBase, devi creare ricevitori per le metriche generate da HBase e quindi creare una pipeline per i nuovi ricevitori.

Per configurare un destinatario per le metriche hbase, specifica i seguenti campi:

Campo Predefinito Descrizione
collect_jvm_metrics true Configura il destinatario in modo che raccolga anche le metriche JVM supportate.
collection_interval 60s Un valore di durata del tempo, come 30s o 5m.
endpoint localhost:10101 L'URL o l'host del servizio JMX utilizzato per creare l'URL del servizio. Questo valore deve essere nel formato service:jmx:<protocol>:<sap> o host:port. I valori nel modulo host:porta vengono utilizzati per creare un URL di servizio pari a service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi.
password La password configurata se JMX è configurata per richiedere l'autenticazione.
type Questo valore deve essere hbase.
username Il nome utente configurato se JMX è configurato per richiedere l'autenticazione.

Che cosa viene monitorato

La tabella seguente fornisce l'elenco delle metriche che l'agente operativo raccoglie dall'istanza HBase.

Tipo di metrica
Tipo, tipo
Risorse monitorate
Etichette
workload.googleapis.com/hbase.master.region_server.count
GAUGE, INT64
gce_instance
state
workload.googleapis.com/hbase.master.regions_in_transition.count
GAUGE, INT64
gce_instance
 
workload.googleapis.com/hbase.master.regions_in_transition.oldest_age
GAUGEINT64
gce_instance
 
workload.googleapis.com/hbase.master.regions_in_transition.over_threshold
GAUGEINT64
gce_instance
 
workload.googleapis.com/hbase.region_server.active_handler.count
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.authentication.count
GAUGE, INT64
gce_instance
region_server
state
workload.googleapis.com/hbase.region_server.block_cache.operation.count
GAUGE, INT64
gce_instance
region_server
state
workload.googleapis.com/hbase.region_server.blocked_update.time
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.disk.store_file.count
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.disk.store_file.size
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.files.local
GAUGE, DOUBLE
gce_instance
region_server
workload.googleapis.com/hbase.region_server.gc.old_gen.time
CUMULATIVE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.gc.time
CUMULATIVE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.gc.young_gen.time
CUMULATIVEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.open_connection.count
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.append.latency.max
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.append.latency.mean
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.append.latency.median
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.append.latency.min
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.append.latency.p99
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.delete.latency.max
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.delete.latency.mean
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.delete.latency.median
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.delete.latency.min
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.delete.latency.p99
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.get.latency.max
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.get.latency.mean
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.get.latency.median
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.get.latency.min
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.get.latency.p99
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.increment.latency.max
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.increment.latency.mean
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.increment.latency.median
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.increment.latency.min
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.increment.latency.p99
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.put.latency.max
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.put.latency.mean
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.put.latency.median
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.put.latency.min
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.put.latency.p99
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.replay.latency.max
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.replay.latency.mean
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.replay.latency.median
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.replay.latency.min
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operation.replay.latency.p99
GAUGEINT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.operations.slow
GAUGE, INT64
gce_instance
operation
region_server
workload.googleapis.com/hbase.region_server.queue.length
GAUGE, INT64
gce_instance
region_server
state
workload.googleapis.com/hbase.region_server.queue.request.count
GAUGEINT64
gce_instance
region_server
state
workload.googleapis.com/hbase.region_server.region.count
GAUGE, INT64
gce_instance
region_server
workload.googleapis.com/hbase.region_server.request.count
GAUGE, INT64
gce_instance
region_server
state
workload.googleapis.com/hbase.region_server.write_ahead_log.count
GAUGEINT64
gce_instance
region_server

Dashboard di esempio

Per visualizzare le metriche HBase, devi configurare un grafico o una dashboard. Cloud Monitoring offre una libreria di dashboard di esempio per le integrazioni, che contengono grafici preconfigurati. Per informazioni sull'installazione di queste dashboard, consulta Installazione di dashboard di esempio.

Verificare la configurazione

Questa sezione descrive come verificare che tu abbia configurato correttamente il ricevitore HBase. L'agente Ops potrebbe richiedere uno o due minuti per iniziare a raccogliere la telemetria.

Per verificare che i log siano importati, vai a Esplora log ed esegui la query seguente per visualizzare i log di HBase:

resource.type="gce_instance"
log_id("hbase_system")

Per verificare che le metriche siano importate, vai a Metrics Explorer ed esegui la seguente query nella scheda MQL:

fetch gce_instance
| metric 'workload.googleapis.com/hbase.region_server.operation.append.latency.p99'
| every 1m

Passaggi successivi

Per una procedura dettagliata su come utilizzare Ansible per installare l'agente Ops, configurare un'applicazione di terze parti e installare una dashboard di esempio, guarda il video Installare l'agente Ops per risolvere i problemi delle applicazioni di terze parti.