Resumo técnico
Projeto focado em transformar o /var/log/chkservd.log em saída operacional acionável. A ferramenta consolida checks de serviços (httpd, mysql, exim, named, imap, etc.), classifica estado por ciclo de verificação e reduz tempo de triagem em servidores com logs extensos (100MB+), cenário comum em hosts com alto volume de contas.
Contexto e origem técnica
- Reescrita em Bash do script
checksrvoriginalmente criado por Matthew Harris (HostGator, 2013). - Motivação prática: reduzir dependência de Perl, melhorar performance de leitura e padronizar troubleshooting em ambiente Linux moderno.
- Preserva finalidade original (humanizar log do chkservd), mas adiciona:
- modo detalhado com serviços funcionais, - cores para resposta rápida, - métricas de contexto (PID, uptime, tamanho de log), - controle de quantidade de checks exibidos.
Escopo implementado
- Parsing eficiente de blocos de verificação de serviços do
chkservd. - Execução em modos múltiplos (
default,-f,-a,-q N) para NOC/SRE. - Análise de falhas sem carregar arquivo inteiro em memória.
- Estrutura adequada para automação por cron e alerta por e-mail.
- Compatibilidade com operações diárias de servidores cPanel/WHM.
Comandos de uso (operação real)
# padrão: falhas recentes (últimas 5 verificações)
./checksrv.sh
# modo completo (serviços OK + falhas) com 2 ciclos
./checksrv.sh -f -q 2
# varredura estendida das últimas 5000 linhas
./checksrv.sh -f -a
# últimos 10 ciclos
./checksrv.sh -f -q 10
# execução mínima para cron
./checksrv.sh -q 1
Exemplo de automação (cron)
*/5 * * * * /usr/local/bin/checksrv -q 1 || \
echo "Falha de serviço detectada em $(hostname)" | mail -s "Alert chkservd" [email protected]
Diagnóstico operacional entregue
- Estado consolidado por ciclo (
Service Check) com total de serviços avaliados. - Marcação clara de sucesso/falha:
- Leitura de validações
check/socketpor serviço para diferenciar erro de processo vs porta/socket. - Resumo de saúde do bloco (ex.: todos os 24 serviços OK).
- [✓] serviço operacional - [!] serviço com falha
Otimizações de performance aplicadas
- Uso de
grep,awk,sedetailpara leitura seletiva. - Estratégia de processamento em fluxo (streaming) para logs grandes.
- Evita overhead de parse completo a cada execução.
- Resultado: ganho perceptível de velocidade em comparação ao legado em Perl quando o log ultrapassa 100MB.
Troubleshooting de implantação
# validar existência e permissões do log
ls -lah /var/log/chkservd.log
# validar daemon
systemctl status chkservd || service chkservd status
# garantir execução
chmod +x checksrv.sh
# instalar no PATH
mv checksrv.sh /usr/local/bin/checksrv
Stack e ferramentas
- Shell Script / Bash
- cPanel/WHM
- Linux
- grep / awk / sed / tail
- cron + mail local
Tags operacionais
- Bash
- cPanel
- Monitoring
- chkservd
Resultado operacional
- Redução do tempo de triagem de incidentes de serviço em servidores cPanel.
- Padronização de leitura de health-check para operações de suporte e plantão.
- Melhor previsibilidade para ações corretivas imediatas (restart de serviço, validação de porta, correção de dependência).