Duração: 80 minutos (explicação 20, prática guiada 50, verificação 10). Resultados dos TdR trabalhados: Diagnóstico, desempenho e disponibilidade; Monitorização, análise de tráfego e gestão.
Objectivos
- Definir disponibilidade e calcular percentagens em tempo de indisponibilidade.
- Montar uma verificação periódica simples de serviços com script.
- Distinguir monitoria activa (sondas) de passiva (registos, contadores).
Medir para gerir
Disponibilidade = tempo em funcionamento / tempo total. 99% ao ano são cerca de 3 dias e 15 horas de paragem; 99,9% cerca de 8 horas e 46 minutos. Um objectivo só faz sentido se for medido da mesma maneira todos os meses e se houver definição do que conta como «indisponível».
Monitoria activa envia sondas (ping, pedido HTTP, consulta DNS) e mede a resposta. Monitoria passiva recolhe contadores (SNMP, módulo 11) e registos. Ferramentas completas existem (várias gratuitas); aqui faz-se uma sonda mínima para perceber o princípio.
Caso fictício
A direcção da DPE (fictícia) pergunta «quanto tempo o portal esteve em baixo no mês passado?» e ninguém sabe responder.
Prática guiada em rede isolada
Rede de prática fictícia, criada dentro de um computador de prática com o script base (módulo 1, lição 1). Nunca use estes passos na rede de produção nem contra endereços reais. As saídas mostradas são exemplos didácticos, não resultados de uma execução.
Topologia (descrição em texto)
- pc-adm (10.10.10.10) — ligado a r1 pela VLAN 10.
- srv (10.10.20.53) — ligado a r1 pela VLAN 20.
- r1 (encaminhador da sede) — ligado a pc-adm, srv, r2 e isp.
- r2 (encaminhador da delegação) — ligado a r1 e a pc-del (10.20.10.10).
- isp (operador simulado) — ligado a r1 e ao servidor externo 198.51.100.10 (endereço dentro de isp).
- Servidor web de teste no srv; sonda corre no pc-adm (futuro servidor de monitorização 10.10.20.16).
Passos
Ponha o serviço e a sonda.
Consola C (deixar aberta): sudo ip netns exec srv python3 -m http.server 80 --bind 10.10.20.53 cat > /tmp/sonda.sh <<'EOF' #!/bin/sh # sonda.sh — regista uma linha por minuto: data;alvo;estado;ms alvo=http://10.10.20.53/ while true; do t0=$(date +%s%3N) if python3 -c "import urllib.request as u; u.urlopen('$alvo', timeout=3)" 2>/dev/null; then e=OK; else e=FALHA; fi echo "$(date -Is);$alvo;$e;$(( $(date +%s%3N) - t0 ))" >> /tmp/sonda.csv sleep 60 done EOF chmod +x /tmp/sonda.sh Consola S (deixar aberta): sudo ip netns exec pc-adm /tmp/sonda.shProvoque uma paragem de 3 minutos e reponha.
Na consola C, Ctrl+C para parar o servidor de teste; aguardar 3 minutos (as linhas FALHA acumulam-se). Na consola C: sudo ip netns exec srv python3 -m http.server 80 --bind 10.10.20.53Calcule a disponibilidade do período.
awk -F';' '{t++; if($3=="OK") ok++} END {printf "%d amostras, %.1f%% disponível\n", t, 100*ok/t}' /tmp/sonda.csvSaída de exemplo (didáctica):
10 amostras, 70.0% disponível
Critérios de sucesso
- A sonda regista FALHA durante a paragem e OK depois.
- O formando calcula a disponibilidade e explica o limite da amostragem por minuto.
Como desfazer (reversão)
- Ctrl+C na consola S (sonda) e na consola C (servidor de teste).
- rm -f /tmp/sonda.sh /tmp/sonda.csv
Alternativa em papel: tarefas e respostas esperadas
- Quanto tempo de paragem permite 99,5% num mês de 30 dias?
- 0,5% de 43 200 minutos = 216 minutos (3 h 36 min).
- Porque a sonda por minuto não vê uma falha de 20 segundos?
- Amostragem: entre duas sondas a falha pode começar e acabar sem ser observada. Mais frequência dá mais precisão e mais carga.
- Defina «indisponível» para o portal da DPE.
- Ex.: a página inicial não responde com código 200 em menos de 3 segundos a partir da rede interna, em duas sondas seguidas.
Verifique o que aprendeu
Questão 1
99,9% de disponibilidade anual corresponde a cerca de:
- 8 horas e 46 minutos de paragem
- 3 dias
- 1 minuto
- 36 horas
Ver resposta comentada
Resposta: 8 horas e 46 minutos de paragem
0,1% de 8760 horas ≈ 8,76 horas.
Questão 2
Qual é monitoria passiva?
- Enviar ping
- Ler contadores SNMP e registos
- Pedir uma página
- Consultar DNS
Ver resposta comentada
Resposta: Ler contadores SNMP e registos
Passiva observa o que o equipamento já regista; activa gera um pedido de teste.
Em leitura fácil
- Disponível quer dizer: está a funcionar.
- Uma sonda testa o serviço de minuto a minuto.
- Assim sabemos quanto tempo esteve parado.
Fontes
- Linux iproute2 — páginas de manual ip(8), ip-netns(8), bridge(8), tc(8) (https://man7.org/linux/man-pages/man8/ip.8.html)
- NIST Cybersecurity Framework 2.0 (https://www.nist.gov/cyberframework)
