Рисуем красивые графики с помощью MRTG

Данной статьей я хочу поговорить в очередной раз о мониторинге. Это в первую очередь необходимая и только уже потом полезная вещь в любой сети или системе. Логи, статистика, оповещения – вот с чего начинается любой траблшут. И не только, когда уже что-то сломалось. Зачастую проблему можно увидеть заранее. И это, по моему мнению, главное.
Систем мониторинга огромное множество. Простые и сложные, кроссплатформенные и только под UNIX, многоцелевые и только для сетей, с базами данных и без, платные и бесплатные и т.д. Рассмотреть все очень сложно. Попробовать функционал каждой и описать его здесь тоже. Поэтому будем пробовать. На практике. И рассмотрю я сегодня MRTG…
Это ветеран. Современные системы далеко ушли вперед по сравнению с ним. Но и он хорош. Что он умеет? Только рисовать графики. Всё. Больше ничего. Но в чем же плюс? Именно в этом. Он легок. Как в установке, так и в обслуживании. Он не требует много ресурсов. Он бесплатный. Он работает по SNMP, который в современном мире, кажется, отсутствует, наверное, только в микроволновках…(или уже присутствует?)

mrtg
Итак, MRTG – это Multi Router Traffic Grapher. Авторы – Тобиас Отикер (Tobias Oetiker) и Дейв Рэнд (Dave Rand). Сервис, который посредством протокола SNMP получает от нескольких устройств информацию и отображает в окне вашего браузера графики загруженности канала (входящий трафик, исходящий, максимальный, средний) с интервалом в минуты, часы, дни и за 1 год. Сервис кроссплатформенный. Распространяется под лицензией GPL. Установка проста под любой системой.
Под Windows вам понадобится:

  • Сам пакет MRTG
  • Пакет PERL. К примеру, ActivePerl.
  • Windows Server 2003 Resource Kit Tools. Необходим для настройки MRTG в качестве службы.
  • Web server, например, Apache

Под UNIX понадобится:

  • Пакет MRTG
  • Perl
  • Snmpd
  • Настройка cron
  • Установка библиоткек gd — graph drawing library (форимарование графики), libpng (чтобы хранить графики не в формате gif), zlib – сжатие полученной графики)
  • Web server. Опять же Apache или Nginx.

Мы кратко рассмотрим установку на операционной системе Windows 7. Поверьте, на любой системе это очень просто. Но неважно на какой системе вы будете настраивать клиента MRTG. Все перечисленные выше требования не обеспечат вас красивыми графиками, пока вы не настроите сетевое устройство.
Рассмотрим настройку коммутатора cisco catalyst 2950:

snmp-server community YourSecretKey RO 10

snmp-server – включаем сам сервер
community YourSecretKey – ключ, с помощью которого устройства обмениваются информацией (позже нам понадобится при настройке MRTG). Замечание! В других инструкциях на просторах интернета или в мануалах к устройствам вы найдете примеры, в которых в основном используется community public. Всегда меняйте значение public. Это как со стандартными паролями типа cisco и admin.
RO – Read Only. Настоятельно советую выставлять именно режим для чтения, особенно если вы не прислушаетесь к замечанию предыдущего пункта. Для MRTG не нужен режим записи RW. Этот режим нужен для управления устройством по протоколу SNMP. В конце статьи мы опишем пример применения режима RW.
10 – номер Access-list с настройкой доступа к вашему устройству.

access-list 10 remark — ACL SNMP —
access-list 10 permit 192.168.0.0 0.0.0.255
access-list 10 deny any log

Настройка access-list 10. Разрешаем доступ к snmp серверу от определенной сети, в которой находится snmp-agent (ваш компьютер/сервер).

snmp ifindex persist
или
interface FastEthernet0/31
snmp ifindex persist

С помощью данной команды глобально или на определенном интерфейсе вы защитите счетчики от сброса, например, при перезагрузке устройства.

Настройка коммутатора завершена. Теперь переходим к snmp агенту.

Как и было сказано выше, мы рассмотрим установку на ОС Windows 7 professional 64bit, а также базовую настройку.

Установка:
1. Скачиваем MRTG  и распаковываем архив в C:\mrtg\
2. Скачаваем Perl и устанавливаем
3. Переходим в директорию C:\mrtg\bin\. Вводим команду “perl mrtg” и наблюдаем информационное сообщение. Установка и проверка корректности установки MRTG завершена.
4. Скачиваем  и устанавливаем web-server apache. Настройкой web сервера мы заниматься не будем. Хватит всего «по умолчанию». Откройте ваш браузер и наберите http://localhost. При успешной установке web сервера вы увидите сообщение “it works!

Настройка:
1. Создаем конфигурационный файл
Открываем командную строку cmd.exe и выполняем следующий команды:

cd C:\mrtg-2.17.4\bin
perl cfgmaker YourSecretKey@192.168.0.1 —global «WorkDir: C:\Program Files (x86)\Apache2.2\htdocs » —output mrtg.cfg

YourSecretKey – тот самый ключ community для связи с сетевым устройством

192.168.0.1 – адрес того самого сетевого устройства

WorkDir: C:\Program Files (x86)\Apache2.2\htdocs – директория, в которую будут складываться ваши графики и web-страницы. Если вы хотите изменить путь, то помните, что необходимо также перенастроить путь в web сервере Apache.

Проверьте, правильно ли вы настроили все вышеописанные параметры. Иначе вы получите ошибку вида: ‘no such name’ или ‘no response’, что значит, что сетевое устройство не отвечает на запросы.

2. Рассмотрим файл конфигурации
Открываем файл mrtg.cfg.
Добавляем строчку:

WorkDir: C:\Program Files (x86)\Apache2.2\htdocs\

Символ # в начале строки в языке Perl комментирует всю строку.

Видим описание нашего сетевого устройства (имя, модель, версия IOS и т.д.

######################################################################
# System: switch-2950-test
# Description: Cisco Internetwork Operating System Software
# IOS ™ C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA4,
# Copyright (c) 1986-2005 by cisco Systems, Inc.

Далее описания каждого интерфейса. Заметим, что если в момент формирования конфигурационного файла интерфейс был в режиме “Down”, то MRTG считает всю информацию о нем, но графики строить не будет, а в файл конфигурации описание данного интерфейса будет закомментировано.

Ip адрес сетевого устройства: Номер интерфейса: Community@IP-адрес

Target[192.168.0.1_1]: 1: YourSecretKey@192.168.0.1.1

Скорость [бит/сек.] (в примере, 1250000×8=100Мбит/сек.):

MaxBytes[192.168.0.1_1]: 1250000

Имя интерфейса (можете переименовать, если вам захочется)

Title[192.168.0.1_1]: Test MRTG for Fa0/1

А дальше заголовок Web-страницы (вы также, можете всё отредактировать:

PageTop[192.168.0.1_1]: <H1> Test MRTG for Fa0/1</H1>
<TABLE>
<TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>
<TR><TD>Interface:</TD><TD>Fa0/1</TD></TR>
<TR><TD>IP:</TD><TD>192.168.0.1</TD></TR>
</TABLE>

А дальше следующий интерфейс…

3. Запуск файла конфигурации

Теперь можно посмотреть результат работы MRTG. Переходим в директорию c:\mrtg\bin следующую команду:

perl mrtg mrtg.cfg

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

Чтобы не запускать файл вручную, отредактируем его, добавив строчку:

RunAsDaemon: yes

И запускаем следующую команду:

start /Dc:\mrtg\bin wperl mrtg —logging=eventlog mrtg.cfg

Под системой Windows можно настроить MRTG в качестве службы. Для этого вам понадобится пакет Windows Server 2003 Resource Kit Tools, а порядок действий по созданию службы вы легко найдете на просторах Интернета.

Сейчас у вас уже накапливается статистика. Но есть еще одна прекрасная утилита – indexmaker. Эта опция, которая соберет многочисленные графики и html странички в одну – index.html

Выполните команду:

perl indexmaker —output C:\Program Files (x86)\Apache2.2\htdocs\index.html mrtg.cfg

В итоге, откройте браузер, наберите http://localhost/index.html

Любуйтесь: все ваши интерфейсы на одной странице. Выберете любой, кликнув на картинку, и вы перейдете на страницу данного интерфейса. Вы увидите график за день, неделю, месяц и 1 год. Правда, пока они у вас пустые. А вот через неделю, месяц…

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

myexample

 

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

cpu

 

Можно мониторить температуру ядер вашего сервера и, например, задуматься о плановых работах по «чистке»:

temperature

 

Следите за входящим напряжением вашего источника бесперебойного питания, от которого питается вся стойка, чтобы показать потом, например, арендодателю, что был крупный скачок:

voltage

 

Вы можете увидеть, какое количество timeslots используется в вашем потоке Е1 и понять, что скоро, например, придется арендовать еще один поток:

timeslots
Для всего этого вам надо знать OID ваших устройств, а на официальном сайте MRTG вы найдете всю дополнительную информацию о настройке, возможностях этого на первый взгляд простецкого сервиса. Да, он усредняет полученные значения. Да, он не пришлет вам смску о том, что канал упал. Но зато он дает очень наглядную и красивую картинку о том, как функционирует ваша сеть, куда и откуда идет трафик, как взаимодействуют все ваши сетевые устройства.

 

P.S.

А теперь обещанное дополнение о том, для чего режим RW в SNMP и как положить, к примеру, интерфейс на маршрутизаторе cisco 1841:

1) snmp-server community YourSecretKey RW 10
2) access-list 10
permit 192.168.1.0
3) snmp-server ifindex persist
4) show snmp mib ifmib ifindex (index interface)

5) Установить snmpset на Linux или Windows
6) Открыть cmd.exe и ввести команду:
snmpset -v 2c -c YourSecretKey 192.168.0.1 1.3.6.1.2.1.2.2.1.7.N i {1|2}

YourSecretKey – community
192.168.0.1 — ip адрес интерфейса
N — index интерфейса
1 — up
2 — down

MIB Cisco 1841:

Router#show snmp mib ifmib ifindex
FastEthernet0/0: Ifindex = 1
FastEthernet0/0/0: Ifindex = 3
Null0: Ifindex = 7
Vlan1: Ifindex = 8
Vlan2: Ifindex = 9
FastEthernet0/1: Ifindex = 2
Vlan3: Ifindex = 10
FastEthernet0/0/1: Ifindex = 4
FastEthernet0/0/2: Ifindex = 5
FastEthernet0/0/3: Ifindex = 6

В итоге у вас получится примерно такое:

1) Опустить fa0/1: snmpset -v 2c -c YourSecretKey 192.168.0.1 1.3.6.1.2.1.2.2.1.7.2 i 2
2) Поднять vlan2: snmpset -v 2c -c YourSecretKey 192.168.0.1 1.3.6.1.2.1.2.2.1.7.9 i 1

 

И помните, даже в технических специальностях нет предела для творчества!


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hide me
Получать регулярно свежие материалы, лабораторные и вебинары
Email Имя
Show me