Графики MRTG

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su - для повышения уровня привелегий. Символы '$' и '#' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.


Что такое MRTG?

MRTG - это Multi Router Traffic Grapher, сервис, позволяющий посредством протокола SNMP получать из нескольких устройств информацию, и отображать в окне вашего броузера графики загруженности канала (входящий трафик, исходящий, максимальный, средний) с шагом в минуты, часы, дни и за год. Пример работы программы Вы можете увидеть на рисунке. Там показаны два графика - за неделю и за месяц. Соответственно с шагом в 30 минут и два часа.

Установка

# yum install mrtg net-snmp net-snmp-utils net-snmp-libs

Кофигурация

1. Редактируем /etc/snmp/snmpd.conf

com2sec local     127.0.0.1/32    public

group MyROGroup v1         local
group MyROGroup v2c        local
group MyROGroup usm        local

view all    included  .1                               80

access MyROGroup ""      any       noauth    exact  all    none   none

syslocation MyLocation
syscontact Me <me@somewhere.org>

2. Перезапускаем snmpd:

# /sbin/service snmpd restart

3. Проверяем работоспособность snmpd:

# snmpwalk -v 1 -c public localhost system

должна отобразится вся информация о системе.

4. Генерируем дефолтовую кофигурацию MRTG.

# /usr/bin/cfgmaker  \
--output=/etc/mrtg/mrtg.cfg \
--global "WorkDir: /var/www/mrtg" \
--global "Options[_]: bits,growright" \
public@localhost

5. MRTG теперь будет рисовать каждые 5 минут графики всех сетевых интерфейсов.

6. Создадим индексовую страницу, для нормального отображения и доступа по http://localhost/mrtg/

# indexmaker /etc/mrtg/mrtg.cfg --output=/var/www/mrtg/index.html

7. По умолчанию в /etc/cron.d добавлено задание mrtg, которое выполняется каждые 5 минут.

8. Для просмотра статистики достаточно зайти по адресу: http://localhost/mrtg/ (по умолчанию доступ открыт только для localhost (127.0.0.1). Для настройки доступа необходимо с корректировать /etc/httpd/conf.d/mrtg.conf и перегрузить настройки httpd

# service httpd reload

Данная конфигурация отображает графики только сетевых интерфейсов. Далее будут приведены несколько примеров для mrtg.cfg. Не забудьте после каждого изменения mrtg.cfg выполнять 6-ой пункт (indexmaker)

Примеры кофигураций

1. Загрузка процессора:

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt 

Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@localhost+ ssCpuRawSystem.0&ssCpuRawSystem.0:public@localhost+ ssCpuRawNice.0&ssCpuRawNice.0:public@localhost
RouterUptime[localhost.cpu]: public@localhost
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: <H1>Active CPU Load %</H1>
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent,unknaszero,pngdate

2. Физическая память:

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt

Target[localhost.mem]: memAvailReal.0&memTotalReal.0:public@localhost * 1024
RouterUptime[localhost.mem]: public@localhost
PageTop[localhost.mem]: <H1>RAM Memory</H1>
Options[localhost.mem]: nopercent,growright,gauge,pngdate,unknaszero
Title[localhost.mem]: RAM Memory
MaxBytes[localhost.mem]: 1000000000
kilo[localhost.mem]: 1024
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free RAM Memory:
LegendO[localhost.mem]: Total RAM Memory:
Legend1[localhost.mem]: Free memory, not including swap, in bytes
Legend2[localhost.mem]: Total memory, not including swap, in bytes

3. Буфер / Кэш:

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt

Target[localhost.cachebuf]: memBuffer.0&memCached.0:public@localhost * 1024
RouterUptime[localhost.cachebuf]: public@localhost
PageTop[localhost.cachebuf]: <H1>Buffer/Cached Memory</H1>
Options[localhost.cachebuf]: nopercent,growright,gauge,pngdate,unknaszero
Title[localhost.cachebuf]: Buffer/Cached Memor
MaxBytes[localhost.cachebuf]: 1000000000
kilo[localhost.cachebuf]: 1024
YLegend[localhost.cachebuf]: bytes
ShortLegend[localhost.cachebuf]: bytes
LegendI[localhost.cachebuf]: Used Buffer Memory:
LegendO[localhost.cachebuf]: Used Cached Memory:
Legend1[localhost.cachebuf]: Buffer memory, in bytes
Legend2[localhost.cachebuf]: Cache memory, in bytes

4. Своп:

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt

Target[localhost.swap]: memAvailSwap.0&memTotalSwap.0:public@localhost * 1024
RouterUptime[localhost.swap]: public@localhost
PageTop[localhost.swap]: <H1>Swap Memory</H1>
Options[localhost.swap]: nopercent,growright,gauge,pngdate,unknaszero
Title[localhost.swap]: Swap Memory
MaxBytes[localhost.swap]: 1000000000
kilo[localhost.swap]: 1024
YLegend[localhost.swap]: bytes
ShortLegend[localhost.swap]: bytes
LegendI[localhost.swap]: Free Swap Memory:
LegendO[localhost.swap]: Total Swap Memory:
Legend1[localhost.swap]: Swap memory avail, in bytes
Legend2[localhost.swap]: Swap memory totla, in bytes

5. Процентное соотношение свободного места в памяти:

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt

Title[localhost.mempercent]: Percentage Free Memory
RouterUptime[localhost.mempercent]: public@localhost
PageTop[localhost.mempercent]: <H1>Percentage Free Memory</H1>
Target[localhost.mempercent]: ( memAvailReal.0&memAvailSwap.0:public@localhost ) * 100 / ( memTotalReal.0&memTotalSwap.0:public@localhost )
options[localhost.mempercent]: growright,gauge,nopercent,pngdate,unknaszero
Unscaled[localhost.mempercent]: ymwd
MaxBytes[localhost.mempercent]: 100
YLegend[localhost.mempercent]: Memory %
ShortLegend[localhost.mempercent]: Percent
LegendI[localhost.mempercent]: Free RAM
LegendO[localhost.mempercent]: Free Swap
Legend1[localhost.mempercent]: Percentage Free RAM Memory
Legend2[localhost.mempercent]: Percentage Free Swap Memory

6. Свободное место партиции: Для этого необходимо создать bash-скрипт в /etc/mrtg c именем: diskusage.sh:

#!/bin/sh
usage=$[`/bin/df -k | grep $1 | awk '{print $3}'`*1024]
free=$[`/bin/df -k | grep $1 | awk '{print $4}'`*1024]
echo $free
echo $[$usage+$free]
/usr/bin/uptime | awk '{print $3 $4 $5}'
echo $1

Конфигурация mrtg:

Target[localhost.fmd-home]: `/etc/mrtg/diskusage.sh /dev/sda1`
RouterUptime[localhost.fmd-home]: public@localhost
Title[localhost.fmd-home]: Disk Usage /home
PageTop[localhost.fmd-home]: <h1>Disk Usage /home</h1>
Options[localhost.fmd-home]: nopercent,growright,gauge,pngdate
MaxBytes[localhost.fmd-home]: 160000000000
kilo[localhost.fmd-home]: 1024
YLegend[localhost.fmd-home]: bytes
ShortLegend[localhost.fmd-home]: bytes
LegendI[localhost.fmd-home]: Free
LegendO[localhost.fmd-home]: Total
Legend1[localhost.fmd-home]: Disk Free Size in Bytes
Legend2[localhost.fmd-home]: Disk Total Size in Bytes

где /dev/sda1 - партиция.

7. Если lm_sensors правильно настроен и выдается по команде sensors правильные данные, то можно использовать следующую конфигурацию:

Title[localhost.temp]: Temperature on box
PageTop[localhost.temp]: <H1>Temperature</H1>
Target[localhost.temp]: `/usr/bin/sensors | /usr/bin/awk '/^M\/B Temp:/{ sub(/\+/,"",$3); print $3 }/^CPU Temp:/{ sub(/\+/,"",$3); print $3 }'`
Options[localhost.temp]: noinfo,gauge,growright,integer,nopercent,pngdate,unknaszero
Unscaled[localhost.temp]:dwmy
MaxBytes[localhost.temp]: 80
Kilo[localhost.temp]:1000
YLegend[localhost.temp]: Temperature
ShortLegend[localhost.temp]: C
Legend1[localhost.temp]: M/B Temp
Legend2[localhost.temp]: CPU Temp
LegendI[localhost.temp]: M/B Temp
LegendO[localhost.temp]: CPU Temp
Legend3[localhost.temp]: M/B
Legend4[localhost.temp]: CPU

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

Title[localhost.hddtemp]: Temperature on HDD
PageTop[localhost.hddtemp]: <H1>Temperature HDD</H1>
Target[localhost.hddtemp]: `nc localhost 7634|cut -d \| -f 4;nc localhost 7634|cut -d \| -f 4`
Options[localhost.hddtemp]: noinfo,gauge,growright,integer,nopercent,pngdate,unknaszero
Unscaled[localhost.hddtemp]:dwmy
MaxBytes[localhost.hddtemp]: 60
Kilo[localhost.hddtemp]:1000
YLegend[localhost.hddtemp]: Temperature
ShortLegend[localhost.hddtemp]: C
Legend1[localhost.hddtemp]: HDD Temp
Legend2[localhost.hddtemp]:
Legend3[localhost.hddtemp]:
Legend4[localhost.hddtemp]:
LegendI[localhost.hddtemp]: HDD Temp
LegendO[localhost.hddtemp]: