Графики MRTG
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами 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]: