alibek Posted November 7, 2014 · Report post Поделитесь, как можно получить информацию по утилизации системных ресурсов, таких как память, процессор и т.п. load average я беру из sysctl. Загрузку процессора я хочу учитывать с разбивкой на системные и пользовательские задачи, прерывания и т.п. Утилизацию можно посчитать из kern.cp_times, но это нужно брать дельту за период, хотя бы за минуту. Но если запустить top, утилизация выводится сразу. Может она хранится где-то в готовом виде? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
roysbike Posted November 7, 2014 (edited) · Report post Поделитесь, как можно получить информацию по утилизации системных ресурсов, таких как память, процессор и т.п. 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 Edited November 7, 2014 by roysbike Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
FATHER_FBI Posted November 7, 2014 · Report post А вам в каком виде нужно дергать информацию и для чего?? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted November 7, 2014 · Report post Скрипт (на муниновский похож) то же самое делает - берет два измерения за период (из vmstat) и считает дельту. Мне для самодельного мониторинга надо. Примерно в том виде, как в top выводится, в процентах. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
K0matoznik Posted April 19, 2016 · Report post Дабы не плодить темы. Подскажите как написать скрипт, для нагиоса, чтобы проверять доступность сервиса на машине, путем сканирования портов через 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" Подскажите как для всех сервисов такое сделать? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
K0matoznik Posted April 19, 2016 · Report post Возник еще вопрос, есть готовые плагины для нагиоса для HР,Dlink,TPlink,DSL коммутаторы Zyxel, свичей через snmp, статистика по трафику с определенного порта, поднять порт или нет, графики загрузки определенного порта? Так же было бы интересно если есть готовые плагины для HP серверов(загрузка проца,загрузка с интерфейса,диски,пользователи и тд. Все что можно - нужно!)(важно что там крутиться? вин или unix?) ILo не предлогать :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
uxcr Posted April 19, 2016 · Report post Я бы проверял работу сервисов с помощью этого. Хотя вопрос выглядит так, будто обычного check_tcp достаточно. Или нужно именно чтобы nmap сканировал какой именно сервис висит на порту? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
K0matoznik Posted April 19, 2016 · Report post Ну да,почему бы не ограничиться Nmap, который и пинговать умеет и порты сканировать... Ну по логике. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
K0matoznik Posted April 20, 2016 · Report post Сделал проверку nmap'om, пашет как буд-то бы :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...