суббота, 16 ноября 2013 г.

MRTG

0. Уже должен быть установлен web-сервер.

1. Ставим: aptitude install mrtg snmpd
2. в конфиге /etc/snmp/snmpd.conf
добавим строку:

com2sec readonly default public

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

/etc/init.d/snmpd restart

4. Добавляем в крон:

*/05 * * * * USER if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then mkdir -p /var/log/mrtg; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log; fi

5. Добавляем устройства которые хотим мониторить, например:

cfgmaker public@127.0.0.1 >> /etc/mrtg.cfg

на устройствах должен работать snmp.

Через пять минут по адресу http://yourhost/mrtg сможем наблюдать график.

6. Можем наблюдать загрузку процессора, его температуру, загрузку оперативной памяти и swap, заполненность жесткого диска, температуру жесткого диска.

a1) загрузка CPU - скрипт

#!/bin/sh
sensors | grep -A 1 'Core 0' | awk '{print $3-0 }'

а2) часть в mrtg.cfg

Target[cpu]: `/usr/bin/awk '/cpu /{print $2+$3; print $2+$3+$4; print "Some_time";print "localhost"}'</proc/stat`
Title[cpu]: CPU usage
PageTop[cpu]: <H1>CPU Usage</H1>
MaxBytes[cpu]: 200 #двухядерный процессор
ShortLegend[cpu]: %
YLegend[cpu]: CPU Usage
Legend1[cpu]: Time spent in user mode
Legend2[cpu]: Time spent in user + system mode
LegendI[cpu]: user:
LegendO[cpu]: system:
Options[cpu]: growright,nopercent,transparent,pngdate,noinfo
Unscaled[cpu]: ymwd

b1) температура CPU - скрипт

#!/bin/sh
sensors | grep -A 1 'Core 0' | awk '{print $3-0 }'

b2) часть в mrtg.cfg

#cpu_temp
Target[cpu_temp]: `/home/USER/mrtg/cpu_temp.sh`
Title[cpu_temp]: CPU Temperature
PageTop[cpu_temp]: <h1>CPU Temperature</h1>
MaxBytes[cpu_temp]: 100
ShortLegend[cpu_temp]: C
YLegend[cpu_temp]: Temperature, C
LegendI[cpu_temp]: Core 1
LegendO[cpu_temp]: Core 2
Legend1[cpu_temp]: Core 1
Legend2[cpu_temp]: Core 2
Options[cpu_temp]: gauge,growright,nopercent
#kMG[cpu_temp]: k,M,G,T,P,X
Colours[cpu_temp]: RED#bb0000,BLUE#1000ff,GREEN#006600,VIOLET#ff00ff
Unscaled[cpu_temp]: ymwd

c1) загрузка оперативки и своп - скрипт

#!/bin/sh
/usr/bin/free -k | awk '\
NR==3 {ramUsed = $3 }\
NR==4 {swapUsed = $3 }\
END { print swapUsed "\n" ramUsed "\n0\n0" }'


c2)  часть в mrtg.cfg

#memory_usage
Target[localmem]: `/home/USER/mrtg/memstat.sh`
Title[localmem]: Mem and Swap Usage
PageTop[localmem]: <h1>Memory and Swap Usage</h1>
MaxBytes[localmem]: 100000000000
ShortLegend[localmem]: B
YLegend[localmem]: Memory&Swap
LegendI[localmem]: Swap
LegendO[localmem]: Memory
Legend1[localmem]: Swap
Legend2[localmem]: Memory
Options[localmem]: gauge,growright,nopercent
kMG[localmem]: k,M,G,T,P,X
Colours[localmem]: RED#bb0000,BLUE#1000ff,GREEN#006600,VIOLET#ff00ff

d1) заполненость жесткого диска

#! /bin/bash
df -h | grep "/dev/sd" | grep -Po "[0-9]+(?=%)"

d2) часть  в mrtg.cfg

#hdd
Target[hdd]: `/home/USER/mrtg/disk.sh`
Title[hdd]: HDD Usage
PageTop[hdd]: <h1>1 Tb HDD Usage</h1>
MaxBytes[hdd]: 100
ShortLegend[hdd]: %
YLegend[hdd]: Percent
Legend1[hdd]: 100%
Legend2[hdd]: Time spent in user + system mode
LegendI[hdd]: Usage:
#LegendO[hdd]: :
Options[hdd]: gauge,growright,nopercent
Colours[hdd]: RED#bb0000,BLUE#1000ff,GREEN#006600,VIOLET#ff00ff
Unscaled[hdd]: ymwd

e1) температура жесткого диска -скрипт

#!/bin/bash
sudo hddtemp -n /dev/sda #hddtemp без sudo не работает


e2)  часть  в mrtg.cfg

#hdd temp
Target[hddtemp]: `/home/USER/mrtg/hdd_temp.sh`
Title[hddtemp]: HDD Temp
PageTop[hddtemp]: <h1>HDD Temperature</h1>
MaxBytes[hddtemp]: 110
ShortLegend[hddtemp]: C
YLegend[hddtemp]: Temperature, C
Legend1[hddtemp]: Temp HDD
Legend2[hddtemp]: Temp HDD 2
#LegendI[hddtemp]:Temp HDD 3
Options[hddtemp]: gauge,growright,nopercent
#kMG[hddtemp]: k,M,G,T,P,X
Colours[hddtemp]: VIOLET#ff00ff,RED#bb0000,BLUE#1000ff,GREEN#006600
Unscaled[hddtemp]: ymwd

7. все скрипты должны быть исполняемыми, например:

chmod  +x /home/USER/mrtg/hdd_temp.sh

чтобы графики рисовались справо-налево раскомментируем в  /etc/mrtg.cfg строку

Options[_]: growright, bits

после заполнения mrtg.cfg делаем:

indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html


если вылезают ошибки - исправляем.

8. Если все ок, по адресу http://yourhost/mrtg через какое-то время сможем увидеть примерно следующее: