MRTG и SNMP настройка под Gentoo: различия между версиями
ALEX (обсуждение | вклад) |
ALEX (обсуждение | вклад) |
||
Строка 77: | Строка 77: | ||
</pre>}} | </pre>}} | ||
Делаем это не обращая внимание на предупреждения не делать этого =). В файле {{Codeline|snmpd.conf.example}} можно почитать, что означают те или иные параметры конфига. | Делаем это не обращая внимание на предупреждения не делать этого =). В файле {{Codeline|/etc/snmp/snmpd.conf.example}} можно почитать, что означают те или иные параметры конфига. | ||
Теперь проверяем настройки другого конфига snmp. Где надо убедиться, что у нас есть там необходимая единственная нам строчка, которая говорит о том, что все данные надо брать из конфига, который мы создали чуть выше - {{Codeline|/etc/snmp/snmpd.conf}} | Теперь проверяем настройки другого конфига snmp. Где надо убедиться, что у нас есть там необходимая единственная нам строчка, которая говорит о том, что все данные надо брать из конфига, который мы создали чуть выше - {{Codeline|/etc/snmp/snmpd.conf}} | ||
Строка 86: | Строка 86: | ||
</pre>}} | </pre>}} | ||
Теперь добавляем демон в атозапуск и стартуем его. Теперь у нас есть основной источник для фидинга данных =). | |||
{{Root|/sbin/rc-update add snmpd default}} | |||
{{Root|/etc/init.d/snmpd start}} | |||
===Настройка конфигов для мониторинга сетевых интерфейсов=== | |||
Дадим систему самой создать дефолтный конфиг, который потом немного подправим под свои нужды. | |||
{{Root| | |||
/usr/bin/cfgmaker \ | /usr/bin/cfgmaker \ | ||
--output=/etc/mrtg/traffic.cfg \ | --output=/etc/mrtg/traffic.cfg \ | ||
Строка 104: | Строка 101: | ||
--global "Options[_]: bits,growright" \ | --global "Options[_]: bits,growright" \ | ||
public@localhost | public@localhost | ||
}} | |||
Далее в ручную поправим файл для того чтобы активировать ppp | Далее в ручную поправим файл для того, чтобы активировать lo и ppp. | ||
{{Note|У меня с ppp не прокатило, он то пахал, то нет. Иногда у меня создавался почему-то второй туннель ppp1 вместо ppp0. В общем я забил на это. Тем более простой монитор интерфейса сетевухи практически полностью отражает реальную картину интернет канала, т.к. из локальной сети провайдеря у меня трафика нет вообще почти (может 1-2 раза в год на форум выйду =) )}} | |||
В итоге у меня вышел вот такой файл. | |||
{{File|/etc/mrtg/traffic.cfg|<pre> | |||
### Global Config Options | |||
# for UNIX | |||
# WorkDir: /home/http/mrtg | |||
### Global Defaults | ### Global Defaults | ||
Строка 116: | Строка 119: | ||
EnableIPv6: no | EnableIPv6: no | ||
WorkDir: /var/www/ | WorkDir: /var/www/stat/htdocs/mrtg/net | ||
Options[_]: bits,growright | 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: '' ### | ### Interface 1 >> Descr: 'lo' | Name: 'lo' | Ip: '127.0.0.1' | Eth: '' ### | ||
Target[localhost_lo]: \lo:public@localhost: | Target[localhost_lo]: \lo:public@localhost: | ||
SetEnv[localhost_lo]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo" | SetEnv[localhost_lo]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo" | ||
MaxBytes[localhost_lo]: 125000000 | MaxBytes[localhost_lo]: 125000000 | ||
Title[localhost_lo]: | Title[localhost_lo]: Localhost bandwidth | ||
PageTop[localhost_lo]: <h1> | 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"> | <div id="sysdetails"> | ||
<table> | <table> | ||
<tr> | <tr> | ||
<td>System:</td> | <td>System:</td> | ||
<td>router_a in Russia.Moscow</td> | <td>router_a located in Russia.Moscow</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 160: | Строка 172: | ||
</div> | </div> | ||
### Interface 2 >> Descr: ' | ### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '10.134.46.181' | Eth: '00-22-15-64-00-4f' ### | ||
Target[ | Target[localhost_eth0]: \eth0:public@localhost: | ||
SetEnv[ | SetEnv[localhost_eth0]: MRTG_INT_IP="10.134.46.181" MRTG_INT_DESCR="eth0" | ||
MaxBytes[ | MaxBytes[localhost_eth0]: 125000000 | ||
Title[ | Title[localhost_eth0]: Internet bandwidth | ||
PageTop[ | 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"> | <div id="sysdetails"> | ||
<table> | <table> | ||
<tr> | <tr> | ||
<td>System:</td> | <td>System:</td> | ||
<td>router_a in Russia.Moscow</td> | <td>router_a located in Russia.Moscow</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 179: | Строка 194: | ||
<tr> | <tr> | ||
<td>Description:</td> | <td>Description:</td> | ||
<td> | <td>eth0 </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 187: | Строка 202: | ||
<tr> | <tr> | ||
<td>ifName:</td> | <td>ifName:</td> | ||
<td> | <td>eth0</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 195: | Строка 210: | ||
<tr> | <tr> | ||
<td>Ip:</td> | <td>Ip:</td> | ||
<td> | <td>10.134.46.181</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
</div> | </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" | |||
Target[ | MaxBytes[localhost_eth1]: 125000000 | ||
SetEnv[ | Title[localhost_eth1]: LAN bandwidth | ||
MaxBytes[ | XSize[localhost_eth1]: 600 | ||
Title[ | YSize[localhost_eth1]: 150 | ||
PageTop[ | RouterUptime[localhost_eth1]: public@localhost | ||
PageTop[localhost_eth1]: <h1>LAN bandwidth @ router_a</h1> | |||
<div id="sysdetails"> | <div id="sysdetails"> | ||
<table> | <table> | ||
<tr> | <tr> | ||
<td>System:</td> | <td>System:</td> | ||
<td>router_a in Russia.Moscow</td> | <td>router_a located in Russia.Moscow</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 220: | Строка 237: | ||
<tr> | <tr> | ||
<td>Description:</td> | <td>Description:</td> | ||
<td> | <td>eth1 </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 228: | Строка 245: | ||
<tr> | <tr> | ||
<td>ifName:</td> | <td>ifName:</td> | ||
<td> | <td>eth1</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
Строка 236: | Строка 253: | ||
<tr> | <tr> | ||
<td>Ip:</td> | <td>Ip:</td> | ||
<td> | <td>192.168.0.1</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
</div> | </div> | ||
</pre>}} | |||
</pre> | |||
Версия 19:30, 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"
Теперь добавляем демон в атозапуск и стартуем его. Теперь у нас есть основной источник для фидинга данных =).
Настройка конфигов для мониторинга сетевых интерфейсов
Дадим систему самой создать дефолтный конфиг, который потом немного подправим под свои нужды.
Далее в ручную поправим файл для того, чтобы активировать 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>
/etc/mrtg/cpu.cfg
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
/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