
Olá!
Em ambientes Zimbra, especialmente após incidentes operacionais (reinicializações abruptas, falta de espaço em disco ou intervenções manuais), é relativamente comum encontrar inconsistências nos serviços auxiliares.
Recentemente, durante uma análise em produção, me deparei com o seguinte erro ao iniciar o zmstat:
zmstatctl start
Can't kill a non-numeric process ID at /opt/zimbra/bin/zmstatctl line 204.
Entendendo o problema
O zmstat é responsável pela coleta de métricas do sistema (CPU, memória, IO, processos, etc.), sendo utilizado internamente pelo Zimbra para monitoramento.
Esse erro ocorre quando o script tenta manipular um PID inválido, normalmente causado por:
- Arquivos de PID corrompidos ou inconsistentes
- Processos antigos ainda em execução
- Permissões incorretas no diretório
/opt/zimbra/zmstat - Execução de componentes com usuário incorreto (principalmente
root)
Durante a análise, foi possível identificar um comportamento específico:
ps aux | grep -i zmstat
Parte dos processos estava sendo executada como zimbra, porém o coletor zmstat-fd estava sendo executado como root:
root 2820 ... sudo /opt/zimbra/libexec/zmstat-fd
root 2843 ... /usr/bin/perl -w /opt/zimbra/libexec/zmstat-fd
Além disso, ao tentar validar os arquivos de PID:
cat /opt/zimbra/zmstat/pid/*
foi apresentado erro de permissão:
Permission denied
Ou seja, o próprio usuário zimbra não conseguia acessar os arquivos de controle do serviço.
Causa
O problema está diretamente relacionado a:
- Arquivos de PID com ownership incorreto
- Processos antigos mantidos em execução
- Inconsistência no controle de estado do
zmstat
Esse cenário leva o zmstatctl a tentar finalizar processos utilizando PIDs inválidos ou inacessíveis, resultando no erro apresentado.
Solução
A correção consiste em limpar completamente o estado do zmstat e restabelecer as permissões corretas.
1. Finalizar processos antigos
Executar como root:
pkill -f /opt/zimbra/libexec/zmstat-
pkill -f zmstat-fd
Validar:
ps aux | grep -i zmstat
O esperado é não haver processos ativos (exceto o próprio grep).
2. Corrigir permissões
chown -R zimbra:zimbra /opt/zimbra/zmstat
chmod -R u+rwX /opt/zimbra/zmstat
3. Remover arquivos de PID
rm -f /opt/zimbra/zmstat/pid/*
4. Subir novamente o serviço
su - zimbra -c "zmstatctl start"
Validar:
zmstatctl status
Considerações finais
Esse tipo de problema não está relacionado a falha estrutural do Zimbra, mas sim a inconsistências de estado após eventos operacionais.
Em ambientes críticos, é importante observar:
- Evitar interrupções abruptas do sistema
- Garantir espaço em disco adequado
- Evitar execução manual de componentes do Zimbra como
root - Sempre utilizar os comandos oficiais (
zmcontrol,zmstatctl, etc.)
Esse tipo de ajuste é simples, mas quando não identificado corretamente pode gerar ruído desnecessário em troubleshooting e impactar a visibilidade operacional do ambiente.

Deixe um comentário