Criar Alarmes e Painel de Controle Personalizados de Monitoramento do OCI PostgreSQL usando Container Instances
Introdução
Este tutorial fornece instruções passo a passo para implantar uma solução de monitoramento personalizada para PostgreSQL usando um aplicativo Java baseado no Docker na Oracle Cloud Infrastructure (OCI). Demonstraremos como criar alertas e painéis personalizados para slots de replicação inativos e atraso de replicação na OCI usando um contêiner baseado em máquina virtual (VM). Embora a configuração atual se concentre no monitoramento do atraso de replicação do PostgreSQL e em slots de replicação inativos, o design é flexível e pode ser facilmente estendido para rastrear métricas adicionais do banco de dados modificando o código do aplicativo.
Objetivos
-
Implante um aplicativo Java baseado em Docker em uma máquina virtual do OCI para monitorar PostgreSQL.
-
Crie alarmes e painéis de controle personalizados no OCI para slots de replicação inativos e atraso de replicação usando a solução de monitoramento implantada.
Tarefa 1: Fazer Download e Configurar o Serviço Monitoring
-
Faça download do arquivo
Postgres-monitoring-services.zip
aqui: Postgres-monitoring-services.zip. -
Descompacte e siga as instruções do arquivo
README.md
para criar e executar o aplicativo. -
As instruções de build e implantação do Docker estão incluídas no repositório.
Observação: As instruções para criar e enviar a imagem do Docker já estão disponíveis no
README.md
do repositório de projetos.
Tarefa 2: Criar um Grupo Dinâmico
Os grupos dinâmicos permitem que sua VM de contêiner acesse serviços do OCI como OCI Monitoring, OCI Vault e OCI Registry sem usar credenciais com código fixo e sem armazenar credenciais em sua imagem.
Use as seguintes informações:
- Nome: Digite
psql_monitoring_with_container_vm_dg
. -
Regra de Correspondência:
ALL {resource.type = 'computecontainerinstance', resource.compartment.id = '<your-compartment-id>'}
Observação:
compartment.id
é o OCID do compartimento no qual a instância do contêiner será criada.
Tarefa 3: Configurar a Rede (VCN e Gateway de Serviço)
Para garantir uma comunicação perfeita, coloque sua VM contêiner na mesma sub-rede privada que seu sistema de banco de dados PostgreSQL. Ative o acesso aos serviços do OCI usando um gateway de serviço.
Regras da Lista de Segurança:
Certifique-se de que as regras a seguir sejam adicionadas à lista de segurança da sua sub-rede privada, se elas ainda não estiverem presentes.
Tipo | CIDR de Origem | Protocolo | Porta | Objetivo |
---|---|---|---|---|
Entrada | CIDR-de-sub-rede particular | TCP | 5,432 | PostgreSQL Acesso |
Saída | 0.0.0.0/0 | Tudo | Tudo | Acessar Serviços do OCI |
Tarefa 4: Usar o OCI Vault para Armazenamento Seguro de Senhas
Use o OCI Vault para armazenamento seguro de senhas para evitar credenciais de banco de dados de hardcoding.
-
Crie um Vault e adicione um Segredo que contenha a senha PostgreSQL.
-
Registre o OCID do Segredo do Vault.
-
Reutilize o segredo se ele já existir.
Tarefa 5: Definir Políticas de Oracle Cloud Infrastructure Identity and Access Management
Anexe estas políticas do OCI IAM.
Allow dynamic-group psql_monitoring_with_container_vm_dg to read vaults in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read secret-bundles in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to use metrics in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read repos in compartment <your-tenancy-id>
Tarefa 6: Iniciar o Container Instances
Vá para a Console do OCI, navegue até Developer Services, Artefato de Contêiner, Instâncias de Contêiner, Criar Instância e digite as seguintes informações:
- VCN/Sub-rede: Selecione o mesmo que o sistema de banco de dados.
- Shape: Selecione 1 OCPU, 4 GB.
- Imagem do Docker: Selecione No OCIR.
-
Variáveis de Ambiente:
DB_PASSWORD_VAULT_ID=<your-vault-secret-ocid> DB_SYSTEM_ID=<your-db-system-ocid> DB_PE=<your-db-system-private-endpoint-FQDN> DB_PSQL_USER=<your-db-user> METRIC_COMPARTMENT_ID=<your-compartment-id> METRIC_NAMESPACE=postgres_monitor_with_container_vm REPLICATION_LAG_METRIC_NAME=replication_lag_metric INACTIVE_SLOTS_METRIC_NAME=inactive_slot_metric MONITOR_INTERVAL_SEC=60
Observação: O acesso é concedido sem credenciais por meio do grupo dinâmico do OCI IAM.
Tarefa 7: Verificar Logs na Console do OCI
Vá para a Console do OCI, navegue até Developer Services, Artefato de Contêiner, Instâncias de Contêiner, selecione sua instância e clique na guia Contêineres para inspecionar logs e status de runtime.
Tarefa 8: Exibir Métricas no Metrics Explorer
Vá para a Console do OCI, navegue até Observabilidade e Gerenciamento, Explorador de Métricas e digite as seguintes informações:
- Namespace: Digite
postgres_monitor_with_container_vm
. - Métricas: Selecione
replication_lag_metric
einactive_slot_metric
. - Filtro: Digite
DBSystemId = "<your-db-system-ocid>"
.
Exemplo de Consulta:
replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()
Tarefa 9: Configurar um Tópico e Assinaturas de Notificações do OCI
-
Vá para a Console do OCI, navegue até Application Integration e clique em Notifications.
-
Crie um Tópico. Por exemplo,
PostgresCustomMonitoringAlerts
. -
Adicione assinaturas (e-mail, webhook etc.).
-
Vincule este tópico aos seus alarmes para alertas em tempo real.
Tarefa 10: Configurar Alarmes do OCI Monitoring para Métricas Principais
-
Alarme de Lag de Replicação
replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.max()
- Trigger: Digite > 1,000,000 (1 MB).
- Atraso: Digite 5 minutos.
- Severidade: Selecione Crítico.
-
Alarme de Slots de Replicação Inativa
inactive_slot_metric[1h]{DBSystemId = "<your-db-system-ocid>"}.max()
- Trigger: Digite > 1.
- Atraso: Digite 2 horas.
- Severidade: Selecione Advertência.
-
Alarme de Dados Ausente
- Métrica: Selecione
replication_lag_metric
. - Trigger: Digite Nenhum dado por 10 minutos.
- Severidade: Selecione Erro.
- Métrica: Selecione
Tarefa 11: Criar um Painel Personalizado
-
Vá para a Console do OCI, navegue até Observabilidade e Gerenciamento e clique em Painéis de Controle.
-
Clique em Novo Painel de Controle.
-
Adicione widgets usando o Gráfico de Métricas ou o Query Builder.
-
Digite as seguintes informações.
- Namespace: Digite
postgres_monitor_with_container_vm
. - Métricas: Selecione
replication_lag_metric
einactive_slot_metric
.
- Namespace: Digite
-
Personalize tipos de gráfico, filtros e intervalo de tempo.
Tabela Resumida
Componente | Objetivo |
---|---|
Grupo Dinâmico | Concede ao OCI acesso à VM do contêiner |
OCI Vault | Armazenamento seguro de credenciais do banco de dados |
OCI Registry | Repositório de imagens do Docker do host |
Agente de Monitoramento | Coleta métricas PostgreSQL personalizadas |
Alarmes | Alertas sobre atraso, slots, dados ausentes |
VM do Contêiner | Executa a ferramenta de monitoramento baseada em Java |
Dashboard | Visualiza métricas em tempo real |
Destaques da arquitetura serverless e resiliente
-
Arquitetura sem Servidor:
- Implantado usando a VM de contêiner, não há necessidade de gerenciar a infraestrutura manualmente.
- O OCI lida com o provisionamento e a recuperação de VMs com falhas no nível do host
Vantagem: Reduz a sobrecarga operacional e melhora a tolerância a falhas.
-
Reinicialização automática do contêiner:
- Os contêineres são definidos com uma política de reinicialização padrão.
- Se o aplicativo travar ou sair inesperadamente, ele será reiniciado automaticamente.
Vantagem: garante alta disponibilidade e minimiza o tempo de inatividade.
-
Alarme Baseado em Métrica:
- Um alarme dedicado está configurado para ser acionado quando as métricas esperadas estão ausentes.
Vantagem: atua como uma segurança contra falhas para detectar falhas silenciosas e ativar alertas antecipados.
Solução de Problemas e Problemas
-
Problemas de Conectividade:
- Certifique-se de que a porta
5432
esteja aberta na lista de segurança da sub-rede. - Confirme se o gateway de serviço está anexado para acesso privado.
- Certifique-se de que a porta
-
Erros de Permissão do OCI IAM:
- Verifique se o grupo dinâmico corresponde ao compartimento correto.
- Certifique-se de que as políticas necessárias estejam em vigor.
-
Erros de configuração:
- Validar variáveis de ambiente.
- Verifique os OCIDs de segredo e métrica.
- Use logs para rastrear falhas de runtime.
Links Relacionados
Confirmações
- Autores - Arvind Yadav, Kanaram Bhari (Engenheiro de Software - OCI Database with PostgreSQL)
Mais Recursos de Aprendizado
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Create PostgreSQL Custom OCI Monitoring Alarms and Dashboard using Container Instances
G37664-01
Copyright ©2025, Oracle and/or its affiliates.