Capítulo 9: Infraestrutura Web e Load Balancing
Nota: Este tutorial faz parte de uma série sobre tmux. Veja a Parte 8 aqui.
Introdução ao Cenário de Infraestrutura Web
A administração de infraestrutura web moderna requer coordenação cuidadosa entre múltiplos componentes que trabalham em conjunto para proporcionar alta disponibilidade, performance otimizada e experiência consistente para usuários finais. Em ambientes de produção, raramente um único servidor web é suficiente para atender demandas de tráfego, disponibilidade e redundância necessárias para aplicações críticas de negócio.
Nosso cenário prático utiliza uma configuração típica de alta disponibilidade composta por três componentes principais: um load balancer (ans-lb) localizado em 192.168.10.225, um servidor web ativo (ans-web-active) em 192.168.10.230, e um servidor web standby (ans-web-standby) em 192.168.50.231. Esta arquitetura reflete padrões comuns de design onde o load balancer atua como ponto de entrada único, distribuindo tráfego entre servidores web backend e proporcionando failover automático em caso de falhas.
O load balancer, executando no servidor ans-lb, é responsável por receber todas as requisições de clientes, avaliar a saúde dos servidores backend, distribuir carga de forma inteligente e redirecionar tráfego automaticamente quando problemas são detectados. O servidor web ativo (ans-web-active) serve como servidor primário, handling a maioria do tráfego em condições normais, enquanto o servidor standby (ans-web-standby) permanece pronto para assumir carga adicional ou substituir o servidor ativo em caso de falhas.
A complexidade da administração de infraestrutura web surge da necessidade de monitorar múltiplos aspectos simultaneamente: saúde individual de cada servidor, distribuição de carga entre backends, performance de aplicações, logs de acesso e erro, métricas de rede e status de health checks. O tmux proporciona a capacidade de organizar e visualizar todas estas informações de forma coerente, transformando o que seria uma tarefa fragmentada em múltiplas ferramentas e dashboards em um workflow unificado e eficiente.
Configuração do Ambiente de Infraestrutura Web
Estabelecimento da Sessão Base
A configuração eficaz de um ambiente tmux para administração de infraestrutura web começa com o estabelecimento de uma sessão dedicada que servirá como centro de comando para todas as operações relacionadas aos componentes web. Esta sessão deve ser organizada de forma a refletir a arquitetura da infraestrutura e facilitar monitoramento coordenado de todos os componentes.
1
2
3
4
5
6
7
8
9
10
11
12
13
# Criar sessão dedicada para infraestrutura web
tmux new-session -d -s web-infra
# Renomear a primeira janela para load balancer
tmux rename-window -t web-infra:0 'load-balancer'
# Configurar conexão com o load balancer
tmux send-keys -t web-infra:load-balancer 'ssh admin@192.168.10.225' C-m
# Verificar status inicial do load balancer
tmux send-keys 'sudo systemctl status nginx' C-m
tmux send-keys 'sudo nginx -t' C-m
tmux send-keys 'curl -I http://localhost' C-m
A sessão web-infra serve como ambiente centralizado onde todas as operações de administração de infraestrutura web são realizadas. A nomenclatura clara das janelas facilita identificação rápida do componente sendo administrado, especialmente importante quando alternando rapidamente entre diferentes servidores durante troubleshooting ou operações de manutenção.
Configuração de Conectividade Multi-Server
O próximo passo envolve estabelecer conectividade com todos os servidores da infraestrutura web, permitindo administração coordenada e monitoramento comparativo entre diferentes componentes. Esta configuração é especialmente valiosa para operações que afetam múltiplos servidores ou para análise de distribuição de carga.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Criar janela para servidor web ativo
tmux new-window -t web-infra -n 'web-active'
# Configurar conexão com o servidor ativo
tmux send-keys -t web-infra:web-active 'ssh admin@192.168.10.230' C-m
# Verificar status inicial do servidor ativo
tmux send-keys 'sudo systemctl status apache2' C-m
tmux send-keys 'curl -I http://localhost' C-m
# Criar janela para servidor web standby
tmux new-window -t web-infra -n 'web-standby'
# Configurar conexão com o servidor standby
tmux send-keys -t web-infra:web-standby 'ssh admin@192.168.50.231' C-m
# Verificar status inicial do servidor standby
tmux send-keys 'sudo systemctl status apache2' C-m
tmux send-keys 'curl -I http://localhost' C-m
# Criar janela para visão comparativa
tmux new-window -t web-infra -n 'overview'
# Dividir janela para acomodar todos os servidores
tmux split-window -t web-infra:overview -h
tmux split-window -t web-infra:overview.0 -v
# Configurar panes para cada servidor
tmux select-pane -t web-infra:overview.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux select-pane -t web-infra:overview.1
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux select-pane -t web-infra:overview.2
tmux send-keys 'ssh admin@192.168.50.231' C-m
Esta configuração estabelece conectividade direta com todos os componentes da infraestrutura web, proporcionando acesso imediato para administração, monitoramento e troubleshooting. A janela de overview permite visualização simultânea de métricas de todos os servidores, facilitando análise comparativa de performance e comportamento.
Implementação de Layouts Especializados
Para administração eficaz de infraestrutura web, diferentes layouts de tmux são apropriados para diferentes tipos de tarefas. Um layout de monitoramento pode incluir métricas de tráfego em tempo real, enquanto um layout de deployment pode focar em logs de aplicação e status de health checks.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Criar janela para monitoramento de tráfego
tmux new-window -t web-infra -n 'traffic'
# Configurar layout de três panes para monitoramento abrangente
tmux split-window -t web-infra:traffic -h
tmux split-window -t web-infra:traffic.1 -v
# Configurar monitoramento do load balancer
tmux select-pane -t web-infra:traffic.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -f /var/log/nginx/access.log' C-m
# Configurar monitoramento do servidor ativo
tmux select-pane -t web-infra:traffic.1
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'sudo tail -f /var/log/apache2/access.log' C-m
# Configurar monitoramento do servidor standby
tmux select-pane -t web-infra:traffic.2
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'sudo tail -f /var/log/apache2/access.log' C-m
Este layout de monitoramento proporciona visibilidade contínua do tráfego através de toda a infraestrutura web, desde o ponto de entrada no load balancer até os servidores backend. A visualização simultânea de logs de acesso permite identificação rápida de padrões de tráfego, problemas de distribuição de carga e anomalias de comportamento.
Monitoramento de Load Balancer
Configuração e Status do Nginx
O load balancer é o componente mais crítico da infraestrutura web, pois serve como ponto único de entrada e falha. O monitoramento eficaz do load balancer requer visibilidade de múltiplos aspectos: configuração ativa, status dos backends, distribuição de carga e performance de health checks.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela dedicada para monitoramento detalhado do load balancer
tmux new-window -t web-infra -n 'lb-monitoring'
# Configurar layout para múltiplas perspectivas de monitoramento
tmux split-window -t web-infra:lb-monitoring -h
tmux split-window -t web-infra:lb-monitoring.0 -v
tmux split-window -t web-infra:lb-monitoring.1 -v
# Monitorar configuração e status do Nginx
tmux select-pane -t web-infra:lb-monitoring.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "sudo nginx -T | grep -A 10 upstream"' C-m
# Monitorar conexões ativas
tmux select-pane -t web-infra:lb-monitoring.1
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "ss -tuln | grep :80"' C-m
# Monitorar logs de erro
tmux select-pane -t web-infra:lb-monitoring.2
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -f /var/log/nginx/error.log' C-m
# Monitorar recursos do sistema
tmux select-pane -t web-infra:lb-monitoring.3
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "top -b -n1 | grep -E \"(nginx|CPU|Mem)\" | head -10"' C-m
Esta configuração proporciona monitoramento abrangente do load balancer, incluindo configuração ativa, conexões de rede, logs de erro e utilização de recursos do sistema. A visualização simultânea permite identificação rápida de problemas de configuração, sobrecarga ou falhas de backend.
Health Checks e Backend Status
O monitoramento de health checks é crucial para garantir que o load balancer distribua tráfego apenas para servidores saudáveis. Esta funcionalidade requer visibilidade tanto dos resultados dos health checks quanto do comportamento dos servidores backend.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela para monitoramento de health checks
tmux new-window -t web-infra -n 'health-checks'
# Layout para monitoramento de backends
tmux split-window -t web-infra:health-checks -h
tmux split-window -t web-infra:health-checks.0 -v
tmux split-window -t web-infra:health-checks.1 -v
# Monitorar health check do servidor ativo
tmux select-pane -t web-infra:health-checks.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "curl -I http://192.168.10.230/health"' C-m
# Monitorar health check do servidor standby
tmux select-pane -t web-infra:health-checks.1
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "curl -I http://192.168.50.231/health"' C-m
# Monitorar logs de health checks
tmux select-pane -t web-infra:health-checks.2
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -f /var/log/nginx/access.log | grep health' C-m
# Monitorar status geral do balanceamento
tmux select-pane -t web-infra:health-checks.3
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "curl -s http://localhost/nginx_status"' C-m
Esta configuração permite monitoramento contínuo da saúde dos servidores backend e eficácia dos health checks. A visualização simultânea facilita identificação rápida de servidores que se tornaram indisponíveis e verificação de que o load balancer está respondendo adequadamente.
Análise de Distribuição de Carga
A análise de distribuição de carga é essencial para garantir que tráfego seja distribuído de forma eficiente entre servidores backend e que nenhum servidor seja sobrecarregado enquanto outros permanecem subutilizados.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela para análise de distribuição de carga
tmux new-window -t web-infra -n 'load-distribution'
# Layout para análise comparativa
tmux split-window -t web-infra:load-distribution -h
tmux split-window -t web-infra:load-distribution.0 -v
tmux split-window -t web-infra:load-distribution.1 -v
# Analisar tráfego no load balancer
tmux select-pane -t web-infra:load-distribution.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "tail -100 /var/log/nginx/access.log | awk '\''{print \$1}'\'' | sort | uniq -c | sort -nr | head -10"' C-m
# Analisar tráfego no servidor ativo
tmux select-pane -t web-infra:load-distribution.1
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "tail -100 /var/log/apache2/access.log | wc -l && echo \"Requests in last 100 lines\""' C-m
# Analisar tráfego no servidor standby
tmux select-pane -t web-infra:load-distribution.2
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "tail -100 /var/log/apache2/access.log | wc -l && echo \"Requests in last 100 lines\""' C-m
# Monitorar conexões ativas em cada servidor
tmux select-pane -t web-infra:load-distribution.3
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "echo \"=== Active Connections ===\" && ss -tuln | grep :80 && echo \"=== Backend Status ===\" && curl -s http://localhost/nginx_status"' C-m
Esta configuração proporciona análise detalhada de como carga está sendo distribuída através da infraestrutura, permitindo identificação de desequilíbrios e otimização de configurações de balanceamento.
Monitoramento de Servidores Web
Monitoramento do Servidor Ativo
O servidor web ativo tipicamente recebe a maior parte do tráfego e requer monitoramento intensivo para garantir que performance seja mantida e problemas sejam identificados rapidamente. O monitoramento eficaz inclui métricas de Apache, utilização de recursos e análise de logs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela dedicada para monitoramento do servidor ativo
tmux new-window -t web-infra -n 'active-server'
# Configurar layout para múltiplas perspectivas
tmux split-window -t web-infra:active-server -h
tmux split-window -t web-infra:active-server.0 -v
tmux split-window -t web-infra:active-server.1 -v
# Monitorar status do Apache
tmux select-pane -t web-infra:active-server.0
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "apache2ctl status"' C-m
# Monitorar processos Apache
tmux select-pane -t web-infra:active-server.1
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "ps aux | grep apache2 | grep -v grep | wc -l && echo \"Active Apache processes\""' C-m
# Monitorar logs de erro
tmux select-pane -t web-infra:active-server.2
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'sudo tail -f /var/log/apache2/error.log' C-m
# Monitorar recursos do sistema
tmux select-pane -t web-infra:active-server.3
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "top -b -n1 | head -15"' C-m
Esta configuração proporciona monitoramento abrangente do servidor web ativo, incluindo status do Apache, número de processos ativos, logs de erro e utilização de recursos do sistema. A visualização simultânea permite identificação rápida de problemas de performance ou sobrecarga.
Monitoramento do Servidor Standby
O servidor standby requer monitoramento diferente do servidor ativo, focando em prontidão para assumir carga adicional e verificação de que configurações permanecem sincronizadas com o servidor ativo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela dedicada para monitoramento do servidor standby
tmux new-window -t web-infra -n 'standby-server'
# Configurar layout similar ao servidor ativo
tmux split-window -t web-infra:standby-server -h
tmux split-window -t web-infra:standby-server.0 -v
tmux split-window -t web-infra:standby-server.1 -v
# Monitorar status do Apache
tmux select-pane -t web-infra:standby-server.0
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "apache2ctl status"' C-m
# Verificar sincronização de configuração
tmux select-pane -t web-infra:standby-server.1
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "ls -la /etc/apache2/sites-enabled/ && echo \"--- Config Check ---\" && apache2ctl configtest"' C-m
# Monitorar logs (deve ter menos atividade)
tmux select-pane -t web-infra:standby-server.2
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'sudo tail -f /var/log/apache2/access.log' C-m
# Monitorar recursos (deve ter baixa utilização)
tmux select-pane -t web-infra:standby-server.3
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "top -b -n1 | head -10"' C-m
Esta configuração permite verificação de que o servidor standby está pronto para assumir carga adicional e que configurações estão sincronizadas com o servidor ativo.
Monitoramento Comparativo de Performance
A comparação de performance entre servidores web é crucial para identificar discrepâncias que podem indicar problemas de hardware, configuração ou distribuição de carga inadequada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela para comparação de performance
tmux new-window -t web-infra -n 'performance-comparison'
# Layout para comparação lado a lado
tmux split-window -t web-infra:performance-comparison -h
# Configurar monitoramento do servidor ativo
tmux select-pane -t web-infra:performance-comparison.0
tmux split-window -v
tmux select-pane -t web-infra:performance-comparison.0
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "echo \"=== Active Server ===\" && free -h && echo \"--- Apache Status ---\" && apache2ctl status | head -5"' C-m
tmux select-pane -t web-infra:performance-comparison.1
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "iostat -x 1 1 | grep -E \"(Device|sda)\""' C-m
# Configurar monitoramento do servidor standby
tmux select-pane -t web-infra:performance-comparison.2
tmux split-window -v
tmux select-pane -t web-infra:performance-comparison.2
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "echo \"=== Standby Server ===\" && free -h && echo \"--- Apache Status ---\" && apache2ctl status | head -5"' C-m
tmux select-pane -t web-infra:performance-comparison.3
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "iostat -x 1 1 | grep -E \"(Device|sda)\""' C-m
Esta configuração permite comparação direta de métricas de performance entre servidores, facilitando identificação de discrepâncias que podem requerer investigação adicional.
Deployment e Atualizações
Preparação de Ambientes de Deployment
O deployment de aplicações web em ambientes de alta disponibilidade requer coordenação cuidadosa para minimizar downtime e garantir que atualizações sejam aplicadas de forma consistente através de todos os servidores.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Criar janela dedicada para operações de deployment
tmux new-window -t web-infra -n 'deployment'
# Layout para preparação, execução e monitoramento
tmux split-window -t web-infra:deployment -h
tmux split-window -t web-infra:deployment.0 -v
tmux split-window -t web-infra:deployment.1 -v
# Configurar pane para preparação no servidor ativo
tmux select-pane -t web-infra:deployment.0
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'cd /var/www/html' C-m
tmux send-keys 'ls -la' C-m
# Configurar pane para preparação no servidor standby
tmux select-pane -t web-infra:deployment.1
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'cd /var/www/html' C-m
tmux send-keys 'ls -la' C-m
# Configurar pane para monitoramento do load balancer
tmux select-pane -t web-infra:deployment.2
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "curl -I http://localhost"' C-m
# Configurar pane para logs de deployment
tmux select-pane -t web-infra:deployment.3
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -f /var/log/nginx/access.log' C-m
Esta configuração estabelece um ambiente integrado onde deployments podem ser preparados em ambos os servidores web enquanto o impacto no load balancer é monitorado em tempo real.
Execução de Rolling Updates
Rolling updates permitem atualização de aplicações sem downtime, removendo temporariamente servidores do pool de load balancing, aplicando atualizações e retornando-os ao serviço.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Exemplo de rolling update com monitoramento
# Primeiro, remover servidor ativo do load balancer
tmux select-pane -t web-infra:deployment.2
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo vim /etc/nginx/sites-available/default' C-m
# Comentar servidor ativo no upstream
tmux send-keys 'sudo nginx -s reload' C-m
# Aplicar atualização no servidor ativo
tmux select-pane -t web-infra:deployment.0
tmux send-keys 'sudo systemctl stop apache2' C-m
tmux send-keys 'git pull origin main' C-m
tmux send-keys 'sudo systemctl start apache2' C-m
# Verificar saúde do servidor atualizado
tmux send-keys 'curl -I http://localhost' C-m
# Retornar servidor ativo ao load balancer
tmux select-pane -t web-infra:deployment.2
tmux send-keys 'sudo vim /etc/nginx/sites-available/default' C-m
# Descomentar servidor ativo
tmux send-keys 'sudo nginx -s reload' C-m
# Repetir processo para servidor standby
tmux select-pane -t web-infra:deployment.1
tmux send-keys 'sudo systemctl stop apache2' C-m
tmux send-keys 'git pull origin main' C-m
tmux send-keys 'sudo systemctl start apache2' C-m
Verificação de Deployment
Após deployment, verificação abrangente é necessária para garantir que atualizações foram aplicadas corretamente e que todos os componentes estão funcionando adequadamente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Criar janela para verificação pós-deployment
tmux new-window -t web-infra -n 'verification'
# Layout para verificação abrangente
tmux split-window -t web-infra:verification -h
tmux split-window -t web-infra:verification.0 -v
tmux split-window -t web-infra:verification.1 -v
# Verificar resposta através do load balancer
tmux select-pane -t web-infra:verification.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'for i in {1..10}; do curl -s http://localhost | grep -o "<title>.*</title>"; sleep 1; done' C-m
# Verificar logs de acesso
tmux select-pane -t web-infra:verification.1
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -20 /var/log/nginx/access.log' C-m
# Verificar status dos servidores backend
tmux select-pane -t web-infra:verification.2
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'curl -I http://localhost && echo "--- Active Server OK ---"' C-m
tmux select-pane -t web-infra:verification.3
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'curl -I http://localhost && echo "--- Standby Server OK ---"' C-m
Troubleshooting e Diagnóstico
Identificação de Problemas de Conectividade
Problemas de conectividade em infraestrutura web podem originar-se de múltiplas camadas: rede, load balancer, servidores web ou aplicações. O diagnóstico eficaz requer abordagem sistemática que examine cada camada sequencialmente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela para troubleshooting de conectividade
tmux new-window -t web-infra -n 'connectivity-troubleshooting'
# Layout para testes sistemáticos
tmux split-window -t web-infra:connectivity-troubleshooting -h
tmux split-window -t web-infra:connectivity-troubleshooting.0 -v
tmux split-window -t web-infra:connectivity-troubleshooting.1 -v
# Testar conectividade de rede básica
tmux select-pane -t web-infra:connectivity-troubleshooting.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'ping -c 3 192.168.10.230 && ping -c 3 192.168.50.231' C-m
# Testar conectividade HTTP direta aos backends
tmux select-pane -t web-infra:connectivity-troubleshooting.1
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'curl -v http://192.168.10.230 && echo "--- Testing Standby ---" && curl -v http://192.168.50.231' C-m
# Testar conectividade através do load balancer
tmux select-pane -t web-infra:connectivity-troubleshooting.2
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'curl -v http://localhost' C-m
# Analisar logs de erro
tmux select-pane -t web-infra:connectivity-troubleshooting.3
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -50 /var/log/nginx/error.log' C-m
Esta configuração proporciona testes sistemáticos de conectividade em múltiplas camadas, facilitando identificação de onde problemas estão ocorrendo.
Análise de Performance
Problemas de performance podem manifestar-se como lentidão de resposta, timeouts ou sobrecarga de servidores. A análise eficaz requer coleta simultânea de métricas de múltiplas camadas da infraestrutura.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela para análise de performance
tmux new-window -t web-infra -n 'performance-analysis'
# Layout para múltiplas métricas
tmux split-window -t web-infra:performance-analysis -h
tmux split-window -t web-infra:performance-analysis.0 -v
tmux split-window -t web-infra:performance-analysis.1 -v
# Analisar tempos de resposta
tmux select-pane -t web-infra:performance-analysis.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'for i in {1..5}; do time curl -s http://localhost > /dev/null; done' C-m
# Analisar utilização de recursos do load balancer
tmux select-pane -t web-infra:performance-analysis.1
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "top -b -n1 | head -10"' C-m
# Analisar utilização de recursos do servidor ativo
tmux select-pane -t web-infra:performance-analysis.2
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "top -b -n1 | head -10"' C-m
# Analisar logs de acesso para padrões
tmux select-pane -t web-infra:performance-analysis.3
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -100 /var/log/nginx/access.log | awk '\''{print $9}'\'' | sort | uniq -c | sort -nr' C-m
Diagnóstico de Failover
O teste de failover é crucial para garantir que a infraestrutura responda adequadamente a falhas de servidores backend. Este teste deve ser realizado de forma controlada com monitoramento abrangente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Criar janela para teste de failover
tmux new-window -t web-infra -n 'failover-test'
# Layout para monitoramento durante failover
tmux split-window -t web-infra:failover-test -h
tmux split-window -t web-infra:failover-test.0 -v
tmux split-window -t web-infra:failover-test.1 -v
# Monitorar resposta do load balancer
tmux select-pane -t web-infra:failover-test.0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "curl -I http://localhost"' C-m
# Monitorar logs do load balancer
tmux select-pane -t web-infra:failover-test.1
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'sudo tail -f /var/log/nginx/error.log' C-m
# Controlar servidor ativo para teste
tmux select-pane -t web-infra:failover-test.2
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'sudo systemctl stop apache2' C-m
# Monitorar servidor standby
tmux select-pane -t web-infra:failover-test.3
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'watch "ss -tuln | grep :80"' C-m
Automação e Scripts de Administração
Scripts para Operações Rotineiras
A administração de infraestrutura web envolve muitas tarefas rotineiras que podem ser automatizadas para aumentar eficiência e reduzir erros humanos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
# Script: web-infra-health-check.sh
# Executa verificações de saúde abrangentes da infraestrutura web
# Criar sessão dedicada para health check
tmux new-session -d -s web-health
# Verificações do load balancer
tmux send-keys -t web-health 'ssh admin@192.168.10.225' C-m
tmux send-keys 'echo "=== Load Balancer Health Check ===" && sudo nginx -t && curl -I http://localhost' C-m
# Criar nova janela para servidores web
tmux new-window -t web-health -n 'web-servers'
tmux split-window -h
# Verificar servidor ativo
tmux select-pane -t 0
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'echo "=== Active Server Health ===" && apache2ctl configtest && curl -I http://localhost' C-m
# Verificar servidor standby
tmux select-pane -t 1
tmux send-keys 'ssh admin@192.168.50.231' C-m
tmux send-keys 'echo "=== Standby Server Health ===" && apache2ctl configtest && curl -I http://localhost' C-m
# Criar janela para verificação de recursos
tmux new-window -t web-health -n 'resources'
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'echo "=== Resource Usage ===" && free -h && df -h' C-m
# Anexar à sessão
tmux attach-session -t web-health
Script de Deployment Automatizado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# Script: automated-web-deployment.sh
# Executa deployment automatizado com zero downtime
ACTIVE_SERVER="192.168.10.230"
STANDBY_SERVER="192.168.50.231"
LB_SERVER="192.168.10.225"
# Criar sessão para deployment automatizado
tmux new-session -d -s auto-deploy
# Janela para monitoramento do load balancer
tmux rename-window -t auto-deploy:0 'lb-monitoring'
tmux send-keys "ssh admin@${LB_SERVER}" C-m
tmux send-keys 'watch "curl -I http://localhost"' C-m
# Janela para deployment no servidor ativo
tmux new-window -t auto-deploy -n 'active-deploy'
tmux send-keys "ssh admin@${ACTIVE_SERVER}" C-m
tmux send-keys 'cd /var/www/html && git status' C-m
# Janela para deployment no servidor standby
tmux new-window -t auto-deploy -n 'standby-deploy'
tmux send-keys "ssh admin@${STANDBY_SERVER}" C-m
tmux send-keys 'cd /var/www/html && git status' C-m
# Anexar à sessão
tmux attach-session -t auto-deploy
Integração com Ferramentas de Monitoramento
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
# Script: web-monitoring-integration.sh
# Integra monitoramento tmux com ferramentas externas
# Criar sessão integrada de monitoramento
tmux new-session -d -s web-monitoring
# Janela para métricas nativas
tmux rename-window -t web-monitoring:0 'native-metrics'
tmux split-window -h
# Métricas do load balancer
tmux select-pane -t 0
tmux send-keys 'ssh admin@192.168.10.225' C-m
tmux send-keys 'watch "curl -s http://localhost/nginx_status"' C-m
# Métricas dos servidores web
tmux select-pane -t 1
tmux send-keys 'ssh admin@192.168.10.230' C-m
tmux send-keys 'watch "apache2ctl status"' C-m
# Janela para logs centralizados (ELK stack)
tmux new-window -t web-monitoring -n 'centralized-logs'
tmux send-keys 'ssh admin@192.168.10.113' C-m # ans-elk server
tmux send-keys 'curl -X GET "localhost:9200/_cat/indices?v" | grep -E "(nginx|apache)"' C-m
# Janela para alertas
tmux new-window -t web-monitoring -n 'alerts'
tmux send-keys 'ssh admin@192.168.10.113' C-m
tmux send-keys 'tail -f /var/log/elasticsearch/elasticsearch.log | grep -E "(nginx|apache|web)"' C-m
tmux attach-session -t web-monitoring
A administração eficaz de infraestrutura web através do tmux demonstra como a ferramenta pode ser adaptada para ambientes complexos de alta disponibilidade. A capacidade de monitorar simultaneamente load balancers, múltiplos servidores web e coordenar deployments sem downtime é especialmente valiosa em ambientes de produção críticos. O próximo capítulo explorará como aplicar estes conceitos à administração de serviços de rede e DNS, completando nossa cobertura dos componentes fundamentais de infraestrutura moderna.