Надоело мне что я ничего не знаю о текущей ситуации в сети, а вопросы которые мне задают почему все тормозит, а интернет у нас есть, а почта работает, а почему картинка с камеры так долго грузится — Вот и настал тот момент когда все мое желание на рабочем месте быть более осведомленным к проблемам навело меня на мысль, а почему здесь на текущем месте работы не используется такой замечательный инструмент, как mrtg

MRTG — является свободным программным обеспечением, а в условиях когда нужно видеть что с сетью без задействования дорогих решений (а если денег не дают, то Ubuntu приходит на помощь). В основе утилиты MRTG — лежит сервис мониторинга и сбора данных по прошествии некого времени.Что не маловажно, данные собираются и визуализируются в виде графиков.

MRTG применяется для:

  • мониторинга загруженности канала (входящий, исходящий, максимальный, средний трафик);
  • мониторинга использования процессора, оперативной памяти, жёсткого диска; – об этом в следующих заметках мого блога
  • наблюдения за температурными показателями аппаратных ресурсов;
  • погодные данные и т.д. – об этом в следующих заметках мого блога

Чтобы все это выше получать необходимо чтобы на устройстве была поднята служба SNMP, как это сделать для Ubuntu’систем читайте заметку моего блога:

Но прежде чем начать, мне нужно вспомнить, а на каких IP адресах располагается сетевое оборудования, для этого мне посредством действующих репозитариев нужно установить самую актуальную версию сетевого сканера nmap — текущая:

ekzorchik@srv-mon:~$ apt-cache show nmap | grep Version

Version: 5.21-1.1ubuntu1

Маловато то будет, ставлю самую последнюю по заметке:

Нахожу все сетевые устройства в данном VLAN офиса где я работаю:

ekzorchik@srv-mon:~$ sudo nmap -n -sn 192.168.0.20-30

192.168.0.1 — Офис Текущий – DWS-3160-24PC

192.168.0.2 — Офис Текущий 2: – DGS-3120-24TC

Нахожу все сетевые устройства в данном VLAN офиса где который я поддерживаю удаленно:

После устанавливаю утилиты для работы с SNMPзапросами:

ekzorchik@srv-mon:~$ sudo apt-get install snmp snmpd snmp-mibs-downloader -y

Местонахождение MIB файлов: ls /var/lib/mibs/ietf/ -l

Теперь нужно подключиться к VLAN 1 :

ekzorchik@srv-mon:~$ sudo apt-get install vlan -y

ekzorchik@srv-mon:~$ sudo modprobe 8021q

ekzorchik@srv-mon:~$ sudo vconfig add eth0 1

Added VLAN with VID == 1 to IF -:eth0:-

WARNING: VLAN 1 does not work with many switches,

consider another number if you have problems.

ekzorchik@srv-mon:~$ sudo ip addr add 192.168.0.91/24 dev eth0.1

если нужно удалить объявленный vlan

ekzorchik@srv-mon:~$ sudo vconfig rem eth0.1

Removed VLAN -:eth0.1:-

ekzorchik@srv-mon:~$ sudo bash -c "cat /proc/net/vlan/config"

VLAN Dev name | VLAN ID

Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD

eth0.1 | 1 | eth0.

ekzorchik@srv-mon:~$ sudo /etc/init.d/networking restart

А теперь уже собственно и устанавливаю Web-ориентированное приложение именуемое, как MRTG:

ekzorchik@srv-mon:~$ sudo apt-get install mrtg -y

Make /etc/mrtg.cfg owned by and readable only by root? Yes

На заметку: дефолтный конфигурационный файл советую сохранить на случай если Вы по началу совершите ошибки его конфигурирования и Вам не захочется переустанавливать утилиту mrtg.

ekzorchik@srv-mon:~$ sudo cp /etc/mrtg.cfg /etc/mrtg.cfg.backup

По умолчанию MRTG создает простой конфигурационный файл по адресу /etc/mrtg.cfg в котором, но на его основе формируем свой описанный файл конфигурации, но предварительно на хосте с которого будем снимать информацию должен быть настроен SNMP

ekzorchik@srv-mon:~$ sudo -s

root@srv-mon:~# cfgmaker public@192.168.0.1 > /etc/mrtg.cfg

Полученный файл mrtg.cfg можно консольным редактором подправить исключив записи портов которых нет или они не заслуживают столь внимательного рассмотрения по сравнению с другими.

На заметку: Что включает в себя файл mrtg.cfg

Title[eth0]: Traffic eth0 # название генерируемой страницы
MaxBytes[eth0]: 125000 #  при получении значения, большего чем заданное, 
# значение не учитывается для построения графика
AbsMax[eth0]: 125000 # при получении значения, большего чем заданное, значение
# вообще не учитывается
Options[eth0]: gauge # опция означает, что берется текущее входное значение,
# а не по нарастающему итогу
Target[eth0]: `/usr/sbin/cban -i eth0 -m` #  откуда получаем данные
PageTop[eth0]: eth0 statistics # заголовок генерируемой страницы
YLegend[eth0]: Bytes/s # подпись к значению по оси Y графика
ShortLegend[eth0]: B/s # единица измерения. добавляется к максимальному,
# текущему и среднему значению
Legend1[eth0]: Incoming Traffic # подпись для входящего трафика 
Legend2[eth0]: Outgoing Traffic # подпись для исходящего трафика
Legend3[eth0]: Maximum Incoming Traffic # подпись для максимального входящего трафика
Legend4[eth0]: Maximum Outgoing Traffic # подпись для максимального исходящего трафика
LegendI[eth0]:  In: # краткая подпись для цифровых данных (входящий)
LegendO[eth0]:  Out: # краткая подпись для цифровых данных (исходящий)
WithPeak[eth0]: ymwd # строим графики за y-год, m-месяц, w-неделю, d-день

После того, как файл конфигурации создан, сгененируем страницу Web для наглядного отображения:

root@srv-mon:~# mkdir -p /var/www/mrtg

Далее генерирую страницу по конфигурационному файлу:

root@srv-mon:~# indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

root@srv-mon:~# chown -R www-data:www-data /var/www

root@srv-mon:~# exit

exit

Проверяю что служба cron запущена:

ekzorchik@srv-mon:~$ sudo service cron status

cron start/running, process 800

Создаю задание:

ekzorchik@srv-mon:~$ sudo crontab -e

* * * * * mrtg /etc/mrtg.cfg > /dev/null

Перезапускаю службу cron:

ekzorchik@srv-mon:~$ sudo killall -HUP cron

Либо если у Вас сетевых устройств несколько то для каждого из них формируем свой конфигурационный файл /etc/mrtg[*].cfg и прописываем его в задание/

После запускаю mrtg с указанием конфигурационного файла:

ekzorchik@srv-mon:~$ sudo mrtg /etc/mrtg.cfg

———————————————————————–

ERROR: Mrtg will most likely not work properly when the environment

variable LANG is set to UTF-8. Please run mrtg in an environment

where this is not the case. Try the following command to start:

env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

, ага теперь по другому запускаю:

ekzorchik@srv-mon:~$ sudo env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

если же в процессе Вы видите ошибки вида:

Rateup WARNING: /usr/bin/rateup Can’t rename

rateup is a program called by mrtg to generate new logfile entries and

to update the traffic PNG images.

Поэтому нужно создавать актуальный индексный файл для каждой машины которую хотим визуализировать, решение выше указанной ошибки повторный запуск команды и после ошибки уже не будет.

Далее создаю описательный файл конфигурации для веб-сервера apache2 с целью возможности захода на URL адрес формируемой статистики mrtg:

ekzorchik@srv-mon:~$ sudo apt-get install apache2 -y

ekzorchik@srv-mon:~$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mrtg.conf

ekzorchik@srv-mon:~$ sudo unlink /etc/apache2/sites-available/default

ekzorchik@srv-mon:~$ sudo unlink /etc/apache2/sites-enabled/000-default

ekzorchik@srv-mon:~$ sudo nano /etc/apache2/sites-available/mrtg.conf

<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/

Alias /mrtg "/var/www/mrtg"

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

ekzorchik@srv-mon:~$ sudo a2ensite mrtg.conf

ekzorchik@srv-mon:~$ sudo service apache2 reload

Теперь открываем в браузере:

http://IP&DNS/mrtg и получаем статистику собираемой информации с мониторящихся устройств.

Через snmp снимается информация в виде строящихся графиков
Изменяя файл index.html подредактирую описательную часть собираемой статистики, т. е. Можно дополнить что за что отвечает тот или иной порт к примеру:

ekzorchik@srv-mon:~$ sudo indexmaker /etc/mrtg.cfg --output /var/www/mrtg/index.html --title Corp_Router_ТекущееМесто

ekzorchik@srv-mon:~$ sudo chown -R www-data:www-data /var/www

ekzorchik@srv-mon:~$ sudo service apache2 restart

Следом формирую конфигурационный файл для второго сетевого устройства:

ekzorchik@srv-mon:~$ sudo su -

root@srv-mon:~# cfgmaker public@192.168.0.2 > /etc/mrtg1.cfg

На заметку: Как и говорил выше вывод информации по сетевому устройству можно отформатировать (утилита cfgmaker), к примеру обозначить назначение интерфейсов, адрес интерфейса, номер и тип интерфейса:

,либо после формирования конфигурационного файла /etc/mrtg.cfg посредством текствого редактора подправить значение колонок:

Title[192.168.0.2_1]: VOIP gateway for 1/1 — DWS

PageTop[192.168.0.2_1]: <h1>VOIP gateway for 1/1 — DWS</h1>

А после сформировать на основе измененных данный файл для просмотра посредством браузера.

root@srv-mon:~# indexmaker /etc/mrtg1.cfg > /var/www/mrtg/index1.html

root@srv-mon:~# chown -R www-data:www-data /var/www/*

root@srv-mon:~# service apache2 restart

Теперь обратившись по адресу: http://IP&DNS/mrtg/index1.html получим формируемые графики другого сетевого устройства, также на забываем добавить его в файл задания по аналогии с mrtg.conf

На заметку: если Вы что-то напортачили с файлом /etc/mrtg.cfgего можно удалить, и создать заново:

ekzorchik@srv-mon:~$ sudo rm /etc/mrtg.cfg

ekzorchik@srv-mon:~$ sudo rm -Rf /var/www/mrtg/*

ekzorchik@srv-mon:~$ sudo dpkg-reconfigure mrtg

либо просто удалить и заново поставить.

ekzorchik@srv-mon:~$ sudo apt-get install --reinstall mrtg

или так

ekzorchik@srv-mon:~$ sudo aptitude reinstall mrtg

В процессе работы столкнулся с тем, что формируемые графики не обновляются:

The statistics were last updated Saturday, 4 July 2015 at 15:25, хотя на текущее время уже Sat Jul 4 15:29:40 MSK 2015

опытным путем выяснил что нужно изменить задание

ekzorchik@srv-mon:~$ sudo su -

root@srv-mon:~# crontab -e

* * * * * env LANG=C /usr/bin/mrtg /etc/mrtg1.cfg > /dev/null

* * * * * env LANG=C /usr/bin/mrtg /etc/mrtg2.cfg > /dev/null

и после перезапустив демон cron снимаемые показатели начали обновляться при нажатии клавиши F5 открытой страницы с графиками.

Если же показатели все равно не отображаются, а просто выполнив в консоли:

root@srv-mon:~# env LANG=C /usr/bin/mrtg /etc/mrtg2.cfg

, то следует внимательно смотреть “Планировщик” на предмет корректности настройки правила.

По такому же принципу можно визуализировать снимаемую информацию с различных сетевых устройств если же у меня буду возникать какие-либо интересные моменты я буду освящать их на своем блоге, а пока все, до встречи с уважением автор блога — ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru