Qual é a melhor estratégia para capturar o processo misterioso?

2

Eu tenho processos em execução no meu servidor que são mortos todas as noites à meia-noite. Está no trabalho, não estou por perto quando isso acontece e não tenho acesso remoto.

A morte ocorre muito previsivelmente às 23:59 todas as noites. Eu sei disso porque quando chegar no dia seguinte:

  • Os processos são até 23:59
  • Os logs do processo mostram a hora da última modificação às 23h59 (e o novo registro datado é iniciado logo após).

Como a matança ocorre na mesma hora, eu suspeitava strongmente de um trabalho em lote. Eu passei pelo crontab s de todas as nossas máquinas e não consegui encontrar nada. Claramente, estou sentindo falta de algo.

Estou pensando em criar um script de vigilância que relate a saída de ps intermitentemente, seja lançado com at alguns minutos antes e faça um loop por alguns instantes. Essa ideia parece fraca e altamente propensa a erros, então estou pensando se alguém tem uma ideia melhor.

Mais detalhes:

  • O universo é um sistema legado muito grande e muito antigo; ninguém na minha equipe parece ciente de tal processo (se alguém o fez, ela estaria em nossa equipe), embora a organização maior seja composta por milhares de funcionários, muitos deles, teoricamente, teriam acesso a isso (não vejo porque eles iriam). Em outras palavras, a segurança não é muito apertada.

  • O ambiente consiste em várias máquinas que executam o Solaris 10.

  • Não é um ambiente de produção, portanto, o tempo limite ou o tempo de inatividade não é crítico.

  • Eu não estou excluindo a possibilidade de que o assassinato não seja devido a um trabalho em lote, embora seja improvável devido à precisão do momento.

  • Claramente, há deficiências em nossa contabilidade, então qualquer coisa imaginável é possível.

Minha pergunta é qual é a melhor estratégia para adotar? Ele cai sob o maior guarda-chuva da "alegria de trabalhar em sistemas legados". Estou começando a trabalhar no meu script que postarei aqui em breve para feedback. Entretanto, se alguém tiver uma ideia melhor, por favor diga.

    
por rahmu 06.04.2012 / 15:17

1 resposta

2

É comum girar logs periodicamente, rotacioná-los à meia-noite é comum. Muitos aplicativos farão isso automaticamente.

Para aqueles que não existem, existem ferramentas como logrotate que farão a rotação. Muitos programas são configurados para reabrir seus logs quando recebem um sinal HUP, e essa é uma das técnicas usadas por logrotate .

Coisas a verificar:

  • Todos os PIDs mudam. Caso contrário, os programas podem estar rotacionando seu próprio log ou respondendo apropriadamente para que seus logs sejam rotacionados.
  • Para programas que mudam de PID, eles foram reiniciados à meia-noite? Se não, verifique seu pai para ver o que ele faz.
  • Verifique o crontab para root para ver quais processos são executados no final do dia.
  • Verifique o crontab para o ID do usuário do processo para ver quais processos são executados no final do dia.
  • Verifique se os arquivos de log estão sendo gravados diretamente ou se estão sendo gravados por um gravador de log que rotaciona os logs.
por 06.04.2012 / 16:08