Como monitorar um monte de máquinas para uso da CPU de outra máquina?

0

Eu tenho algumas máquinas, como mostrado abaixo, que estão rodando o Ubuntu 12.04 e eu preciso descobrir o nome do processo junto com o pid, cujo uso da CPU é maior que 70%.

Abaixo estão as máquinas como um exemplo -

machineA
machineB
machineC
machineD

Eu preciso ter meu script de shell que pode ser executado periodicamente a cada 15 minutos e verificar se alguma das máquinas acima tem uso de CPU maior que 70%. Se houver máquinas com uso de CPU maior que 70%, envie um e-mail com o nome da máquina e o nome do processo junto com seu ID.

Eu estarei executando meu script de shell a partir de machineX e tenho a configuração de chave ssh sem senha para o usuário david do machineX para todas as máquinas acima.

Qual é a melhor maneira de fazer todos esses tipos de monitoramento?

Eu tenho abaixo o comando que pode me pegar PID, %CPU and COMMAND name do processo cujo uso da CPU é maior que 70%.

ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3>=70) print $2,$3,$11}'

Não sabe como automatizar totalmente esse processo?

    
por david 10.12.2014 / 22:56

1 resposta

2

Você provavelmente deve tentar usar uma solução de monitoramento já existente para isso. Isso é exatamente o que eles são projetados para fazer, monitorar as condições e enviar alertas (SMS ou e-mail). Você pode querer verificar nagios ou zabbix para uma solução de monitoramento gratuita.

Eu não usei, mas parece que Cacti suporta alertas em limites

collectd também pode alertar, mas eu usaria principalmente apenas collectd para uma coleção histórica de estatísticas de desempenho em que eu não precisava alertar sobre nada.

A conclusão é que fazer isso por conta própria desperdiçará seu tempo, esforço e introduzirá a possibilidade de erro em seu mecanismo de monitoramento. É um problema comum com uma variedade de soluções pré-fabricadas.

    
por 10.12.2014 / 23:04