В началоСетевые сервисы → Мониторинг работы системы
Gentoo-doc HOME Пред.: Руководство по настройке Samba в режиме PDC с использованием LDAPВ началоУровень выше: Сетевые сервисы

10. Мониторинг работы системы

10.1. Введение

В данной статье описывается, как осуществить мониторинг разных системных и физических параметров компьютеров, работающих под GNU/Linux или другими UNIX.

Постановка задачи

Нужно осуществлять постоянный мониторинг основных параметров работы компьютеров (физических и системных) через сеть, собирать и выдавать эту информацию в удобной форме.

Для примера см: http://monitoring.sourceforge.net/example.html

К основным системным параметрам относят: загрузка процессоров (пользователями, системой, привилегированными программами, свободное процессорное время), использования оперативной памяти (и многие другие, всего больше 100), дисков, сетевого трафика. Для получения необходимых нам значений параметров работы системы используем программы df, sar и iptables или ipfw.

К физическим параметрам относят: температуру процессора и материнской платы, скорость вращения вентиляторов, напряжения питания. Для получения показателей датчиков материнских плат используется модуль ядра I2C и программа lm_sensors.

Для передачи информации через сеть используем клент-серверную модель и программу Net-Telnet. Базу данных строим пакетом rrdtool, информацию предоставляем через сервер apache и/или по почте. С помощью скриптов постараемся максимально упростить и автоматизировать поставленную задачу, это избавит вас от рутинной работы.

Программа работает по клиент-серверной технологии. На компьютерах, которые нужно мониторить, размещается часть программы, которая снимает различные показатели работы компьютера и выдает их по запросу через сеть. На одном административном компьютере осуществляется периодический опрос всех компьютеров, за которыми ведется наблюдение, данные записываются в специально созданную базу, и на её основе формируется html страница, которая экспортируется через apache для просмотра обычным браузером.

Теперь подробно о том, что нам нужно сделать:

Загружаем последнюю версию программы для мониторинга с сайта http://monitoring.sourceforge.net/ Файл monitoring-*.tar.bz2 размещаем в доступном месте, например в папке локального ftp: /var/ftp/pub/linux.

10.2. "Серверная" сторона

Разархивируйте monitoring-*.tar.bz2.

У Gentoo есть ебилд, для установки программы monitoring со всеми зависимостями. С сайта необходимо скачать monitoring-*.ebuild.tar.bz2 и распаковать его в /usr/local. Далее выполните:

# emerge -pv monitoring

[ebuild N ] net-analyzer/monitoring-0.11 USE="-admin -apache2 -lm_sensors -server"

Для серверной стороны необходимо добавить USE="server", а для поддержки мониторинга датчиков USE="lm_sensors"

# export "USE=lm_sensors server"

# emerge monitoring

Компиляция и установка lm_sensors, sysstat, iptables, coreutils, xinetd в случае использования Gentoo можно пропустить, потому что эти пакеты уже установлены как зависимости, и перейти сразу к их настройке.

10.3. Мониторинг физических параметров

Определяем на базе какого чипсета сделаны платы: материнская, видеокарта (некоторые имеют датчики) и прочие, заходим на страницы: http://secure.netroedge.com/~lm78/supported.html и http://www.lm-sensors.nu/~lm78/newdrivers.html и ищем, есть ли драйверы для мониторинга этих плат под Линуксом. Если определили, что ваши чипсеты поддерживаются и драйвер стабильный, можете продолжить выполнение этого пункта.

Внимание, если версия ядра меньше за 2.4.9, нужно обновить ядро или воспользоваться старой версией программы! смотрите: i2c. Если ядро версии 2.4.*, вам дополнительно нужен СООТВЕТСТВУЮЩИЙ! модуль i2c-*.*.*.tar.gz, родной Линуксовый не подходит. В версии ядра 2.6.* все хорошо — отлично работает родной модуль ядра i2c.

10.4. Компиляция ядра

Подробную инструкцию по сборке нового ядра можно прочесть по ссылке "Ставим ядро 2.6, или Ядерная физика для домохозяйки. Версия 2.0"

Обратите особое внимание на пункты, которые добавляют к ядру GNU/Linux поддержку сенсоров:

Для поддержания ACPI:

Power management options (ACPI, APM) ---> ACPI (Advanced Configuration and Power Interface) Support --->

Для поддержки IPMI стандарта управления сенсорами.

Device Drivers ---> Character devices ---> IPMI --->

Включаем поддержку сенсоров в ядре

Device Drivers ---> I2C support --->

Выбираем алгоритмы, использующие ваши чипы

Device Drivers ---> I2C support ---> I2C Algorithms --->

Выбираем ваш чипсет (внимание, здесь нужно указать чипсет именно вашей системной платы, или видеокарты, см. ниже):

Device Drivers ---> I2C support ---> I2C Hardware Bus support --->

Device Drivers ---> I2C support ---> Miscellaneous I2C Chip support --->

Выбираем драйверы ко всем вашим сенсорам (внимание, именно тех, соответствующих вашим чипам, предыдущим пунктам):

Device Drivers ---> Hardware Monitoring support --->

Можно собрать необходимые драйверы как модули, хотя это несколько добавит работы при настройке (нужно будет запустить программу sensors-detect). Для мониторинга сети можно использовать netfilter (iptables) и прочие опции...

Если Ваше аппаратное обеспечения поддерживается, установите lm_sensors

Загружаем с: lm_sensors, свеженькую версию lm_sensors-*.*.*.tar.gz. Разархивируем lm_sensors-*.*.*.tar.gz Заходим в директорию, какая создалась и выполняем:

# make user

# make user_install

# depmod -a

Проверяем, есть ли строка /usr/local/lib в файле /etc/ld.so.conf, если нет, добавляем и выполняем команду:

# ldconfig

Настройка lm_sensors

Выполняем команду

# prog/mkdev/mkdev.sh

Чтобы правильно определить ваше оборудование и знать, какие модули нужно загрузить, выполним:

# prog/detect/sensors-detect

именно этот скрипт и указывает, какие у вас чипсеты, и какие в них сенсоры!

Добавляем строки, созданные программой для modules.conf в /etc/modules.conf

Копируем prog/init/lm_sensors.init в каталог /etc/rc.d/init.d/lm_sensors (назначить права для исполнения).

Добавляем строки, которые создала программа prog/detect/sensors-detect с modprobe и sensors -s например, в конец файла /etc/conf.d/local.start — чтобы они загружались при старте системы

или можно запускать как сервис:

для Gentoo выполняем:

# rc-update -a lm_sensors default

Только для клонов RedHat выполняем:

# chkconfig --add lm_sensors

копируем prog/init/lm_sensors.sysconfig в /etc/sysconfig/lm_sensors

копируем etc/sensors.conf.eg в /etc/sensors.conf

копируем prog/sensors/sensors в каталог /usr/bin/sensors (предоставить права на выполнение)

Все теперь выполняют modprobe с параметрами, которые указала программа sensors-detect для загрузки модулей, потом выполняем:

# sensors -s

Корректируем /etc/sensors.conf таким образом, чтобы названия напряжений, скорости вентиляторов и температур, именно Ваших чипов содержали соответственно: "Volt", "Fan", "Temp". При этом, названия меток допускают только малые и большие латинские буквы, цифры, знак "_", и не должны содержать знаков „.”, ”/” или ”+”! Выполнение этих условий обязательно!!!

Пример /etc/sensors.conf можно найти в server/etc/sensors.conf

Например, для lm85*:

# cat /etc/sensors.conf

...

# Voltage inputs

  label in0   "VoltA1_5"      # AGP on Intel S845WD1-E

  label in1   "Volt1_5"

  label in2   "Volt3_3"

  label in3   "Volt5"

  label in4   "Volt12"

# Temperature inputs

  label temp1  "TempCPU"

  label temp2  "TempMB1"

  label temp3  "TempMB2"

# Fan inputs

  label fan1   "FanCPU"

  label fan2   "FanSys1"

  label fan3   "FanSys2"

  label fan4   "FanSys3"

# PWM Outputs

  label pwm1   "CPUF_PWM"

  label pwm2   "SysF1_PWM"

  label pwm3   "SysF2_PWM"

...

Теперь выполним команду sensors, и если у нас все получилось, то увидим примерно следующее:

# sensors

lm85b-i2c-0-2e

Adapter: SMBus I801 adapter at c800

VoltA1_5:   +1.48 V  (min =  +1.42 V, max =  +1.58 V)

Volt1_5:    +1.50 V  (min =  +1.45 V, max =  +1.60 V)

Volt3_3:    +3.33 V  (min =  +3.13 V, max =  +3.47 V)

Volt5:     +5.10 V  (min =  +4.74 V, max =  +5.26 V)

Volt12:   +12.31 V  (min = +11.38 V, max = +12.62 V)

FanCPU:    3360 RPM  (min = 3000 RPM)

TempCPU:     +36C  (low  =   +10C, high =   +60C)

TempMB1:     +33C  (low  =   +10C, high =   +45C)

TempMB2:     +33C  (low  =   +10C, high =   +45C)

CPUF_PWM:  255

SysF1_PWM: 255

SysF2_PWM:  77

vid:      +1.525 V    (VRM Version  9.1)

Если у вас названия напряжений, скорости вентиляторов и температуры не содержат соответственно: "Volt", "Fan", "Temp" — обязательно отредактируйте файл /etc/sensors.conf как показано выше.

10.5. Мониторинг системных параметров

Установка sysstat

Загружаем последнюю версию пакета sysstat с сайта http://perso.wanadoo.fr/sebastien.godard/ или ftp://ibiblio.org/pub/Linux/system/status/

Розархивируем файл sysstat-*.*.*.tar.bz2 в /usr/src

Заходим в созданный каталог и выполняем:

# make config                 #Отвечаем на вопросы только 'y' или 'n'

# make

# make install

Теперь из командной строки пробуем:

# sar -A 1 1 |grep Average:

Average:       proc/s

Average:         0.00

Average:      cswch/s

Average:       258.00

Average:          CPU     %user     %nice   %system   %iowait     %idle

Average:          all      1.90      0.00      0.40      0.00     97.70

........................................................................

Average:      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15

Average:            0        83      0.06      0.15      0.16

Проверка df

# df

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/sda3              2007996    411772   1596224  71% /

/dev/sda1               132206     10981    114399  43% /boot

/dev/sda5               248895      4256    231789   2% /tmp

/dev/sda6              5863496   2556028   3307468  64% /var

/dev/sda7              6843432   5128048   1715384  75% /usr

/dev/sda8              1976492   1048740    827348  56% /home

/dev/sda9              5863496   4479752   1383744  77% /usr/portage/distfiles

none                    254752         0    254752   0% /dev/shm

/usr/portage/distfiles 5863496   4479752   1383744  77% /var/ftp/pub/linux/distfiles

/usr/portage/packages  6843432   5128048   1715384  75% /var/ftp/pub/linux/packages

Если Вам выдало:

bash: df: command not found

установите df из пакета coreutils.

10.6. Мониторинг сети

Мониторинг сети основывается на подсчете байт, попадающих в правила сетевых экранов — iptables или ipfw, и поэтому они достаточно гибкие, но является зависимым от конфигурации сетевого экрана.

Если Вы хотите осуществлять мониторинг сети: просмотрите server/etc/show_network.conf (/etc/monitoring/show_network.conf) – это список графиков, которые Вы получите. Он должен отвечать названиям графиков в admin/etc/network (/etc/monitoring/network).

10.7. Linux iptables

Нужно откорректировать server/etc/show_iptables_acc.conf (/etc/monitoring/show_network.conf)

1 колонка – название графика (должна отвечать show_network.conf, но с “in_*.N” или “out_*.N”, где N – некоторый идентификатор, например число)

2 колонка – название таблицы

3 колонка – название цепочки с таблицы

4 колонка – порядковый номер правила с цепочки

Это всё должно отвечать Вашим правилам!

Простые примеры экранов находятся в server/firewall/* и если подходит Вам, можете использовать их.

Проверьте работу /usr/bin/show_iptables.sh. Результат найдёте в /home/monitoring

10.8. FreeBSD ipfw

Для BSD, надо откорректировать server/bin/show_ipf_acc.conf:

1 колонка – название графика

2 колонка – номер правила

3 колонка – порядковый номер правила в ipfw show

Это должно отвечать Вашим правилам!

Проверьте работу /usr/bin/show_ipfw.sh Результат в /home/monitoring

Некоторые важные системные настройки

Если нет xinetd – установите его. Загляньте в

server/etc/host.allow (/etc/host.allow):

# BEGIN allow services for monitoring

show_hdisk.sh:127.0.0.1 # IP ком п'ютера что мониторит

show_sensors.sh:127.0.0.1 # IP ком п'ютера что мониторит

show_info.sh:127.0.0.1 # IP ком п'ютера что мониторит

show_system.sh:127.0.0.1 # IP ком п'ютера что мониторит

show_network.sh:127.0.0.1 # IP ком п'ютера что мониторит

# END allow services for monitoring

Также некоторые из них вы можете изменить в server/bin/show_* и строки "only_from", "bind" и "disable" в server/xinetd.d/show_*

$ cat server/xinetd.d/show_hdisk

# default: on

# description: The showdisk server show disk useg on the server.

#       It dont uses authentication !!!!!!!!!!!!!!!.

service df

{

       socket_type             = stream

       wait                    = no

       user                    = monitoring

       bind                    = 127.0.0.1               # IP сетевого интерфейса, на котором мониторят

       server                  = /usr/bin/show_hdisk.sh

       only_from               = 127.0.0.1               # IP комп'ютера, который мониторит

       disable                 = no                      # Вкл./Выкл.

}

Откройте доступ к следующим портам: 9045/tcp 9046/tcp 9047/tcp 9048/tcp 9049/tcp с административного компьютера в случае наличия сетевых экранов. Если Вы хотите осуществить установку вручную, пропустите следующий пункт.

Автоматическая инсталляция

Для автоматической установки отредактируйте следующие строки в monitoringinstall.sh (/usr/sbin/monitoringinstall.sh):

# Edit this first:

# all command will execute user:

runuser=monitoring

rungroup=monitoring

# cron cfg directory

cronpath=/etc/cron.d

# init script locations:

crond=/etc/init.d/crond

# Edit only for server side:

# init script location:

xinetd=/etc/init.d/xinetd

# program location:

dfpath=/bin/df

sarpath=/usr/bin/sar

sensorspath=/usr/bin/sensors

Теперь с правами суперпользователя выполните:

# ./monitoringinstall.sh --server

В Gentoo просто:

# monitoringinstall.sh --server

Вы можете пропустить пункт следующий пункт и перейти к „административной” части системы.

10.9. Ручная установка

Копируем следующие файлы:

cp server/etc/show_iptables_acc.conf /etc/monitoring        #for GNU/Linux

cp server/etc/show_ipfw_acc.conf /etc/monitoring        #for BSD

cp server/etc/show_network.conf /etc/monitoring

cp server/xinetd.d/show_hdisk /etc/xinetd.d/

cp server/xinetd.d/show_network /etc/xinetd.d/

cp server/xinetd.d/show_sensors /etc/xinetd.d/

cp server/xinetd.d/show_system /etc/xinetd.d/

cp server/bin/show_hdisk.sh /usr/bin

cp server/bin/show_iptables.sh /usr/bin                #for GNU/Linux

cp server/bin/show_ipfw.sh /usr/bin                        #for BSD

cp server/bin/show_network.sh /usr/bin

cp server/bin/show_sar.sh /usr/bin

cp server/bin/show_sensors.sh /usr/bin

cp server/bin/show_system.sh /usr/bin

Добавим следующие строки к /etc/service:

network                9045/tcp                        # show network info

info                9046/tcp                        # show server info

df                9047/tcp                        # show disk info

sys                9048/tcp                        # show system info

sensors                9049/tcp                        # show sensors info

Создадим специального пользователя:

groupadd monitoring

useradd -g monitoring -d /home/monitoring -s /bin/bash -c monitoring monitoring

mkdir /home/monitoring

chmod 700 /home/monitoring

chown -R monitoring:monitoring /home/monitoring

В случае использования политик SELinux необходимо также добавить:

# cat /etc/security/selinux/src/policy/users

...

# BEGIN monitoring selinux:

user monitoring roles user_r;

# END monitoring selinux.

и дополнительно выполнить:

# cd /etc/security/selinux/src/policy

# make load

Перегрузим xinetd:

# /etc/init.d/xinetd restart

и добавьте строки в crontab:

*/10 * * * * monitoring /usr/bin/show_iptables.sh        # для GNU/Linux

*/10 * * * * monitoring /usr/bin/show_ipfw.sh                # для BSD

*/1 * * * * monitoring /usr/bin/show_sar.sh

Перегрузим crond:

# /etc/init.d/crond restart

Все вышесказанное нужно сделать на КАЖДОМ сервере, который вы хотите мониторить...

10.10. "Административная" сторона

Для начала убедитесь что все хорошо со стороны серверов

Для каждого сервера проверяем доступность необходимых сервисов:

# telnet server_name 9045

Trying serverIP...

Connected to serverIP.

Escape character is '^]'.

in_ftp                    0

out_ftp                   0

in_http                    0

out_http                   0

in_other                    249

out_other                   27

Connection closed by foreign host.

# telnet server_name 9046

Trying serverIP...

Connected to server_name.

Escape character is '^]'.

  Intel(R) Celeron(R) CPU 2.40GHz | 504 Mb

Connection closed by foreign host.

# telnet server_name 9047

Trying serverIP...

Connected to server_name.

Escape character is '^]'.

/dev/sda3              2007996    411772   1596224  71% /

/dev/sda1               132206     10981    114399  43% /boot

/dev/sda5               248895      4256    231789   2% /tmp

/dev/sda6              5863496   2556028   3307468  64% /var

/dev/sda7              6843432   5128048   1715384  75% /usr

/dev/sda8              1976492   1048740    827348  56% /home

/dev/sda9              5863496   4479752   1383744  77% /usr/portage/distfiles

Connection closed by foreign host.

# telnet server_name 9048

Trying serverIP...

Connected to server_name.

Escape character is '^]'.

Average:       proc/s

Average:         3.98

Average:      cswch/s

Average:       308.00

Average:          CPU     %user     %nice   %system   %iowait     %idle

Average:          all      1.76      0.00      0.47      0.00     97.76

.............................................................

Average:      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15

Average:            1        88      0.05      0.21      0.21

Connection closed by foreign host.

# telnet server_name 9049

Trying serverIP...

Connected to server_name.

Escape character is '^]'.

lm85b-i2c-0-2e

Adapter: SMBus I801 adapter at c800

Volt1_5:    +1.48 V  (min =  +1.42 V, max =  +1.58 V)

VoltCore:   +1.50 V  (min =  +1.45 V, max =  +1.60 V)

Volt3_3:    +3.33 V  (min =  +3.13 V, max =  +3.47 V)

Volt5:     +5.10 V  (min =  +4.74 V, max =  +5.26 V)

Volt12:   +12.25 V  (min = +11.38 V, max = +12.62 V)

CPU_Fan:   3377 RPM  (min = 3000 RPM)

fan2:         0 RPM  (min =    0 RPM)

fan3:         0 RPM  (min =    0 RPM)

fan4:         0 RPM  (min =    0 RPM)

TempCPU:     +32 C  (low  =   +10 C, high =   +50 C)

TempBoard:   +30 C  (low  =   +10 C, high =   +45 C)

TempRemot:   +30 C  (low  =   +10 C, high =   +40 C)

CPU_PWM:   255

Fan2_PWM:  255

Fan3_PWM:   77

vid:      +1.525 V  (VRM Version 9.0)

Connection closed by foreign host.

10.11. Установление необходимых программ

Разархивируйте monitoring-*.tar.bz2.

Для Gentoo есть ебилд, для установления программы monitoring со всеми зависимостями с сайта стоит брать monitoring-*.ebuild.tar.bz2 и распаковать его в /usr/local дальше выполните:

# emerge -pv monitoring

[ebuild N ] net-analyzer/monitoring-0.11 USE="-admin -apache2 -lm_sensors -server"

Для административной стороны необходимо добавить USE=admin, а для поддержки apache-2* USE=apache2

# export "USE=admin apache2"

# emerge monitoring

Компиляцию и установление rrdtool, apache, Net-Telnet в случае использования Gentoo можно пропускать, потому что эти пакеты уже будут установлены как зависимости, а переходить сразу к их настройке.

10.12. Инсталляция rrdtool

Базой данных, для хранения информации и инструмент генерации графиков, используется пакет rrdtool (round robin database tool). Зкачать пакет можно отсюда: http://rrdtool.eu.org или http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ Подробно ознакомиться с этим пакетом можно здесь: http://www.bog.pp.ru/work/rrdtool.html (Российская). В принципе, программа самостоятельно создаст необходимые базы так, что дополнительных знаний не нужно и следующий пункт Пример расчёта настройки базы RRD можно пропустить.

Пример расчёта настройки базы RRD

Расчёт настроек создания базы RRD файлы /etc/monitoring/*.rrd.cf Количество "слов" в файле будет соотведствовать количеству графиков в разных маштабах времени. например для расчёта подобия MRTG: 5-ти минутный — даные за последние 2 дня: х-доля=0.5 количество отсчётов на ячейку=1 количество ячеек=2*24*12=576 +min+max+avg+cur ~ 650

0.5:1:650

30-ти минутный — дание за последние две недели: х-доля=0.5 количество отсчётов на ячейку=30/5=6 количество ячеек=2*7*24*2=672 +min+max+avg+cur ~ 750

0.5:6:750

2-ух часовой — даные за последние два месяца: х-доля=0.5 количество отсчётов на ячейку=60*2/5=24 количество ячеек=2*31*24/2=744 +min+max+avg+cur ~ 850

0.5:24:850

1-но дневный — даные за последние два года: х-доля=0.5 количество отсчётов на ячейку=60*24/5=288 количество ячеек=2*366=732 +min+max+avg+cur ~ 900

0.5:288:900

Таким образом имеем:

# cat /etc/monitoring/5min.rrd.cf

0.5:1:650        0.5:6:750        0.5:24:850        0.5:288:900

10.13. Инсталляция Net-Telnet

Данная версия программы для работы через сеть требует Net-Telnet perl модуль (можно при желании использовать и netcat): из-за этого нужно установить perl (что пожалуй уже сделано). Дальше Net-Telnet perl модуль берем и устанавливаем отсюда: http://cpan.perl.org/modules/by-module/Net/ название файлу Net-Telnet-*.tar.gz

10.14. Инсталляция Apache

Нужно установить и настроить apache сервер, дополнительно можете добавить (admin/etc/apache/monitoring.conf):

# cat /etc/apache2/vhosts.d/monitoring.conf

### /etc/apache2/vhosts.d/monitoring.conf

### $Id: monitoring.conf,v 0.11 2006/09/28 16:27:12 hse Exp $

###

### For Monitoring *.shtml

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

### For authentication:

<Directory "/var/www/localhost/htdocs/administration/monitoring">

   AllowOverride All

   Options Includes

   <IfModule mod_access.c>

### For password authentication:

#       AuthUserFile /var/www/localhost/htdocs/administration/passwd_file

#       AuthGroupFile /dev/null

#       AuthName Administrative-information

#       AuthType Basic

#       Require valid-user

### For host/network authentication:

        Order deny,allow

        Deny from all

        Allow from 127.0.0.1

#        Allow from .cluster.linux

    </IfModule>

</Directory>

Добавляем пользователя для просмотра веб страницы:

# htpasswd -bcm /var/www/localhost/htdocs/administration/passwd_file username password

Если все хорошо идем дальше.

10.15. Установка программ для мониторинга

В файл admin/etc/host (/etc/monitoring/host) вносим перечень серверов, которые нужно мониторить (имена должны разрешаться в IP адреса). Коректируем под свои потребности файл admin/etc/monitoring.conf (/etc/monitoring/monitoring.conf)

путь по которому установлено скрипт:

installpath=/usr/

путь к веб страницы:

apachehtmldir=/var/www/html

webdirpath=/administration/monitoring

путь к файлу с перечнем серверов для мониторинга:

confpath=$installpath/etc/host

путь к временных файлов:

diskinfopath=/tmp/monitoring/disk.tmp

sarinfopath=/tmp/monitoring/sar.tmp

sensorsinfopath=/tmp/monitoring/sensors.tmp

путь где установлен пакет rrdtool:

rrdtoolpath=/usr/bin/rrdtool

почтовый адресов:

emailvalue=root@localhost

По желанию (или за потребностью) правим другие файлы с каталога etc/ (/etc/monitoring/):

diskusage memusage quantity cpu memory systemload — содержимое файлов должно отвечать тем параметрам которые Вы хотите мониторить. Все параметры должны выводиться командой sar -A 1 1 |grep Average: Названия файлов отвечают названиям графиков и баз которые создадутся и должны быть записаны в файле system. Значение параметров принадлежащих одном файлу должны быть одного типа!

system — первая колонка определяет какие графики получите и каждый ее элемент отвечать файлу из этого же каталога (см. выше). Вторая указывает через какие периоды времени база rrdtool будет принимать данные. Третья и четвертая колонка определяет минимальное и максимальное значение параметра которое еще может быть записано в базу. Пятая колонка определяет легенду (размерность).

сolors — файл с номерами цветов в 16-ричной системе.

 

config — содержит имена конфигурационных файлов из этого же каталога отвечающие веб страницам что создаються (можно добавлять свои, но тогда их должны создать!).

disk — содержит названия графиков, периоды времени через которые база rrdtool будет принимать данные, минимальные и максимальные значение параметров которые мониторите, легенду (размерность).

network — содержит названия графиков, периоды времени через которые база rrdtool будет принимать данные, минимальные и максимальные значение параметров которые мониторите, легенду (размерность).

sensors — содержит названия графиков, периоды времени через которые база rrdtool будет принимать данные, минимальные и максимальные значение параметров которые мониторите, легенду (размерность).

disk.rrd.cf network.rrd.cf sensors.rrd.cf system.rrd.cf — описывают структуру базы данных.

disk.msg network.msg sensors.msg system.msg — содержит информацию которую получите почтой в критических ситуациях.

Если хотите осуществить установку вручную, пропустите следующий пункт.

10.16. Автоматическая установка программ

Теперь можете воспользоваться скриптом для инсталляции. Для этого нужно откорректировать следующие строки в файле monitoringinstall.sh (/usr/sbin/monitoringinstall.sh) или пропустить этот пункт и следовать дальнейшей инструкции для установки в ручную.

имя пользователя и группы:

runuser=monitoring

rungroup=monitoring

директория где расположены cron настройки:

cronpath=/etc/cron.d

путь к инициализационному скрипту

crond crond=/etc/init.d/crond

директория где находятся настройки apache

apachconfdir=/etc/apache/conf

файл конфигурации apache:

apachconffile=apache.conf

путь к инициализационному скрипту apache

apached=/etc/init.d/apache

Теперь с правами рута выполните (нужно подождать 1 минуту, если не установили мониторинг сети, и 10 минут после установки мониторынга сети на последнем сервере, прежде чем выполнять следующую команду):

# ./monitoringinstall.sh --admin

В Gentoo просто

# monitoringinstall.sh --admin

Если видите ошибки, наверное надо:

1 поправить файлы конфигурации в admin/etc/ (/etc/monitoring)

2 посмотреть в /home/monitoring/hostname/err/...

3 удалить файлы с /home/monitoring/hostname/ и перезапустити скрипт

4 удалить базы данных с /var/db/monitoring/... и перезапустити скрипт

5 bin/net_telnet.pl читает только 500 строк входа. Если в Вас больше, отредактируйте його:

line 32: while [$и ne 500]

Тогда попробуйте еще, но добавьте имена сервисов, под рутом выполните:

# ./monitoringinstall.sh --admin=disk

# ./monitoringinstall.sh --admin=sensors

# ./monitoringinstall.sh --admin=system

# ./monitoringinstall.sh --admin=network

Если где-то допустили ошибку, можно просто выполнить monitoringuninstall.sh и попытаться еще раз. Можете пропустить следующий пункт.

10.17. Ручная установка программ

Устанавливаем скрипти для мониторинга, генерации базы данных и веб страницы скопировав с каталога monitoring/admin в каталог: /usr/ ($INSTALL_PATH), используя опцию –p для сохранения прав. Выполняем:

# cp -p admin/bin/* $INSTALL_PATH/bin/

# mkdir /etc/monitoring

# cp -p admin/etc/* /etc/monitoring/

# mkdir $INSTALL_PATH/share/monitoring

# cp -p admin/share/* $INSTALL_PATH/share/monitoring/

# mkdir -p /var/www/localhost/htdocs/administration/monitoring

# chmod 755 /var/www/localhost/htdocs/administration/monitoring/

# groupadd -g 1111 monitoring

# useradd -u 1111 -g monitoring -d /home/monitoring -s /bin/bash -c monitoring monitoring

# chmod -R 700 /home/monitoring

# chown -R monitoring:monitoring /home/monitoring

# chown -R monitoring:monitoring /var/www/localhost/htdocs/administration/monitoring/

И тогда выполняйте (подождите 1 минуту, если не устанавливали мониторинг сети, и 10 минут после установки мониторынга сети на последнем сервере, прежде чем выполнять следующую команду):

# su monitoring

$ $INSTALL_PATH/bin/net.vert.1.sh

$ $INSTALL_PATH/bin/net.vert.10.sh

создаются базы данных в каталоге /var/db/monitoring/имя_сервера/ для всех серверов с файлу /etc/monitoring/host и дополнительная конфигурация в /home/monitoring

Выполняем:

$ $INSTALL_PATH/bin/png_graph.sh disk -1week 30min

$ $INSTALL_PATH/bin/png_graph.sh disk -1month 2hour

$ $INSTALL_PATH/bin/png_graph.sh disk -1year 1day

$ $INSTALL_PATH/bin/png_graph.sh network -1week 30min

$ $INSTALL_PATH/bin/png_graph.sh network -1month 2hour

$ $INSTALL_PATH/bin/png_graph.sh network -1year 1day

$ $INSTALL_PATH/bin/png_graph.sh sensors -2day 5min

$ $INSTALL_PATH/bin/png_graph.sh sensors -1week 30min

$ $INSTALL_PATH/bin/png_graph.sh sensors -1month 2hour

$ $INSTALL_PATH/bin/png_graph.sh sensors -1year 1day

$ $INSTALL_PATH/bin/png_graph.sh system -2day 5min

$ $INSTALL_PATH/bin/png_graph.sh system -1week 30min

$ $INSTALL_PATH/bin/png_graph.sh system -1month 2hour

$ $INSTALL_PATH/bin/png_graph.sh system -1year 1day

Если видите ошибки, наверное нужно:

1 поправить файлы конфигурации в /etc/monitoring

2 посмотреть в /home/monitoring/hostname/err/...

3 удалить файлы с /home/monitoring/hostname/ и перезапустить скрипт

4 удалить базы данных с /var/db/monitoring/... и перезапустить скрипт

5 bin/net_telnet.pl читает только 500 строк входа. Если в Вас больше, отредактируйте его:

line 32: while [$и ne 500]

Тогда попробуйте еще раз.

В каталоге /var/www/localhost/htdocs/administration/monitoring создаются начальная страница и каталоги с веб страницами для каждого сервера.

Если не возникло больше ошибок, используйте следующий файл для автоматизации всей работы с crond:

$ exit

# cat /etc/cron.d/monitoring

SHELL=/bin/bash

PATH=/bin:/usr/bin

MAILTO=root

HOME=/home/monitoring

LANG=POSIX

# Begin server part (may be you wont monitoring "admin" computer too)

*/1 * * * * monitoring /usr/bin/show_sar.sh

*/10 * * * * monitoring /usr/bin/show_iptables.sh        #GNU/Linux

#*/10 * * * * monitoring /usr/bin/show_ipfw.sh                #BSD

# End server part

# Begin disk admin part

*/30 * * * * monitoring /usr/bin/png_graph.sh hdisk -1week 30min

0 */2 * * * monitoring /usr/bin/png_graph.sh hdisk -1month 2hour

0 0 * * * monitoring /usr/bin/png_graph.sh hdisk -1year 1day

# End  disk admin part

# Begin network admin part

*/30 * * * * monitoring /usr/bin/png_graph.sh network -1week 30min

0 */2 * * * monitoring /usr/bin/png_graph.sh network -1month 2hour

0 0 * * * monitoring /usr/bin/png_graph.sh network -1year 1day

# End  network admin part

# Begin system admin part

*/5 * * * * monitoring /usr/bin/png_graph.sh system -2day 5min

*/30 * * * * monitoring /usr/bin/png_graph.sh system -1week 30min

0 */2 * * * monitoring /usr/bin/png_graph.sh system -1month 2hour

0 0 * * * monitoring /usr/bin/png_graph.sh system -1year 1day

# End system admin part

# Begin sensors admin part

*/5 * * * * monitoring /usr/bin/png_graph.sh sensors -2day 5min

*/30 * * * * monitoring /usr/bin/png_graph.sh sensors -1week 30min

0 */2 * * * monitoring /usr/bin/png_graph.sh sensors -1month 2hour

0 0 * * * monitoring /usr/bin/png_graph.sh sensors -1year 1day

# End sensors admin part

# Begin vert admin part

*/1 * * * * monitoring /usr/bin/net.vert.1.sh

*/10 * * * * monitoring /usr/bin/net.vert.10.sh

# End  vert admin part

Выполняем:

# /etc/init.d/crond restart

Если все хорошо

Теперь заходим Вашим любимым браузером на страницу http://servername/administration/monitoring/index.html. Здесь уже можем выбрать ссылки на сервер, который вас интересует :)

10.18. Добавление новых серверов

Если Вам когда-то придется добавить новый сервер, достаточно будет сделать следующее:

1. Выполнить для него пункт 2 („Серверная” сторона)

2. Добавить его имя в файл /etc/monitoring/host

Всё остальное создастся само !!! Наслаждайтесь :)))

10.19. Альтернативы

Если Вы недовольны реализацией мониторинга таким образом (по моему мнению достаточно неплохое решение ;)) подберите себе лучшую. Вот некоторый перечень альтернатив или дополнений :=)

Angel Network Monitor http://www.paganini.net/angel/

Autostatus http://www.angio.net/consult/autostatus/

Cacti http://cacti.net

HiWAyS http://www.hiways.org/

MARS http://www.altara.org/mars.html

Mon http://www.kernel.org/software/mon/

Monit http://www.tildeslash.com/monit/

Nagios http://www.nagios.org

Netup (French) http://www.pasteur.fr/units/sis/netup/

NocMonitor http://www2.discpro.org/nocmon/

NodeWatch http://www.skendric.com/nodewatch/

Penemo http://www.communityprojects.org/apps/penemo/

PIKT http://pikt.org/

RITW http://www.terravista.pt/Ancora/1883/ritw_e.html

RRDWorld http://oss.oetiker.ch/rrdtool/rrdworld/index.en.html

Scotty http://wwwhome.cs.utwente.nl/~schoenw/scotty/

Spong http://spong.sourceforge.net/

Sysmon http://www.sysmon.org/

ZABBIX http://www.zabbix.com

ZEUS http://www.zeus.com/

Пред.: Руководство по настройке Samba в режиме PDC с использованием LDAPВ началоУровень выше: Сетевые сервисы
В началоСетевые сервисы → Мониторинг работы системы