Pular para conteúdo

Monitoração - Produção

Visão Geral

A monitoração de um ambiente produtivo tem como principal objetivo detectar ofensores dos sistemas antes que ocorra uma falha ou degradação geral do sistema que está sendo monitorado, identificando possíveis problemas que possa afetar a operação, otimizar recursos através da análise das métricas coletadas e receber alertas para notificar equipes sobre eventos críticos ou tendências anormais.

A interface deve ser simplificada indicando somente os recursos que estão com alerta amarelo ou vermelho. Alerta amarelo é um indicador que há grande chance de haver impacto. Por exemplo, um disco que está com ocupação de acima de 80% de sua capacidade.

Alerta vermelho é um indicador que há impacto em um dos componentes do cluster. Por exemplo, um dos nós do cluster do openshift está indisponível mas os outros nós estão suprindo sua falta.

Os recursos que estão funcionando corretamente, dentro da normalidade, não devem aparecer no dashboard de alerta porque a informação relevante é aquela que há problemas nos pontos monitorados.

O ambiente de monitoração Zabbix deve estar em servidores exclusivos e independentes da solução a ser monitoração. Por exemplo, o Zabbix necessita de um banco de dados MySQL que deve não deve ser compartilhado com mais nenhuma outra solução. A exclusividade e independência dos recursos é necessário em virtude da confiabilidade que o sistema de monitoramento de ter. Um sistema de monitoração instável gerará muitos falsos positivos, desacreditando totalmente a solução.

Finalmente, o sistema de monitoração deve ter integração com um sistema de chamados, para gerenciamento de problemas, registro de problemas e respectivas ações corretivas, bem como ter a possibilidade geração de relatórios e performance dos SLAs.

Caso exista a necessidade de uma apresentação para o cliente segue o link da apresentação Monitoramento_Zabbix.pptx

Sobre a ferramenta de Monitoração Zabbix

1. Características

  • O Zabbix é projetado para ser dimensionado desde pequenos ambientes, com poucos dispositivos, até grandes ambientes com milhares de dispositivos monitorados

  • Monitoramento distribuído – Através dos seus Proxies, é possível a coleta das informações de forma descentralizada e reunir as informações centralizando-as através do Zabbix Server

  • Alto Desempenho – Ele é projetado para extrair as informações necessárias e armazená-las de forma ágil em seu sistema de banco de dados

  • Agente Zabbix – Ele é utilizado com padrão para coleta efetiva do maior número de informações do host

  • Fácil Integração com outros sistemas

2. Elementos da arquitetura do Zabbix

  • Interface web

Uma interface web é fornecida para permitir fácil acesso ao Zabbix de qualquer local ou plataforma. A interface faz parte do servidor Zabbix e geralmente roda na mesma máquina física do servidor.

  • Proxy Zabbix

O proxy atua como proxy e pode coletar dados de desempenho e disponibilidade em nome do servidor Zabbix. Esta é uma parte opcional de uma implantação Zabbix, mas pode ser muito benéfica para distribuir a carga de um único servidor Zabbix.

  • Agente Zabbix

Um agente Zabbix é um programa especial que permite a comunicação com o servidor mestre. Ele monitora ativamente os recursos e aplicações locais e reporta os dados coletados ao servidor Zabbix.

O Zabbix pode monitorar milhares de dados de servidores, máquinas virtuais, aplicações e dispositivos de rede em tempo real. Isso permite detectar problemas antes que eles chamem a atenção dos usuários.

3. Sizing

Nome Plataforma CPU/Memória SGDB Host monitorados
Small CentOS Virtual Appliance MySql ou InnoDB 100
Medium CentOS 2 cores/ 2G MySql ou InnoDB 500
Large RH Enterprise Linux 4 cores/8GB RAID 10 MySql ou PostgreSQL >1000
Very Large RH Enterprise Linux 8 cores/16GB RAID 10 MySql ou PostgreSQL >10000

4. Item básicos de Monitoração

Memória, CPU, Disco, Rede, Porta TCP e Serviços de Aplicações. Muitas da funcionnalidades avançadas do Zabbix estão relacionados ao agente que é instalado nos servidores da solução.

Por exemplo, o agente Zabbix possui as funcionalidades de ver as principais métricas do Oracle, PostgreSQL e MySQL

5. Item avançados de Monitoração

Uma das caracteristica do Zabbix é sua flexibilidade. Ele não se limita apenas aos itens dos seus agentes sem possivel fazer qualquer tipo de monitoração via shell scripts. A seguir alguns exemplos:

  • Web através da url e seus respectivos conteúdos e status

  • Scripts em bash

  • Validação de Backup

  • Checagem de Validade do Certificado Digital
  • Monitoramento dos Pods e Serviços do Openshift
  • Qualquer saída do script bash

Onde utilizamos o Zabbix

  • SMSUB – Integração com os sistemas de chamados SCCD e ITSM (Prodesp)
  • SAA – Envio dos incidentes por email aos responsáveis
  • SABESP – Envio dos incidentes por email aos responsáveis
  • SOCICAM – Abertura de chamados automaticamente via sistema MILVUS
  • PORTO DE SÃO SEBASTIÃO - Envio dos incidentes por email aos responsáveis

Monitoração dos recursos computacionais GCP

Visão Geral

Projetos que utilizam recursos computacionais GCP, podem ser monitorados pelo próprio Dashboard disponibilizado pelo provedor. Com isso, podemos realizar todas as atividades de observabilidade de um determinado ambiente, como:

  • Análise de registros;
  • Exploração de métricas e rastreamento;
  • Alertas e consumo dos recursos.

Esta monitoração captura informações diretamente das APIs da GCP fornecendo métricas dos produtos gerenciados pela Google. Tem uma riqueza de detalhes importantes para os desenvolvedores uma vez que há correlação entre carga e consumo de recursos computacionais.

Podemos utilizar esses recursos pré-configurados ou criar nossos próprios Dashboards conforme as necessidades de cada projeto. Para isso, utilizamos um conjunto de ferramentas e recursos que juntos possam fornecer uma visão contínua do desempenho do sistema. Ao utilizar ferramentas como Grafana, Prometheus e dataSources específicos, é possível identificar proativamente problemas, otimizar recursos e estabelecer alertas para garantir a estabilidade e a eficiência da infraestrutura. Através da análise constante dessas métricas, a monitoração não apenas permite a detecção precoce de falhas, mas também oferece insights valiosos para aprimorar a utilização de recursos e manter a integridade operacional do ambiente.

Stack de monitoração

A equipe responsável por monitorar o ambiente, pode-se beneficiar de algumas ferramentas e datasources disponíveis para esse propósito e de forma gratuíta. Basicamente, podemos construir dashboards totalmente customizados e de acordo com as necessidades de cada projeto.

Para construir uma stack de monitoração, podemos utilizar os seguintes recursos:

  • Google Compute Engine para a criação da instância.
  • IAM para o controle de acesso aos recursos GCP;
  • Grafana para a construção e apresentação dos Dashboards;
  • Datasources para a coleta de métricas.

Utilizando uma instância GCE, instalamos a ferramenta Grafana para criar os dashboards e conectar certos recursos computacionis GCP, através de data sources específicos. Em seguida criamos uma conta de serviço com todas as Roles necessárias e associamos a mesma nessa instância. Assim, o Grafana terá permissão para coletar as métricas de cada Recurso GCP.

Todo esse processo de criação e configuração, poderá ser realizado de forma automática, utilizando outras ferramentas como Terraform para o provisionamento dessa instäncia e em seguida scripts shell para a instalação e configuração do Grafana.

O diagrama a seguir ilustra a solução desenvolvida:

grafa

Arquitetura de referência para a monitoração dos recursos computacionais GCP.

Acesso ao Dashboard de Monitoração

Antes de se realizar o acesso ao Grafana, se faz necessário verificar os IP`s que foram associados a instância GCE. Essa máquina poderá ter tanto um IP interno quanto externo(não recomendado). Para acesso utilizando IP externo, informe o IP e porta 3000 em qualquer navegador web.

Para acesso ao Grafana utilizando um IP interno da instância, se faz necessário criar uma ponte do computador do usuário para uma outra instância GCE.

Em um terminal shell, execute o comando abaixo:

gcloud compute ssh --zone "southamerica-east1-b" "nome-da-vm" --project "seu-projeto" -- -L 1236:192.168.148.9:3000

Lembre-se de ajustar as informações, como a zona, o nome da VM e o projeto, conforme a configuração específica do seu ambiente.

Em seguida abra um navegador web e acesse o endereço http://localhost:1236 ⧉. Insira as credenciais adequadas, se necessário.

A partir desse ponto, o analista responsável já poderá criar seus próprios Dashboards, seguindo a documentação oficial ⧉ do Grafana.

Alertas do Google Cloud Platform

Alguns alertas poderão ser configurados diretamente na própria ferramenta Grafana ⧉ ou através do recurso Alert ⧉ do GCP. No grafana, basta editar o painel de uma determinada monitoração e verificar se existe uma aba de nome "Alert". Caso positivo, clique no botão New alert rule e siga as instruções apresentada na tela.

Para configurar esses alertas no próprio recurso GCP, será necessário criar uma política de alerta, selecionando a métrica que será monitorada, informar o treshold, selecionar um canal de notificação e definir o nome da política.

Fluxo de monitoração | Arquitetura de monitoração do SGF