다른 머신에서 여러 머신의 CPU 사용량을 모니터링하는 방법은 무엇입니까?

다른 머신에서 여러 머신의 CPU 사용량을 모니터링하는 방법은 무엇입니까?

Ubuntu 12.04를 실행하는 몇 대의 컴퓨터(아래 참조)가 있고 CPU 사용량이 70%를 초과하는 프로세스 및 해당 PID의 이름을 찾아야 합니다.

다음은 기계를 예로 들어 설명합니다.

machineA
machineB
machineC
machineD

15분마다 주기적으로 실행하고 위 머신 중 CPU 사용량이 70% 이상인지 확인하는 쉘 스크립트가 필요합니다. 컴퓨터의 CPU 사용량이 70%를 초과하면 컴퓨터 이름, 프로세스 이름 및 해당 ID가 포함된 이메일이 전송됩니다.

쉘 스크립트를 실행하고 machineXmachineX에서 위의 모든 시스템에 이르는 사용자를 위해 비밀번호 없는 SSH 키를 설정했습니다.david

이 모든 모니터링을 수행하는 가장 좋은 방법은 무엇입니까?

PID, %CPU and COMMAND nameCPU 사용량이 70%를 초과하는 프로세스를 가져오려면 다음 명령이 있습니다 .

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

이 프로세스를 완전히 자동화하는 방법을 모르시나요?

답변1

이 목적을 위해서는 기존 모니터링 솔루션을 사용해 보아야 할 것입니다. 이는 상태를 모니터링하고 경고(SMS 또는 이메일)를 보내는 등의 작업을 수행하도록 설계된 것입니다. 무료 모니터링 솔루션을 확인 nagios하거나 얻을 수 있습니다.zabbix

써보진 않았지만 그럴거같네요Cacti는 임계값 경고를 지원합니다.

collectd경고도 가능하지만 주로 collectd성능 통계의 기록 수집에만 사용하고 아무 것도 경고할 필요가 없습니다.

결론은 이를 직접 수행하는 것은 시간과 에너지를 낭비하고 모니터링 메커니즘에 오류가 발생할 가능성이 있다는 것입니다. 이는 다양한 조립식 솔루션의 일반적인 문제입니다.

관련 정보