Сценарий оболочки для уведомления, когда использование ЦП переходит к 100%

сервер чашек + PDF чашек мог бы работать на Вас

4
задан 27 September 2012 в 22:16
2 ответа

хорошо, правильная команда - это

sar -u 1 | awk '{ if (int($9)==0) { 
                 i=i+1; {
                           print i, $9
                         }
                  }
       if (int($9)>=0) {
                  i=0
               }
               if (i>=10) {
                      print "Sending email";
                      cmd="mutt -s  \"test\" email@domain.com < /home/semenov/strace.output";
                      system(cmd)
               }
            }'
0
ответ дан 3 December 2019 в 04:00

Правильный способ сделать это - НЕ делать этого.

Загрузка ЦП (либо % used или% idle) является фиктивным значением для отслеживания - оно может (и ДОЛЖНО) быть 100% в разное время во время нормальной работы. Вам действительно нужна пачка предупреждений, потому что вы получили 5-10 веб-запросов одновременно с проверкой загрузки ЦП системой мониторинга? Держу пари, ответ отрицательный.

Вместо этого вы должны отслеживать среднюю нагрузку (сообщается uptime среди других инструментов), Значение обычно указывается в виде трех значений: 1-минутная средняя нагрузка («сейчас»), 5-минутная средняя нагрузка и 15-минутная средняя нагрузка.


Средние значения нагрузки ниже 1 указывают на «выгруженную» систему (много свободных Процессорное время, никаких программ, ожидающих своего выполнения).
Средние высокие значения нагрузки ("высокие" по отношению к количеству имеющихся у вас ЦП и интерактивной производительности вашей системы под нагрузкой) являются поводом для беспокойства, и их следует изучить.

Обычно я использую 10 в качестве порога для сигналов тревоги средней нагрузки - - значение достаточно высокое, чтобы вы обычно не видели его в производственной среде, но достаточно низкое, чтобы у вас было время отреагировать на ситуацию после срабатывания сигнала тревоги.


Сценарий для мониторинга в любом случае тривиален:

# [get your value and stuff it into $value
# Pick an appropriate threshold and stuff it into $threshold
if [ $value -gt $threshold ]; then  # (-gt or -lt as appropriate)
    echo "`hostname` needs attention!" | \
         mail -s "`hostname` monitoring alert" user@host
fi

Часть, посвященная получению и наполнению, оставлена ​​в качестве упражнения для читателя.
Если вы действительно хотите сделать это правильно, вам следует изучить некоторые системы мониторинга и SNMP ...

2
ответ дан 3 December 2019 в 04:00

Теги

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