MRTG

Материал из СисадминВики (SysadminWiki.ru)
Перейти к: навигация, поиск
Графики состояния системы. MRTG


Официальный сайт MRTG (Multi Router Traffic Grapher): http://oss.oetiker.ch/mrtg/

- Устанавливаем пакет:

# apt-get install mrtg

Узнать что у нас есть для mrtg в репозитории можно командой:

# apt-cache search mrtg

наверняка там найдётся что-то полезное

- Устанавливаем наблюдение за активностью трафика, проходящего через наши сетевые карты и за загруженностью процессора. Статистику обновляем каждые пять минут. Редактируем /etc/mrtg/mrtg.cfg (либо /etc/mrtg.cfg):

### Global Defaults
WorkDir: /var/www/html/reports/mrtg
Refresh: 300
Interval: 5
WriteExpires: Yes
IconDir: images/
LogDir: /var/log
# LogFormat: rrdtool
RunAsDaemon: No
Language: russian
Background[_]: #FFFFC0

### eth0 info
Target[eth0]: `/etc/mrtg/count.sh eth0`
Options[eth0]: nopercent,growright,bits
Title[eth0]: teo eth0 Traffic
PageTop[eth0]: <h1>teo - внутренняя сеть </h1>
MaxBytes[eth0]: 99999999
kilo[eth0]: 1024
YLegend[eth0]: bits per second
ShortLegend[eth0]: bit/s
LegendO[eth0]:   out:
LegendI[eth0]:     in :

### eth1 info
Target[eth1]: `/etc/mrtg/count.sh eth1`
Options[eth1]: nopercent,growright, bits
Title[eth1]: teo eth1 Traffic
PageTop[eth1]: <h1>teo - внешняя сеть</h1>
MaxBytes[eth1]: 99999999
kilo[eth1]: 1024
YLegend[eth1]: bits per second
ShortLegend[eth1]: bit/s
LegendO[eth1]:   out:
LegendI[eth1]:     in :

### CPU info
Target[machine]: `/usr/lib/mrtg2/helpers/cpuinfo.pl localhost linux`
MaxBytes[machine]: 100
Options[machine]: gauge, nopercent
Unscaled[machine]: dwym
YLegend[machine]: % of CPU used
ShortLegend[machine]: %
LegendO[machine]:  CPU System:
Legend1[machine]: CPU User
Legend2[machine]: CPU System
Legend3[machine]: Max CPU User
Legend4[machine]: Max CPU System
LegendI[machine]:  CPU User:
Title[machine]: Statistics for localhost
PageTop[machine]: <H1>CPU usage for localhost</H1>
<TABLE>
<TR><TD>System:</TD><TD>localhost</TD></TR>
</TABLE>

- Создаём скрипт для подсчёта трафика /etc/mrtg/count.sh:

#!/bin/bash
# (c) 2002 Denis Kolisnichenko
# Usage: /usr/bin/count iface
/bin/grep "$1" /proc/net/dev | /bin/awk -F ":" '{ print $2 }' | /bin/awk '{ print $1 "\n" $9 }'
UPTIME=`/usr/bin/uptime | /bin/awk -F " " '{ print $3 }'`
echo $UPTIME
echo $1

В Debian 4 можно использовать awk из пакета gawk.

- Делаем его исполняемым и проверяем работоспособность:

# chmod +x count.sh
# count.sh eth0

3383503279
12919350
123
eth0

- Проверяем, что есть скрипт /usr/lib/mrtg2/helpers/cpuinfo.pl. В Debian при установке пакета mrtg-contrib он находится в /usr/share/doc/mrtg/examples/cpuinfo/. Если нет, то можно взять здесь. Для работы этого скрипта нужен sar, который в Debian 4 можно установить с пакетом sysstat

- Проверяем, что добавилось задание для crond. Если существует файл /etc/cron.d/mrtg:

0-59/5 * * * * root /usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg

то всё уже сделано, если же такого файла нет, то добавляем в /etc/crontab вышеуказанную строку.

- Строка изменится если нет пользователя mrtg, тогда убираем параметры --user и --group. Проверить наличие пользователя можно командой:

# id mrtg

- Перезапускаем crond :

# /etc/init.d/crond restart

- Если на сервере установлен Oracle, то путь к рабочему каталогу mrtg будет вреде этого:

WorkDir: /oracle/as9i/Apache/Apache/htdocs/mrtg

а адрес в браузере: http://10.0.0.2:7777/mrtg/eth0.html

- Делаем доступ к этому каталогу только для администраторов.

- Проверяем. В браузере откроем URL http://teo.mynetwork.ru/reports/mrtg/eth0.html