Middle
Que monitorização utiliza para as suas aplicações e que ferramentas emprega para isso?
sobes.tech IA
Resposta da IA
Utilizo uma monitorização abrangente que inclui as seguintes áreas:
- Monitorização de infraestrutura: Estado dos servidores, redes, armazenamento (CPU, memória, disco, tráfego, disponibilidade).
- Monitorização de aplicações (APM): Desempenho do código, requisições, erros, transações.
- Registo: Recolha, centralização e análise de logs de aplicações e sistemas.
- Monitorização da experiência do utilizador (RUM/Sintético): Acompanhamento do comportamento dos utilizadores, tempos de carregamento de páginas, disponibilidade de funcionalidades.
As ferramentas que uso frequentemente:
| Categoria | Ferramentas | Propósito |
|---|---|---|
| Infraestrutura | Prometheus, Zabbix, Nagios | Recolha de métricas de várias fontes, alertas quando as métricas ultrapassam os limites definidos. |
| APM | New Relic, Dynatrace, Datadog APM, OpenTelemetry | Rastreio de requisições, análise do desempenho de funções, identificação de "gargalos" no código. |
| Registo | ELK Stack (Elasticsearch, Logstash, Kibana), Loki | Recolha centralizada, análise, armazenamento e visualização de logs, pesquisa e análise de erros. |
| Visualização | Grafana | Criação de painéis informativos para mostrar todas as métricas e logs num formato conveniente. |
| Alertas | Alertmanager, PagerDuty | Notificação aos responsáveis sobre eventos críticos e problemas. |
| Experiência do utilizador | Sentry, Site24x7, Pingdom | Monitorização da disponibilidade e tempos de resposta de aplicações web, acompanhamento de erros do lado do cliente. |
Para recolha de métricas de aplicações, frequentemente uso exportadores que fornecem métricas num formato compreensível pelo Prometheus. Por exemplo:
# Exemplo de configuração do Prometheus para recolha de métricas com node_exporter
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['<ip_do_servidor>:9100'] # IP e porta do node_exporter
Para a centralização de logs, configuro agentes que redirecionam os logs para o sistema de recolha:
# Exemplo de comando para instalar o Filebeat (para ELK Stack)
sudo apt update && sudo apt install filebeat
sudo filebeat modules enable system nginx # Ativar módulos para recolha de logs do sistema e nginx
sudo systemctl start filebeat
A escolha de uma ferramenta específica depende da arquitetura da aplicação, da escala da infraestrutura e do orçamento. É importante configurar regras de agregação de métricas e alertas de modo a receber notificações oportunas e relevantes sobre problemas, sem sobrecarregar a equipa com informações excessivas.