Настройка mrtg (Multi Router Traffic Grapher)

Недавно меня посетила дельная мысль, что для правильного мониторинга шлюза мало одни только логи или вывод iptraf просматривать и в этот момент я решил, что стоит задействовать mrtg (Multi Router Traffic Grapher). Нам понадобится mrtg, snmp и apache2. OpenSuse 13.1 все эти пакеты были установлены сразу при установке системы поэтому нам нужно только настроить все эти пакеты.

Начнем с snmp. Переходим в /etc/snmp/ и открываем любым редактором snmp.conf
его содержимое должно быть таким:

syslocation Linux(OpenSuse), Koreamotors Linux Router
syscontact admin <admin@local@host>

Первая строка — это то, что будет отображаться на странице mrtg в графе System, вторая то, что будет в Maintainer

Находим строку:

com2sec notConfigUser  default       public

И заменяем её на:

com2sec local     localhost           public
com2sec mynetwork 192.168.0.0/24      public

Спускаемся ниже и находим:

group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser

заменяем их на:

group MyRWGroup v1         local
group MyRWGroup v2c        local
group MyRWGroup usm        local
group MyROGroup v1         mynetwork
group MyROGroup v2c        mynetwork
group MyROGroup usm        mynetwork

снова спускаемся немного ниже и находим:

view    systemview     included      system

меняем её на:

view all    included  .1                               80

и снова скролим вниз и находим:

access  notConfigGroup ""      any       noauth    exact  systemview none none

меняем её на :

access MyROGroup ""      any       noauth    exact  all    none   none
access MyRWGroup ""      any       noauth    exact  all    all    none

теперь нужно перечитать настройки snmpd:
почему-то в моем случаем ни

/etc/init.d/snmpd rstart
/etc/init.d/snmpd force-reload

помог только рестарт демона:

/etc/init.d/snmpd force-restart или
/etc/init.d/snmpd restart

Теперь проверим работоспособность:

snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex

вывод должен быть примерно таким:

IP-MIB::ipAdEntIfIndex.11.22.33.44 = INTEGER: 3
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.0.1 = INTEGER: 2

теперь настроим и подготовим MRTG:
Создадим папку для конфигурационного файла и сам файл:

mkdir /etc/mrtg && cd /etc/mrtg && touch mrtg.conf

теперь выполняем:

сfgmaker public@192.168.0.1 >> /etc/mrtg/mrtg.cfg

где 192.168.0.1 — адрес компьютера/роутера, на котором настроен SNMP
еще нужно вручную добавить «рабочую папку mrtg» в /etc/mrtg/mrtg.conf — место где будут лежать графики:

WorkDir: /var/www/mrtg

теперь создадим «рабочую папку» и генерируем index.html веб-страницу:

mkdir /var/www/mrtg && indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html

далее открываем конфигурационный файл apache2 /etc/apache2/httpd.conf и добавляем в конец строки:

Alias /mrtg "/var/www/mrtg/"
<Directory "/var/www/mrtg/">
        Options None
        AllowOverride None
        Require all granted
</Directory>

после чего рестарт apach2:

/etc/init.d/apache2 restart

и тут я получил ошибку:

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

данная ошибка говорит, что в файле httpd.conf отсутствует ServerName
добавив в httpd.conf

ServerName imya_servera

после чего apache2 успешно стартовал (не забываем добивать его в автозагрузку)
Открыв браузер и перейдя по адресу: http://ip-address/mrtg/ я увидел Access denied
Снова открываем httpd.conf и добавляем:

<Directory "/var/www/mrtg/">
Order alow,deny
Allow from all
</Directory>

Выполняем:

/etc/init.d/apache2 restart

mrtg
Теперь чтобы графики обновлялись создаем скрипт:

touch /etc/mrtg/mrtg.sh && cd /etc/mrtg/ && chmod 755 /etc/mrtg.mrtg.sh

В него вписываем:

#!/bin/bash
LANG=C
export $LANG
/usr/bin/mrtg /etc/mrtg/mrtg.conf --logging /var/log/mrtg.log

И чтобы каждых 4 минуты скрипт срабатывал редактируем файл /etc/crontab дописывая в него:

*/4 * * * * /etc/mrtg/mrtg.sh

Со спокойной душой попивая холодное пивко смотрим на графики :)