Перейти к содержимому
Калькуляторы

Информация по загрузке CPU во FreeBSD

Поделитесь, как можно получить информацию по утилизации системных ресурсов, таких как память, процессор и т.п.

load average я беру из sysctl.

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

Утилизацию можно посчитать из kern.cp_times, но это нужно брать дельту за период, хотя бы за минуту.

Но если запустить top, утилизация выводится сразу. Может она хранится где-то в готовом виде?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделитесь, как можно получить информацию по утилизации системных ресурсов, таких как память, процессор и т.п.

load average я беру из sysctl.

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

Утилизацию можно посчитать из kern.cp_times, но это нужно брать дельту за период, хотя бы за минуту.

Но если запустить top, утилизация выводится сразу. Может она хранится где-то в готовом виде?

CPU скрипт , нашел в инете , мониторю через nagios

./check_cpu_usage -w 70 -c 90

Вывод

OK - CPU usage is 29% for server dnw.xxx.ru. |cpu_usage=29%;70;90; cpu_user=20%; cpu_system=9%;

 

 

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin

ST_OK=0
ST_WR=1
ST_CR=2
ST_UN=3

# Plugin name
PROGNAME=`basename $0`

# Version
VERSION="Version 1.0"

# Author
AUTHOR="Majo Jamrich"


print_version() {
   echo "$PROGNAME $VERSION $1"
}

print_help() {
   print_version "($AUTHOR)"
   echo ""
   echo "$PROGNAME is a Nagios plugin to check CPU utilization."
   echo ""
   echo "Options:"
   echo ""
   echo "--warning | -w"
   echo "--critical | -c"
   echo "--help | --usage"
   echo ""
   echo "Usage:"
   echo "./check_cpu_usage -w 80 -c 100"
   echo ""
   exit $ST_UN
}

case "$1" in
   --help|-h|--usage|-u)
       print_help
       exit $ST_UN
       ;;
   --warning|-w)
       host=$2
       ;;
   --critical|-c)
       host=$2
       ;;
   -V)
       print_version
       exit
       ;;
   *)
       echo "Unknown argument: $1"
       echo "For more information please try -h or --help!"
       exit $ST_UN
       ;;
esac
shift

if [ `uname` != "FreeBSD" ]; then
   echo "This plugin is only for FreeBSD."
fi

if [ -z $1 ] || [ -z $3 ]; then
   print_help
   exit  $ST_UN
fi

if [ "$1" -ge "$3" ]; then
   echo "Warning value must be greater than critical value!"
   exit $ST_UN
fi

warn=$1
crit=$3

cpu_all=$( vmstat -c 2 -n 0 | tail -n 1 | awk '{print $15 " " $16 " " $17}' )
cpu_user=$( echo $cpu_all | awk '{print $1}')
cpu_sys=$(  echo $cpu_all | awk '{print $2}')
cpu_idle=$( echo $cpu_all | awk '{print $3}')
cpu_usage=$(( 100 - $cpu_idle )) 
perfdata="cpu_usage=$cpu_usage%;$warn;$crit; cpu_user=$cpu_user%; cpu_system=$cpu_sys%;"

if [ $( echo "$cpu_usage>$1" | bc ) -gt 0 ] && [ $( echo "$cpu_usage<$3" | bc ) -gt 0 ]; then
   echo "WARNING - CPU usage is $cpu_usage% for server `hostname`. |$perfdata"
   exit $ST_WR
elif [ $( echo "$cpu_usage>$3" | bc ) -gt 0 ]; then
   echo "CRITICAL - CPU usage is $cpu_usage% for server `hostname`. |$perfdata"
   exit $ST_CR
else
   echo "OK - CPU usage is $cpu_usage% for server `hostname`. |$perfdata"
   exit $ST_OK
fi

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вам в каком виде нужно дергать информацию и для чего??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скрипт (на муниновский похож) то же самое делает - берет два измерения за период (из vmstat) и считает дельту.

Мне для самодельного мониторинга надо. Примерно в том виде, как в top выводится, в процентах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дабы не плодить темы.

Подскажите как написать скрипт, для нагиоса, чтобы проверять доступность сервиса на машине, путем сканирования портов через nmap?

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

Еще вопрос, прочитал про скрипт для нагиоса в котором человек при помощи nmap пингует удаленную машину и отдает в нагиос данные(замена дефолтового пинга).

ee /usr/local/libexec/nagios/check_nmap
#!/bin/sh
NMAP="/usr/local/bin/nmap -sP"
TMP=/var/tmp/nmap_ping.$$
CHECK="Nmap Ping"

results_exit()
   {
       rm -f $TMP
       echo "$CHECK: ${2}"
       exit $1
   }
$NMAP $1 > $TMP || result_exit 255 "Could not execute $NMAP"

       grep "Host seems down" $TMP
       [ $? -eq 0 ] && results_exit 2 "CRITICAL"
       grep "Host is up" $TMP
       [ $? -eq 0 ] && results_exit 0 "Ok"
       results_exit 3 "Unknown"

Подскажите как для всех сервисов такое сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Возник еще вопрос, есть готовые плагины для нагиоса для HР,Dlink,TPlink,DSL коммутаторы Zyxel, свичей через snmp, статистика по трафику с определенного порта, поднять порт или нет, графики загрузки определенного порта?

Так же было бы интересно если есть готовые плагины для HP серверов(загрузка проца,загрузка с интерфейса,диски,пользователи и тд. Все что можно - нужно!)(важно что там крутиться? вин или unix?)

ILo не предлогать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я бы проверял работу сервисов с помощью этого.

Хотя вопрос выглядит так, будто обычного check_tcp достаточно.

Или нужно именно чтобы nmap сканировал какой именно сервис висит на порту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну да,почему бы не ограничиться Nmap, который и пинговать умеет и порты сканировать... Ну по логике.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделал проверку nmap'om, пашет как буд-то бы :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.