Este tópico descreve como implantar o OBCloud Exporter e o Prometheus para monitorar o ApsaraDB for OceanBase.
Contexto
O OBCloud Exporter é uma ferramenta do ApsaraDB for OceanBase para processamento de dados do banco de dados. Use essa ferramenta para autenticar-se no ApsaraDB for OceanBase, obter dados e monitorar o banco de dados com o Prometheus.
Você pode executar o Prometheus diretamente no sistema ou implantá-lo com docker.
Pré-requisitos
Java 8 ou superior instalado.
docker implantado.
Execute o Prometheus no sistema para monitorar o ApsaraDB for OceanBase
-
Baixe o OBCloud Exporter.
NotaAtualmente, não é possível baixar o OBCloud Exporter diretamente. Para obter a ferramenta, entre em contato com o Suporte Técnico do OceanBase.
-
Implante o OBCloud Exporter.
-
Descompacte o pacote de instalação do OBCloud Exporter no diretório
/opt/obcloud-exporter.mkdir /opt/obcloud-exporter tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1Os seguintes arquivos serão extraídos do pacote de instalação:
Dockerfile: arquivo de build do container docker.
muticloud_metric_config.yaml: arquivo de configuração de métricas. Por padrão, não é necessário modificar este arquivo.
application.yaml: arquivo de configuração de coleta.
obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar: programa do OBCloud Exporter.
readme.md: descrição do projeto.
-
Edite o arquivo de configuração application.yaml.
# Monitor name. aliyun_monitor: # Identity credentials. credential: access_key_id: xxx access_key_secret: xx region_id: ap-southeast-1 # Endpoint. end_point: xxx # Whether to periodically refresh metrics. The default value is false. metric_meta_auto_refresh: false instances: # Instance ID. - instance_id: xxx # To query data of a specified tenant in the cluster, you must configure tenant_id. tenant_id: xxx # Instance type, which can be cluster (cluster instance) or tenant (tenant instance or serverless instance). instance_type: tenant metrics:Descrição dos parâmetros:
access_key_id e access_key_secret: par de AccessKey para autenticação. Solicite um par de AccessKey na plataforma correspondente. Para mais informações, consulte Criar um AccessKey.
region_id e end_point: Para mais informações, consulte Regiões (ApsaraDB for OceanBase).
metric_meta_auto_refresh: define se as métricas devem ser atualizadas periodicamente. O valor padrão é false.
instances: instâncias a serem monitoradas. Separe as instâncias de cluster ou tenant com hifens (-).
-
instance_id: ID da instância de cluster, instância serverless ou instância de tenant.
NotaO valor não pode ser um ID de tenant dentro de um cluster.
instance_type: Os valores válidos são cluster e tenant. Se o valor de instance_id for um ID de instância de cluster, defina este parâmetro como cluster. Se for um ID de instância de tenant ou serverless, defina como tenant.
tenant_id: Parâmetro obrigatório para consultar dados de um tenant específico em um cluster.
-
metrics: métricas a serem coletadas. Se este parâmetro não for especificado, todas as métricas serão coletadas. Especifique as métricas no seguinte formato:
instances: -instance_id: xxx tenant_id: xxx instance_type: cluster metrics: - sql_all_rt - sql_delete_rtNotaA coleta de um grande número de métricas pode afetar a velocidade do processo. Nesse caso, utilize vários exporters para realizar a coleta.
-
-
Execute o arquivo JAR do OBCloud Exporter.
java -jar /opt/obcloud-exporter/obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jarVerifique o resultado da implantação em um navegador. Acesse a porta 9400 no endereço IP correspondente para confirmar o recebimento dos dados de monitoramento.
NotaNa prática, use o endereço IP e o número de porta configurados para o acesso.
-
Baixe a versão necessária do Prometheus no site oficial. Veja abaixo um exemplo de download do Prometheus 2.50.1 para Linux:
wget https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz -
Implante o Prometheus.
-
Descompacte o pacote de instalação do Prometheus no diretório
/opt/prometheus.mkdir -p /opt/prometheus tar -zxvf prometheus-2.50.1.linux-amd64.tar.gz -C /opt/prometheus --strip-components=1 -
Mova o arquivo de configuração prometheus.yml para o diretório de trabalho e edite-o conforme necessário.
mv /opt/prometheus/prometheus.yml /usr/local/bin/ vi /usr/local/bin/prometheus.ymlModifique os seguintes parâmetros:
global: scrape_interval: 30s scrape_timeout: 20s scrape_configs: - job_name: "nodes" static_configs: - targets: ['localhost:9400'] -
Crie o arquivo de serviço e o diretório de armazenamento de dados do Prometheus.
mkdir /var/lib/prometheus/ sudo vim /etc/systemd/system/Prometheus.serviceInsira e salve o seguinte conteúdo:
NotaOs parâmetros User e Group são opcionais. Para obter informações sobre como configurar um nome de usuário e um grupo de usuários, consulte a próxima etapa.
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Restart=on-failure ExecStart=/opt/prometheus/prometheus \ --config.file /usr/local/bin/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ [Install] WantedBy=multi-user.target -
(Opcional) Configure um nome de usuário e um grupo de usuários. Caso as credenciais especificadas na etapa anterior já existam, ou se nenhuma foi definida, ignore esta etapa.
sudo groupadd prometheus sudo useradd -r -g prometheus prometheus sudo chown -R prometheus:prometheus /opt/prometheus /var/lib/prometheus sudo chmod -R 755 /opt/prometheus /var/lib/prometheus
-
-
Inicie o serviço do Prometheus.
# Reload systemd configurations. sudo systemctl daemon-reload # Start the Prometheus service. sudo systemctl start prometheus # Enable the Prometheus service to start at boot. sudo systemctl enable prometheus # Check the service status. sudo systemctl status prometheus -
Verifique se o Prometheus foi iniciado.
sudo netstat -ntlp | grep 9090
Implante o Prometheus usando docker para monitorar o ApsaraDB for OceanBase
-
Baixe o OBCloud Exporter.
NotaAtualmente, não é possível baixar o OBCloud Exporter diretamente. Para obter a ferramenta, entre em contato com o Suporte Técnico do OceanBase.
-
Implante o OBCloud Exporter.
-
Descompacte o pacote de instalação do OBCloud Exporter no diretório
/opt/obcloud-exporter.mkdir /opt/obcloud-exporter tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1Os seguintes arquivos serão extraídos do pacote de instalação:
Dockerfile: arquivo de build do container docker.
muticloud_metric_config.yaml: arquivo de configuração de métricas. Por padrão, não é necessário modificar este arquivo.
application.yaml: arquivo de configuração de coleta.
obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar: programa do OBCloud Exporter.
readme.md: descrição do projeto.
-
Edite o arquivo de configuração application.yaml.
# Monitor name. aliyun_monitor: # Identity credentials. credential: access_key_id: xxx access_key_secret: xx region_id: ap-southeast-1 # Endpoint. end_point: xxx # Whether to periodically refresh metrics. The default value is false. metric_meta_auto_refresh: false instances: # Instance ID. - instance_id: xxx # To query data of a specified tenant in the cluster, you must configure tenant_id. tenant_id: xxx # Instance type, which can be cluster (cluster instance) or tenant (tenant instance or serverless instance). instance_type: tenant metrics:Descrição dos parâmetros:
access_key_id e access_key_secret: par de AccessKey para autenticação. Solicite um par de AccessKey na plataforma correspondente. Para mais informações, consulte Criar um AccessKey.
region_id e end_point: Para mais informações, consulte Regiões (ApsaraDB for OceanBase).
metric_meta_auto_refresh: define se as métricas devem ser atualizadas periodicamente. O valor padrão é false.
instances: instâncias a serem monitoradas. Separe as instâncias de cluster ou tenant com hifens (-).
-
instance_id: ID da instância de cluster, instância serverless ou instância de tenant.
NotaO valor não pode ser um ID de tenant dentro de um cluster.
instance_type: Os valores válidos são cluster e tenant. Se o valor de instance_id for um ID de instância de cluster, defina este parâmetro como cluster. Se for um ID de instância de tenant ou serverless, defina como tenant.
tenant_id: Parâmetro obrigatório para consultar dados de um tenant específico em um cluster.
-
metrics: métricas a serem coletadas. Se este parâmetro não for especificado, todas as métricas serão coletadas. Especifique as métricas no seguinte formato:
instances: -instance_id: xxx tenant_id: xxx instance_type: cluster metrics: - sql_all_rt - sql_delete_rtNotaPara mais informações, consulte Métricas de monitoramento.
A coleta de um grande número de métricas pode afetar a velocidade do processo. Nesse caso, utilize vários exporters para realizar a coleta.
-
-
Inicie o OBCloud Exporter usando docker.
-
No diretório
/opt/obcloud-exporter, faça o build do container docker obcloud-exporter.cd /opt/obcloud-exporter docker build -t obcloud-exporter:1.0 . -
Inicie o container docker diretamente ou usando um arquivo de configuração externo.
-
Inicie o container docker diretamente.
docker run -itd -p9400:9400 --name obcloud-exporter obcloud-exporter:1.0 -
Inicie o container docker usando um arquivo de configuração externo.
docker run -itd -p9400:9400 -v /opt/obcloud-exporter/application.yaml:/app/application.yaml --name obcloud-exporter obcloud-exporter:1.0
-
-
-
Verifique o resultado da implantação em um navegador. Acesse a porta 9400 no endereço IP correspondente para confirmar o recebimento dos dados de monitoramento.
NotaNa prática, use o endereço IP e o número de porta configurados para o acesso.
-
Crie o arquivo de configuração prometheus.yml do Prometheus.
vi /usr/local/bin/prometheus.ymlEdite o arquivo de configuração.
global: scrape_interval: 30s evaluation_interval: 30s scrape_configs: - job_name: obcloud-exporter-test static_configs: # Local server and port number. - targets: ['obcloud-exporter:9400'] labels: instance: obcloud-exporter -
Inicie o serviço do Prometheus.
docker run -d \ -p 9090:9090 \ -v /usr/local/bin/prometheus.yml:/etc/prometheus/prometheus.yml \ --link obcloud-exporter \ --name prometheus \ prom/prometheus -
Verifique se o Prometheus foi iniciado.
sudo netstat -ntlp | grep 9090
Visualize dados de monitoramento do banco de dados pelo Prometheus
Acesse a URL do serviço Prometheus http://localhost:9090/targets em um navegador para visualizar os dados de monitoramento correspondentes.
Métricas de monitoramento
Ao configurar o OBCloud Exporter, especifique as métricas de monitoramento compatíveis com o ApsaraDB for OceanBase para que sejam coletadas. Durante a execução do OBCloud Exporter, o sistema sincroniza essas métricas, incluindo as de host do cluster e as de nível de tenant. Para mais informações, consulte métricas de monitoramento do cluster e métricas de monitoramento do tenant.
Se o parâmetro metric_meta_auto_refresh no arquivo de configuração application.yaml estiver definido como false, as métricas compatíveis corresponderão àquelas retornadas no acesso inicial. Se estiver definido como true, a lista de métricas compatíveis será atualizada a cada 10 minutos.