сценарий оболочки для контроля использования CPU и предупреждения с лучшими 5 процессами, использующими большую часть ЦП

Я должен послать электронное письмо каждый раз, когда загрузка ЦП идет вне 70%? Как я мог сделать это? Когда загрузка ЦП идет вне 70%, я также должен получить команды запуска и названия процесса лучших 5 процессов, подобных тому, что дает htop

enter image description here

Как я мог сделать это со сценарием оболочки?

0
задан 14 April 2020 в 09:43

1 ответ

Я должен послать электронное письмо каждый раз, когда загрузка ЦП идет вне 70%?

Я предлагаю, чтобы Вы использовали уже существующий контрольный плагин с этой целью. Плагин check_cpu_stats поддерживает пороги на использовании ЦП (не, загружаются). Существует несколько различных версий этого плагина там, один пример может быть найден здесь: https://github.com/Reamer/check_cpu_stats

Использование довольно легко:

$ /usr/lib/nagios/plugins/check_cpu_stats.sh -w 70,70,70 -c 80,80,80
CPU STATISTICS OK : user=7.60% system=2.35%, iowait=0.08%, idle=86.94%, nice=3.02%, steal=0.00% | CpuUser=7.60%;70;80;0; CpuSystem=2.35%;70;80;0; CpuIowait=0.08%;70;80;0; CpuIdle=86.94%;0;0;0; CpuNice=3.02%;0;0;0; CpuSteal=0.00%;0;0;0;

Пороги предупреждения устанавливаются к 70%-му использованию ЦП на пользователе, системе и iowait. Критические пороги устанавливаются к 80%-му использованию ЦП на пользователе, системе и iowait. Можно, конечно, также адаптировать пороги к среде.

Относительно части предупреждения: лучший сценарий, конечно, если у Вас уже есть этот хост/машина в существующем контроле. Но можно также использовать автономный плагин и отправить предупреждение. Пример:

/usr/lib/nagios/plugins/check_cpu_stats.sh -w 70,70,70 -c 80,80,80 > /dev/null; if [[ $? -gt 0 ]]; then echo "alert" | mailx -s "cpu alert" recipient@example.com; else echo "no alert"; fi

Я также должен получить команды запуска и названия процесса лучших 5 процессов

Для получения лучших 5 процессов (отсортированный по использованию CPU) можно использовать следующую команду (источник: https://unix.stackexchange.com/questions/13968/show-top-five-cpu-consuming-processes-with-ps):

ps aux | sort -nrk 3,3 | head -n 5

И теперь можно объединить контролирующий плагин и вывод процесса:

/usr/lib/nagios/plugins/check_cpu_stats.sh -w 70,70,70 -c 80,80,80 > /dev/null; if [[ $? -gt 0 ]]; then echo "$(ps aux | sort -nrk 3,3 | head -n 5)" | mailx -s "cpu alert" recipient@example.com; else echo "no alert"; fi

0
ответ дан 25 April 2020 в 10:48

Другие вопросы по тегам:

Похожие вопросы: