docs&faqs docs&faqs
    MRTG setup. Вячеслав Калошин

11.09.1999
         Сегодня мы поговорим о 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 - или что-то непонятно ?;-)          Да ... совсем забыл сделать обьявление - не надо рассматривать прошлый номер как руководство по работе DNS серверов ... там многое сознательно упрощено и опущено .. оставлена одна суть ...;-))))          Теперь пришла пора задуматься о будующем сайта ... вроде все более-менее нужные темы по чуть-чуть осветил ... конечно, в том обьеме, что знал сам и раскопал ;-))) .... Теперь либо Вы подсказываете темы , либо у меня возникла идея обточить и обсосать то, что уже было выложено и делать потихоньку а-ля ХАУТУ-по-русски ;-) .. например про почту собрать и положить в один файлик, про samba (скоро мне с ней придется разбираться) - отдельно ... ну и соответственно новые номера делать ... но с ними придеться либо что нужно будет, либо о чем в голову взбредет или попросят ...ведь судя по статистике, linux.irk.ru читает около 1300-1400 человек ... ( это я сильно занизил число уникальных хостов, которые ко мне приходят в течение месяца ) .... а я чуствую, что перерывы становятся большими .. надо что-то делать .. привык я уже к linux.irk.ru ;-) , даже иногда сам пользуюсь ;-))))