Monitoramento de bancos de dados com Prometheus + Grafana
MonitoramentoNível: IntermediárioDuração: 60–120 minInstala um servidor de monitoramento central (Prometheus, Alertmanager, Grafana) e adiciona aos servidores monitorados o node_exporter e os exporters de banco que você selecionar: PostgreSQL, MySQL, Oracle, SQL Server, MongoDB, Redis, Elasticsearch. Inclui usuários de monitoramento com privilégio mínimo, serviços systemd, regras básicas de alerta, notificação por e-mail/webhook, provisioning de datasources e dashboards prontos. É a continuação do passo 'Conectar o monitoramento' no fim dos guias de instalação de bancos; ao final, você tem um monitoramento que mostra as métricas de todos os servidores em uma única tela e envia notificação quando algo dá errado.
Topologia: 1 servidor de monitoramento + servidores monitorados
Antes de começar
- O servidor de monitoramento e os servidores Linux monitorados rodam um sistema operacional suportado; os relógios estão sincronizados (chrony). A diferença de horário causa erros "out of bounds" e alertas falsos no Prometheus.
- O servidor de monitoramento tem disco suficiente para /var/lib/prometheus: pelo menos alguns GB para … servidores × … dias; recomenda-se um disco/LV separado. São necessários pelo menos 2 CPUs e 4 GB de RAM.
- As portas dos exporters estão abertas do servidor de monitoramento (…) para cada servidor: 9100 (node)…, 9187 (PostgreSQL)……, 9104 (MySQL)……, 9161 (Oracle)……, 9216 (MongoDB)……, 9121 (Redis)……, 9114 (Elasticsearch)……; … para os servidores SQL Server…. … (Grafana) dos usuários para o servidor de monitoramento.
- Os servidores conseguem acessar github.com por HTTPS (binários dos exporters e do Prometheus), e o servidor de monitoramento também acessa …rpm.grafana.com…apt.grafana.com…; se não conseguirem, baixe os arquivos em outra máquina e copie-os.
- Nos servidores PostgreSQL, o pg_hba.conf contém host all all 127.0.0.1/32 scram-sha-256 (ou uma regra mais restrita): o exporter conecta localmente via TCP com senha.
- Você tem, em cada banco, uma conta administrativa capaz de criar o usuário de monitoramento (PostgreSQL: postgres, MySQL: root, Oracle: SYSDBA, SQL Server: sysadmin, MongoDB: userAdmin, Redis: um usuário com privilégios de ACL, Elasticsearch: elastic).
- Crie entradas no cofre de senhas para as senhas dos usuários de monitoramento. As senhas são solicitadas de forma interativa nos passos e gravadas somente em arquivos (0600) legíveis pelo usuário do exporter correspondente.
Fases do guia
- Preparação — Instalar as ferramentas básicas e sincronizar o relógio · Firewall: abrir as portas dos exporters para o servidor de monitoramento · Firewall: abrir a porta do Grafana
- node_exporter (métricas do sistema operacional) — Baixar e instalar o node_exporter · Definir o serviço do node_exporter · Iniciar o node_exporter
- PostgreSQL: postgres_exporter — Criar a role de monitoramento (pg_monitor) · Definir a senha da role de monitoramento · Baixar e instalar o postgres_exporter · Gravar as configurações de conexão e o arquivo de senha · Definir o serviço do postgres_exporter · Iniciar o postgres_exporter
- MySQL: mysqld_exporter — Criar o usuário de monitoramento e o arquivo de credenciais do exporter · Baixar e instalar o mysqld_exporter · Definir o serviço do mysqld_exporter · Iniciar o mysqld_exporter
- Oracle: oracledb_exporter — Criar o usuário de monitoramento · Baixar e instalar o oracledb_exporter · Gravar a configuração do exporter · Definir o serviço do oracledb_exporter · Iniciar o oracledb_exporter
- SQL Server: sql_exporter — Criar o login de monitoramento (no SQL Server …) · Baixar e instalar o sql_exporter · Gravar a configuração do alvo (…) · Definir o template de serviço do sql_exporter · Iniciar o sql_exporter (…)
- MongoDB: mongodb_exporter — Criar o usuário de monitoramento (mongosh) · Baixar e instalar o mongodb_exporter · Gravar o arquivo de credenciais · Definir o serviço do mongodb_exporter · Iniciar o mongodb_exporter
- Redis: redis_exporter — Criar o usuário de monitoramento (ACL) · Baixar e instalar o redis_exporter · Gravar o arquivo de credenciais · Definir o serviço do redis_exporter · Iniciar o redis_exporter
- Elasticsearch: elasticsearch_exporter — Criar a role e o usuário de monitoramento · Baixar e instalar o elasticsearch_exporter · Gravar o certificado da CA e o arquivo de credenciais · Definir o serviço do elasticsearch_exporter · Iniciar o elasticsearch_exporter
- Prometheus — Baixar e instalar o Prometheus · Definir os alvos de scrape (prometheus.yml) · Gravar as regras de alerta · Validar a configuração · Definir o serviço do Prometheus · Iniciar o Prometheus
- Alertmanager — Baixar e instalar o Alertmanager · Gravar a configuração de notificação · Validar a configuração · Definir o serviço do Alertmanager · Iniciar o Alertmanager
- Grafana — Definir o repositório do Grafana · Definir o repositório do Grafana · Instalar o Grafana · Aplicar as configurações de segurança · Definir o datasource do Prometheus (provisioning) · Definir o provisioning de dashboards …
- Verificação — Verificar se todos os alvos estão UP · Verificar se as regras foram carregadas · Enviar um alerta de teste · Verificar os dashboards do Grafana
- Pós-instalação — Fazer backup do sistema de monitoramento · Aplicar o checklist de segurança