MRTG
Сегодня мы поговорим о MRTG – это очень приятная вещь, которая позволяет строить графики загрузки, использования, наличия того или иного предмета в системе (пользователи, память и прочее). Очень удобная – позволяет забирать данные как по SNMP, так и через саморучно написанные программы. В общем, вещь !!!
Сначала заберите и установите сам mrtg. В инете на любом поисковом сервере по ftp наберите mrtg и выкачивайте то, что вашей душе угодно. Ставьте либо сразу бинарники, либо сначала исходники, а потом компилируйте … В общем, у Вас должен получиться каталог /что-то/mrtg (в KSI это /usr/lib/mrtg , если ставить mrtg из поставляемого с KSI). В нем лежат 4 файла – cfgmaker, indexmaker, mrtg, rateup.
Пойдем по порядку … cfgmaker – это утилита, которая делает mrtg.cfg (конфигурационный файл mrtg) , выбирая информацию из любого устройства (программы), поддерживающего SNMP.
./cfgmaker public@host >> mrtg.cfg
и все, если на host есть SNMP и он откликается на имя public (тут может что я напутал в формулировках, но я не знаю, как это по русски сказать), то создастся (добавится) файл mrtg.cfg …. ниже я разберу, что и куда в нем …
indexmaker – эта утилита создает index.html в который собирает все, что она нашла в mrtg.cfg . Конечно, это всем можно сделать и руками … но утилиткой приятнее …
./indexmaker mrtg.cfg 'All my Routers' '.' >/home/httpd/stats/index.html
И наконец, сам mrtg …. вручную его пускать не надо … это делать надо из крона. Для vixie cron строчка в кронтабе должна быть аналогична следующей
0-59/5 * * * * root /usr/lib/mrtg/mrtg /usr/lib/mrtg/mrtg.cfg
Эта строчка означает всего-лишь запуск mrtg от root’а каждые пять минут …
Кстати, 5 минут – это минимальное время для промежутка между запусками mrtg … больше можно – меньше нельзя …
И еще одно напоминаие, пока не начал разбирать mrtg.cfg … первые два запуска mrtg будет ругаться с помощью cron (а через него на мыло) что что-то не то у него с файлами и каталогами … можете не обращать внимание … это он сообщает, что нет лог файлов и прочей требухи, необходимой ему …..
rateup – это служебная программа ….
Итак, mrtg.cfg … начну разбирать реальный файл, который используется у меня и собирает статистику каждые пять минут с роутера Cisco и заодно делает график использование своп-памяти на машине ;-))). При этом, я естественно приведу не весь файл и не все команды … для более полного обратитесь в /usr/doc/mrtg-[ваша версия] – там очень понятно все расписано
WorkDir: /home/httpd/html/mrtg/
Рабочий каталог, в котором будут сохраняться файлы с картинками и html-ками ;-) обычно это один из каталогов web-сервера.
Target[cisco]: 1:public@cisco
Это целеуказание mrtg, благодаря которому он знает, что информацию, которую он снимает с snmp хоста public@cisco , надо ложить в /home/httpd/html/mrtg/cisco* файлы … Немного непонятно … но я сам еще далеко не дока в snmp – эти строчки сделал cfgmaker
MaxBytes[cisco]: 1250000
Показывает, сколько максиум будет число, которое измеряется на этом узле ( в данном случае – это максимальная скорость соотвующего порта на cisco)
Title[cisco]: cisco (cisco): Ethernet0
Указывает заголовок для страницы с графиками …
Options[cisco]: growright
показывает, что графики надо рисовать движущимися не слева, а справа … не знаю, кому как, а мне удобнее …
PageTop[cisco]: Ethernet<
С этой строки и ниже заголовок для страницы, на которой будут вывешиваться графики за день, неделю, месяц и год …..
Эти все строки создал cfgmaker – он может их и еще кучу раз создать, если его попросить …(я не стал расписывать больше … у всех моих знакомых с ним проблем не возникало) но если вам надо измерять что-то, что не имеет доступа по snmp (например свой термометр или количество пользователей у себя на машине … или число используемого свопа … да что угодно) … сначала посмотрите в каталог contrib – может там что есть для вашей души …. но я там для своей души не нашел, то, что хотел …поэтому сейчас я вместе с Вами сделаю графики … ну хотя-бы для записи, сколько места на дисках у меня осталось ….
[root@multik mrtg]# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/sda2 995147 767175 176564 81% /
/dev/sda3 2707142 2420114 132001 95% /opt
/dev/sdb2 3595947 3280904 109010 97% /opt1
[root@multik mrtg]#
вот такой вывод у команды df ….. ну возьмем 4й столбец так приятнее и прикольнее ;-) Хотя никто не мешает взять и 5й столбец и вообще какой душа пожелает …
#!/bin/sh
df|tail -2|awk '{print $4}'
echo 0
echo 0
echo
Вот такой маленький командный файл я положил в /usr/diskuse …. действует он до примитивного просто … только я сделаю замечание … для mrtg внешние программы должны возвращать 2 числа (первый и второй контролируемый процесс)… кто видел графики mrtg – тот поймет … если надо строить 1 график – то просто второе число будет 0 ;-))) 3я строчка служит для указания времени uptime, а 4я – для указания имени устройства … можете поиграться с ними … только если 3 число 0, то ничего выводиться не будет … теперь правим mrtg.cfg
Target[df]: `/usr/diskuse`
Будем вызывать программу /usr/diskuse
Options[df: growright, absolute, gauge
Строим графики справа
MaxBytes[df]: 500000
AbsMax[df]: 500000
Максиум, что у меня может быть свободного места – это 500Мб
Title[df]: Used disk space
Unscaled[df]: dwyn
YLegend[df]: free space
ShortLegend[df]:
Legend1[df]:
Legend2[df]: /dev/sda3
Legend3[df]:
Legend4[df]: /dev/sdb2
LegendI[df]:
LegendO[df]: ═ kbytes
PageTop[df]: Free size
все остальное в принципе я либо описывал, либо понятно и так …. теперь включаем этот кусок в конфиг mrtg и ждем наступления следующих 5 минут … Приходит вот такое вот письмо ….
Rateup WARNING: .//rateup could not read the primary log file for df
Rateup WARNING: .//rateup The backup log file for df was invalid as well
Rateup WARNING: .//rateup Can't remove df.old updating log file
Rateup WARNING: .//rateup Can't rename df.log to df.old updating log file
Не волнуйтесь … все в порядке …потом придет
Rateup WARNING: /usr/lib/mrtg//rateup Can't remove df.old updating log file
И если все настроено правильно, то больше ничего приходить не должно …
Все .. смотрите на df.html в рабочем каталоге …. можете аналогично поправить сгенеренный index.html … там ничего сложного нет …..подождите 5-10 минут и Вы увидите, как справа выползают две полоски … которые и показывают нужную Вам величину ….
ну вот .. теперь мне захотелось обьем свопа выдавать …. нет ничего проще …файл swapuse
#!/bin/sh
free|tail -1|awk '{print $3}'
echo 0
echo 0
echo 0
echo
Выдирает количество swap-памяти в использовании …в mrtg.cfg записано следующее
Target[swap]: `/usr/swapuse`
Options[swap]: growright, absolute, gauge
MaxBytes[swap]: 256000
AbsMax[swap]: 256000
Title[swap]: Used swap
Unscaled[swap]: dwyn
YLegend[swap]: free space
ShortLegend[swap]:
Legend1[swap]:
Legend2[swap]: Swap
Legend3[swap]:
Legend4[swap]:
LegendI[swap]:
LegendO[swap]:
PageTop[swap]: Swap
Доступно и сердито … теперь, если я зайду на свой www, я всегда увижу, сколько у меня используется свопа ;-))) Для более качественного использования mrtg (хотя куда более качественно) , советую посмотреть readme.html, который идет вместе с mrtg – там расписано больше опций ;-)
Вот вроде и все про mrtg – или что-то непонятно ?;-)
Вячеслав Калошин. 11.09.1999



