MRTG и SNMP настройка под Gentoo: различия между версиями
ALEX (обсуждение | вклад) |
ALEX (обсуждение | вклад) |
||
Строка 260: | Строка 260: | ||
</pre>}} | </pre>}} | ||
===Настройка мониторинга активости процессора=== | |||
Сперва я пытался пойти по обычному пути. Создал конфиг следующего содержания: | |||
{{File|/etc/mrtg/cpu.cfg|<pre> | |||
<pre> | |||
WorkDir: /var/www/localhost/htdocs/mrtg | WorkDir: /var/www/localhost/htdocs/mrtg | ||
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt | LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt | ||
Строка 281: | Строка 281: | ||
LegendO[localhost.cpu]: | LegendO[localhost.cpu]: | ||
Options[localhost.cpu]: growright,nopercent | Options[localhost.cpu]: growright,nopercent | ||
</pre> | </pre>}} | ||
Даже скачал недостающий файл {{Keyword|UCD-SNMP-MIB.txt}}, однако, это не прокатило. Данные которые получал MRTG были совершенно неверные и график строился не тот, что ожидалось. | |||
Поэтому подумав, я понял, что Mrtg ведь может строить вообще любые графики, лишь бы был источник информации. Ему на фход передаются 2 значение (Input и Output), которые он и отображает на графиках. Потому было решено создать собственный конфиг для сбора инфы о загрузке моего E6600. | |||
===Настройка мониторинга памяти=== | |||
/etc/mrtg/mem.cfg | /etc/mrtg/mem.cfg | ||
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt | LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt | ||
Строка 298: | Строка 304: | ||
Legend1[localhost.mem]: Free memory, not including swap, in bytes | Legend1[localhost.mem]: Free memory, not including swap, in bytes | ||
===Настройка мониторинга статистики пингов=== | |||
/etc/mrtg/ping.cfg | /etc/mrtg/ping.cfg | ||
WorkDir: /var/www/localhost/htdocs/mrtg | WorkDir: /var/www/localhost/htdocs/mrtg | ||
Строка 311: | Строка 317: | ||
==Создание заданий для крона== | |||
/etc/cron.mrtg/cpu | /etc/cron.mrtg/cpu | ||
#!/bin/sh | #!/bin/sh |
Версия 19:40, 27 июля 2009
MRTG (Multi Router Traffic Grapher) — является свободным программным обеспечением под лицензией GPL. Это инструмент для организации сервиса для мониторинга и измерения сетевого трафика с течением времени. Данные с различных сетевых устройств собираются при помощи протокола SNMP, а затем отображаются в виде графиков.
Установка
Для работы с mrtg понядобятся следующие пакеты:
Code: Необходимые пакеты |
net-analyzer/net-snmp media-libs/gd net-analyzer/mrtg sys-process/dcron sysstat |
Ставяться все пакеты стандартным
Настройка
Создание папок для конфигов
Под рутом создаём следующие папки:
место для конфигурационных файлов. Лежат *.cfg и *.sh а так же файлы, которые создаёт mrtg.
Папка с заданиями для крона.
создаём папку для веб вывода данных
Конфигурация SNMP демона
SNMP (англ. Simple Network Management Protocol — простой протокол управления сетью) — это протокол управления сетями связи на основе архитектуры TCP/IP.
Далее создаём (правим) конфиг.
#### # First, map the community name (COMMUNITY) into a security name # (local and mynetwork, depending on where the request is coming # from): # sec.name source community com2sec local 127.0.0.0/24 public #### # Second, map the security names into group names: # sec.model sec.name group MyROGroup v1 local group MyROGroup v2c local group MyROGroup usm local #### # Third, create a view for us to let the groups have rights to: # incl/excl subtree mask view all included .1 80 #### # Finally, grant the 2 groups access to the 1 view with different # write permissions: # context sec.model sec.level match read write notif access MyROGroup "" any noauth exact all none none ############################################################################### # System contact information # syslocation Russia.Moscow syscontact Alexander <gav-alex@bk.ru>
Делаем это не обращая внимание на предупреждения не делать этого =). В файле /etc/snmp/snmpd.conf.example можно почитать, что означают те или иные параметры конфига.
Теперь проверяем настройки другого конфига snmp. Где надо убедиться, что у нас есть там необходимая единственная нам строчка, которая говорит о том, что все данные надо брать из конфига, который мы создали чуть выше - /etc/snmp/snmpd.conf
# Initial (empty) options. SNMPD_FLAGS="-C -c /etc/snmp/snmpd.conf"
Теперь добавляем демон в атозапуск и стартуем его. Теперь у нас есть основной источник для фидинга данных =).
Настройка конфигов для мониторинга сетевых интерфейсов
Дадим систему самой создать дефолтный конфиг, который потом немного подправим под свои нужды.
/usr/bin/cfgmaker \ --output=/etc/mrtg/traffic.cfg \ --ifdesc=ip \ --ifref=descr \ --global "WorkDir: /var/www/stat/htdocs/mrtg/net" \ --global "Options[_]: bits,growright" \ public@localhost
Далее в ручную поправим файл для того, чтобы активировать lo и ppp.
В итоге у меня вышел вот такой файл.
### Global Config Options # for UNIX # WorkDir: /home/http/mrtg ### Global Defaults # to get bits instead of bytes and graphs growing to the right # Options[_]: growright, bits EnableIPv6: no WorkDir: /var/www/stat/htdocs/mrtg/net Options[_]: bits,growright,nopercent ###################################################################### # System: router_a # Description: Linux router_a 2.6.27-gentoo-r8-released_by_alex- #1 SMP Tue Apr 21 00:13:13 MSD 2009 x86_64 # Contact: Alexander <gav-alex@bk.ru> # Location: Russia.Moscow ###################################################################### ### Interface 1 >> Descr: 'lo' | Name: 'lo' | Ip: '127.0.0.1' | Eth: '' ### Target[localhost_lo]: \lo:public@localhost: SetEnv[localhost_lo]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo" MaxBytes[localhost_lo]: 125000000 Title[localhost_lo]: Localhost bandwidth XSize[localhost_lo]: 600 YSize[localhost_lo]: 150 RouterUptime[localhost_lo]: public@localhost PageTop[localhost_lo]: <h1>Localhost bandwidth @ router_a</h1> <div id="sysdetails"> <table> <tr> <td>System:</td> <td>router_a located in Russia.Moscow</td> </tr> <tr> <td>Maintainer:</td> <td>Alexander <gav-alex@bk.ru></td> </tr> <tr> <td>Description:</td> <td>lo </td> </tr> <tr> <td>ifType:</td> <td>softwareLoopback (24)</td> </tr> <tr> <td>ifName:</td> <td>lo</td> </tr> <tr> <td>Max Speed:</td> <td>10.0 Mbits/s</td> </tr> <tr> <td>Ip:</td> <td>127.0.0.1 (localhost)</td> </tr> </table> </div> ### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '10.134.46.181' | Eth: '00-22-15-64-00-4f' ### Target[localhost_eth0]: \eth0:public@localhost: SetEnv[localhost_eth0]: MRTG_INT_IP="10.134.46.181" MRTG_INT_DESCR="eth0" MaxBytes[localhost_eth0]: 125000000 Title[localhost_eth0]: Internet bandwidth XSize[localhost_eth0]: 600 YSize[localhost_eth0]: 150 RouterUptime[localhost_eth0]: public@localhost PageTop[localhost_eth0]: <h1>Internet bandwidth @ router_a</h1> <div id="sysdetails"> <table> <tr> <td>System:</td> <td>router_a located in Russia.Moscow</td> </tr> <tr> <td>Maintainer:</td> <td>Alexander <gav-alex@bk.ru></td> </tr> <tr> <td>Description:</td> <td>eth0 </td> </tr> <tr> <td>ifType:</td> <td>ethernetCsmacd (6)</td> </tr> <tr> <td>ifName:</td> <td>eth0</td> </tr> <tr> <td>Max Speed:</td> <td>100.0 Mbits/s</td> </tr> <tr> <td>Ip:</td> <td>10.134.46.181</td> </tr> </table> </div> ### Interface 3 >> Descr: 'eth1' | Name: 'eth1' | Ip: '192.168.0.1' | Eth: '00-22-15-63-eb-fd' ### Target[localhost_eth1]: \eth1:public@localhost: SetEnv[localhost_eth1]: MRTG_INT_IP="192.168.0.1" MRTG_INT_DESCR="eth1" MaxBytes[localhost_eth1]: 125000000 Title[localhost_eth1]: LAN bandwidth XSize[localhost_eth1]: 600 YSize[localhost_eth1]: 150 RouterUptime[localhost_eth1]: public@localhost PageTop[localhost_eth1]: <h1>LAN bandwidth @ router_a</h1> <div id="sysdetails"> <table> <tr> <td>System:</td> <td>router_a located in Russia.Moscow</td> </tr> <tr> <td>Maintainer:</td> <td>Alexander <gav-alex@bk.ru></td> </tr> <tr> <td>Description:</td> <td>eth1 </td> </tr> <tr> <td>ifType:</td> <td>ethernetCsmacd (6)</td> </tr> <tr> <td>ifName:</td> <td>eth1</td> </tr> <tr> <td>Max Speed:</td> <td>100.0 Mbits/s</td> </tr> <tr> <td>Ip:</td> <td>192.168.0.1</td> </tr> </table> </div>
Настройка мониторинга активости процессора
Сперва я пытался пойти по обычному пути. Создал конфиг следующего содержания:
WorkDir: /var/www/localhost/htdocs/mrtg LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1 + ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1 RouterUptime[localhost.cpu]: public@127.0.0.1 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
Даже скачал недостающий файл UCD-SNMP-MIB.txt, однако, это не прокатило. Данные которые получал MRTG были совершенно неверные и график строился не тот, что ожидалось.
Поэтому подумав, я понял, что Mrtg ведь может строить вообще любые графики, лишь бы был источник информации. Ему на фход передаются 2 значение (Input и Output), которые он и отображает на графиках. Потому было решено создать собственный конфиг для сбора инфы о загрузке моего E6600.
Настройка мониторинга памяти
/etc/mrtg/mem.cfg
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Target[localhost.mem]: memAvailReal.0&memAvailReal.0:public@localhost
PageTop[localhost.mem]:
Free Memory
WorkDir: /var/www/localhost/htdocs/mrtg Options[localhost.mem]: nopercent,growright,gauge,noinfo Title[localhost.mem]: Free Memory MaxBytes[localhost.mem]: 1000000 kMG[localhost.mem]: k,M,G,T,P,X YLegend[localhost.mem]: bytes ShortLegend[localhost.mem]: bytes LegendI[localhost.mem]: Free Memory: LegendO[localhost.mem]: Legend1[localhost.mem]: Free memory, not including swap, in bytes
Настройка мониторинга статистики пингов
/etc/mrtg/ping.cfg
WorkDir: /var/www/localhost/htdocs/mrtg Title[localhost.ping]: Round Trip Time
PageTop[localhost.ping]:
Round Trip Time
Target[localhost.ping]: `/etc/mrtg/ping.sh` MaxBytes[localhost.ping]: 2000 Options[localhost.ping]: growright,unknaszero,nopercent,gauge LegendI[localhost.ping]: Pkt loss % LegendO[localhost.ping]: Avg RTT YLegend[localhost.ping]: RTT (ms)
Создание заданий для крона
/etc/cron.mrtg/cpu
- !/bin/sh
/usr/bin/mrtg /etc/mrtg/cpu.cfg
/etc/cron.mrtg/mem
- !/bin/sh
/usr/bin/mrtg /etc/mrtg/mem.cfg
/etc/cron.mrtg/ping
- !/bin/sh
/usr/bin/mrtg /etc/mrtg/ping.cfg
/etc/mrtg/ping.sh
#!/bin/sh PING="/bin/ping" # Google, for example ADDR="google.com" DATA=`$PING -c10 -s500 $ADDR -q ` LOSS=`echo $DATA | awk '{print $18 }' | tr -d %` echo $LOSS if [ $LOSS = 100 ]; then echo 0 else echo $DATA | awk -F/ '{print $5 }' fi
/bin/chmod +x /etc/cron.mrtg/* /bin/chmod +x /etc/mrtg/ping.sh
Run each script 3 times (disregard the warnings) /etc/cron.mrtg/traffic /etc/cron.mrtg/cpu /etc/cron.mrtg/mem /etc/cron.mrtg/ping_google /etc/cron.mrtg/ping_yandex
Make the Index
/usr/bin/indexmaker --output=/var/www/localhost/htdocs/mrtg/index.html \ --title=".::Router_a Statistics::." \ --sort=name \ --enumerate \ /etc/mrtg/traffic.cfg \ /etc/mrtg/cpu.cfg \ /etc/mrtg/mem_physical.cfg \ /etc/mrtg/mem_virtual.cfg \ /etc/mrtg/mem_buffer.cfg \ /etc/mrtg/mem_swap.cfg \ /etc/mrtg/mem_cached.cfg \ /etc/mrtg/ping_google.cfg \ /etc/mrtg/ping_yandex.cfg
Make the mrtg.cfg
cfgmaker --global "WorkDir: /var/www/localhost/htdocs/mrtg/" \ --global "Options[_]: growright,bits" \ --ifref=ip \ public@localhost > /etc/mrtg/mrtg.cfg
Cronjob
/bin/cat >> /var/spool/cron/crontabs/root
- /5 * * * * /bin/run-parts /etc/cron.mrtg >/dev/null 2>&1
Если нет нужного файла
http://www.shrubbery.net/mibs/UCD-SNMP-MIB.txt
Ссылки
http://oss.oetiker.ch/mrtg/doc/mrtg-faq.en.html http://209.85.135.104/search?q=cache:F7kOdNopPnEJ:no.gentoo-wiki.com/HOWTO_SNMP_and_MRTG_Made_Easy+MRTG+gentoo+wiki&hl=en&ct=clnk&cd=1&client=opera http://forums.gentoo.org/viewtopic-t-105862-postdays-0-postorder-asc-start-50.html http://www.net-snmp.org/wiki/index.php/TUT:snmpwalk