Monitoramento e alertas
Sabe quando serviço cai —— antes do usuário
Monitoramento não é opcional
Serviço tá rodando não significa estar tranquilo. CPU no máximo, você não vê. Memory leak, você não vê. Disco cheio, você não vê. Só descobre quando usuário vem reclamar que não funciona mais, super passivo.
Monta um sistema de monitoramento e alerta, problema acontecendo você já sabe antes do usuário, esse é o jeito certo de fazer ops.
sexta à noite sai do trabalho e servidor tá off quietly, segunda de manhã todo mundo reclamando "não tá funcionando". Você abre servidor e vê — disco cheio, log crescendo descontrolado encheu espaço. Se tivesse monitoramento, sexta à noite recebia aviso, 5 minutos resolveria.
Usa Prometheus pra coletar métrica, Grafana pra visualizar dashboard, com regra de alerta, CPU alto, memória faltando, serviço morreu, avisa no celular ou email na hora. Solução inteira é open source free, Docker deploy em um clique.
deploy em um clique do stack de monitoramento
Use docker-compose para subir Prometheus, Grafana e Node Exporter tudo junto:
# Criar diretório de monitoramento
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./alert_rules.yml:/etc/prometheus/alert_rules.yml
- prometheus_data:/prometheus
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.retention.time=30d"
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
ports:
- "3001:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=your_secure_password
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: always
ports:
- "9100:9100"
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- "--path.procfs=/host/proc"
- "--path.sysfs=/host/sys"
- "--path.rootfs=/rootfs"
alertmanager:
image: prom/alertmanager:latest
container_name: alertmanager
restart: always
ports:
- "9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
volumes:
prometheus_data:
grafana_data:
Configuração Prometheus
global:
regra de alerta
groups:
configuração de notificação de alerta
depois de alerta dispara, dá pra notificar você? Email, ou manda pra DingTalk/Wechat/Slack:
global: