Поиск...

пятница, 27 января 2012 г.

Установка и настройка Cacti на Ubuntu

Доброго времени суток!!!

В прошлых постах («Установка и настройка Kiwi Syslog Daemon» и «Установка и настройка Kiwi CatTools») я попробовал рассказать вам, как получать сообщения от сетевых устройств, как оповещать нас о критических событиях, как сохранять актуальные (и не только) конфигурационные файлы и еще кое о чем. Надеюсь, у меня получилось :). Но еще, для полного счастья, хорошо было бы видеть в графической форме некоторые параметры сетевых устройств (загрузку CPU, загрузку на портах, количество ошибок и так далее).
Сегодня я предлагаю, для этих целей, установить и настроить программу Cacti. Помимо этой программы есть и другие (MRTG, nagios например), но мне больше нравится именно она, так как в ней есть web-интерфейс и, как мне кажется, она более удобна в настройке.
Итак, кто заинтересовался, добро пожаловать под кат…



Соберем, для начала, тестовую схему. Выглядит она следующим образом:


Немного пояснений к схеме. В качестве роутера Router_1 я использовал cisco 3640, в качестве Roter_2 – cisco 2691. Рабочие станции (Working_PC_1 и Working_PC_2) понадобятся нам для генерации трафика, чтобы было, что посмотреть на графиках. Сам Cacti будем настраивать на Ubuntu 11.04. Из опыта использования, Cacti не очень стабильно работала под windows. После установки программы на linux, замечаний пока не было.
Итак, приступим к установке Cacti. Да простят меня линуксоиды, но я буду использовать Ubuntu Desktop, и графический интерфейс. Надеюсь, вам не составит особого труда установить ОС. После установки, подайте, интернет на эту машину (он нам понадобиться для скачивания и последующей установки Cacti и сопутствующих приложений).
Запускаем встроенный в Ubuntu 11.04 «Synaptic Package Manager»:


В открывшемся окне, с помощью быстрого фильтра (Quick Filter), ищем пакет cacti. Из появившегося списка выбираем cacti и cacti-spine (универсальный poller для cacti) и нажимаем правой клавишей. В появившемся окне выбираем пункт «Mark for install»:


Появится следующее окошко:


Здесь приведен список других пакетов, с которыми должна взаимодействовать программа Cacti. Сюда входят такие приложения как apache2, база mysql, пакеты для php и различные библиотеки. Если они у вас не установлены, то они будут скачены и установлены вместе с пакетами для Cacti. Нажимаем «Mark». Затем нажимаем на «Apply»:


Откроется окно:


Здесь видна суммарная информация перед инсталляцией. Есть информация о списке и количестве пакетов для инсталляции, размере скаченных файлов и так далее. Нажимаем «Apply». Начнется процесс скачивания пакетов из списка, и затем их автоматическая установка.
При установке будут всплывать окна настройки. Я приведу их вам:


Устанавливаем пароль для администратора MySQL. В следующем окне подтверждаем его и нажимаем «Forward»:


Здесь нас предупреждают, что поменялись некоторые пути для php и предлагается настроить файл php.ini. Если потребуется, то сделаем это позже. Нажимаем «Forward»:


Здесь нам предлагают выбрать тип web-server-а для Cacti (в выпадающем меню есть apache, apache-ssl, apache2, all и none). Я выбрал «apache2». Если вы хотите настроить web-server позже, то выбирайте «none». Нажимаем «Forward». Продолжится установка. Следующее окно, которое может появиться:


Здесь предлагается создать и настроить базу данных для Cacti с помощью dbconfig-common. Если у вас база для программы уже есть или вы хотите ее создать потом, то снимите галочку. Я же буду использовать эту утилиту. Нажимаем «Forward»:


Здесь требуется ввести пароль администратора MySQL (мы его прописывали выше). Вводим и нажимаем «Forward»:


Программа установки автоматически создает как новую базу, так и нового пользователя в базе данных MySQL для программы Cacti (имя его «cacti») и здесь нам предлагают задать пароль для него. В следующем окне подтверждаем этот пароль и нажимаем «Forward». Процесс установки и настройки продолжится и закончится. Появится окно об успешной установке:


Закрываем это окно («Close»).
Теперь можно перейти на страницу Cacti (http://localhost/cacti). Должно открыться следующее окно:


Нажимаем «Next»:


Здесь проверяем, совпадают ли настройки, которые мы вводили ранее, выбираем новую установку и нажимаем «Next» (не смущайтесь, если в поле «Database Hostname» ничего не указано, в данном случае используется localhost по умолчанию):


Здесь проверяются пути к файлам программы. Если у вас все зеленого цвета :), то нажимайте «Finish». Откроется следующее окно:


Вводите «User Name» - admin и «Password» - admin. Нажимаем «Login». На следующей странице вам предложат ввести новый пароль, вводите его и нажимайте «Save». В итоге, у вас откроется главное окно программы:


Настроим общие параметры программы. Для этого перейдем на закладку «Console» -- «Settings» -- «General» и поставим snmp version 2 и поменяем snmp Community с «public» на, допустим, «cacti»:


На этой же странице вы можете задать и другие параметры (логирование событий, RRDTool version, настройки snmp v3, если вы ее используете и так далее). Не забудьте нажать на кнопку «Save» внизу справа страницы. Далее перейдем на вкладку «Settings» -- «Poller»:


Здесь нам надо включить poller Spine, установленный вместе с пакетом cacti. Интервал опроса устройств оставим по умолчанию (5 минут). Ниже вы можете настроить параметры анализа доступности устройств, количество процессов и так далее. Нам этого делать не обязательно. После изменения настроек нажимаем «Save» внизу страницы.
На странице «Settings» во вкладке «Paths» настраиваются и проверяются пути к файлам различных утилит, библиотек и так далее (на случай, если вы устанавливали их в каких-то других местах, отличных от default). Во вкладке «Graph Export» настраиваются параметры экспорта ваших графиков (graphs). Во вкладке «Visual» настраиваются параметры отображения графиков, количество графиков на одной странице, размеры окон графиков и другие визуальные прелести. Во вкладке «Authentication» настраиваются глобальные параметры аутентификации на сервере Cacti. По умолчанию используется локальная база, но можно настроить и LDAP, если у вас есть домен. Ну и кое-какие другие параметры. Для нашего примера хватит и тех настроек, которые мы сделали.
Создать нового пользователя, определить ему доступ к различным закладкам, настроить параметры того, что он может видеть и так далее можно в закладке «Console» -- «User Management». Думаю, если понадобится, вы разберетесь сами.
Другие пункты меню в «Console» используются для настройки и просмотра стандартных устройств, шаблонов («Templates»), относящимся к этим устройствам, источникам сбора информации для отображения, загрузки новых шаблонов, экспорта уже существующих и так далее. Мы их трогать не будем, а то получится очень длинный рассказ :). Меню достаточно интуитивно, и при желании, можно легко разобраться. Но, если что, пишите, будем разбираться вместе.
Мы же пока вернемся к нашей сети и организуем сетевую доступность. Переходим на роутер Router_1:

R2>en
R2#conf t
R2(config)#hostname Router_1
Router_1(config)#int fa 0/0
Router_1(config-if)#ip address 1.1.1.1 255.255.255.252
Router_1(config-if)#no shutdown
Router_1(config-if)#exit
Router_1(config)#exit
Router_1#vlan database
Router_1(vlan)#vlan 2 name Vlan_2 – создаем сеть для Working_PC_2;
Router_1(vlan)#vlan 3 name Vlan_3 – создаем сеть для Working_PC_1;
Router_1(vlan)#exit
Router_1#conf t
Router_1(config)#int vlan 2
Router_1(config-if)#ip address 10.10.10.1 255.255.255.0
Router_1(config-if)#no sh
Router_1(config-if)#exit
Router_1(config)#int vlan 3
Router_1(config-if)#ip address 192.168.1.1 255.255.255.0
Router_1(config-if)#no sh
Router_1(config-if)#exit
Router_1(config)#int range fa 1/0 – 9 – определяем интерфейсы в нужныq vlan;
Router_1(config-if-range)#switchport mode access
Router_1(config-if-range)#switchport access vlan 2
Router_1(config-if-range)#exit
Router_1(config)#int range fa 1/10 - 15
Router_1(config-if-range)#switchport mode access
Router_1(config-if-range)#switchport access vlan 3
Router_1(config-if-range)#exit
Router_1(config)#snmp-server community cacti ro – устанавливаем community для доступа по snmp;
Router_1(config)#ip route 3.3.3.0 255.255.255.0 1.1.1.2 – прописываем путь к сети, где установлен сервер Cacti;
Router_1(config)#exit
Router_1#wr
Router_1#


Теперь перейдем на Router_2:

R1>en
R1#conf t
R1(config)#hostname Router_2
Router_2(config)#int fa 0/0
Router_2(config-if)#ip address 1.1.1.2 255.255.255.252
Router_2(config-if)#no shutdown
Router_2(config-if)#speed 100
Router_2(config-if)#duplex full
Router_2(config-if)#exit
Router_2(config)#int fa 0/1
Router_2(config-if)#speed 100
Router_2(config-if)#duplex full
Router_2(config-if)#ip address 3.3.3.1 255.255.255.0
Router_2(config-if)#no shutdown
Router_2(config-if)#exit
Router_2(config)#snmp-server community cacti ro
Router_2(config)#ip route 10.10.10.0 255.255.255.0 1.1.1.1
Router_2(config)#ip route 192.168.1.0 255.255.255.0 1.1.1.1
Router_2(config)#exit
Router_2#wr
Router_2#


Проверим, есть ли сетевая доступность. Например, с Working_PC_1:


    где:
  • 1 – Working_PC_2;
  • 2 – сервер Cacti.
Как видно, сеть работает. Теперь вернемся на сервер Cacti и добавим наши роутеры. Переходим на вкладку «Console» -- «New Graphs»:


Нажимаем «Create New Host». Откроется следующее окно:


Здесь указываем примечание для устройства или имя (1), указываем IP – адрес (2) (подключим Router_1), из выпадающего списка (3) выбираем шаблон («Template») «Cisco Router», который будет присвоен данному устройству (если в списке нет вашего типа устройств, то шаблон можно скачать из интернета и установить через «Console» -- «Import Template»). Далее выбираем режим анализа доступности устройства (4) (можно использовать ping, snmp или вместе, или вообще не опрашивать доступность устройства). Ниже видны наши настройки snmp, которые мы делали ранее. Нажимаем «Create». Откроется следующее окно, где вверху вы увидите сообщение об успешном создании и информацию об устройстве, считанную по snmp. Создадим графики для нашего устройства. Нажимаем на «Create Graphs for this Host» (ссылка справа):


Выбираем из списка графики для интересующей нас статистики (загрузка CPU, трафик на интерфейсах). Нажимаем «Create». На следующем окне вы увидите параметры самих графиков (цвета линий для отображения), которые, по желанию, можно изменить. Нажимайте еще раз «Create». На следующем окне будет видно сообщение (вверху) об успешном создании графиков. Теперь надо добавить наше устройство в «дерево графов» (чтобы оно появилось в списке на закладке «graphs»). Переходим в пункт меню «Console» -- «Dedices»:


Здесь, из списка устройств выбираем Router_1 (если вы вдруг заметите в строчке «Status» состояние «unknown» напротив вашего устройства, то подождите немного, пока программа распознает его), из выпадающего меню выбираем «Place on tree (Default Tree)». Следует отметить, что вы можете создать свое «дерево», сделать иерархию согласно вашим желаниям и топологии вашей сети (например, роутеры в одной ветке, свитчи в другой и так далее). Делается все это в «Console» -- «Graph Trees». Нажимаем «Go». В появившемся окошке нам говорят, какой действие будет выполнено. Нажимаем «Continue». После этого вы автоматически вернетесь в окно «Devices», но вверху должны увидеть надпись «Save Successful».
Ну что же, первое устройство добавлено. Теперь можно перейти на вкладку «graphs», выбрать из списка нужное устройство и посмотреть на графики (помните, что опрос идет у нас с интервалом в 5 минут, так что если ничего не видно на графиках, немного подождите). Вот, что мы имеем на данный момент:


Видно, что загрузка CPU на роутере 1%, и трафик на интерфейсе Fa0/0 тоже бегает. Ниже присутствуют и другие графики, которые мы выбирали ранее.
Теперь надо добавить второй роутер. Думаю, у вас получится это самостоятельно :). Я же, в свою очередь, организую трафик между Working_PC_1 Working_PC_2, чтобы показать более информативные графики.
Я перекачал файл с одного хоста на другой (из сети 192.168.1.0/24 vlan 3 в 10.10.10.0/24 vlan 2 (использовал программку HFS (Http file Server), советую, мало весит, очень проста в управлении и не требует установки). Скорость была, конечно, маленькая (так как это все шло через GNS), но все же есть что посмотреть на графиках. Так что, вот что получилось в итоге:



А видно, что при начале загрузки CPU увеличился до 2%, трафик на интерфейсах увеличился и после остановки закачки (копирования), все вернулось в исходное положение. Так что, все работает :).
Ну что же, основу я заложил. Дальнейший тюнинг программы оставляю вам. Если что, пишите!!! А на этом, я заканчиваю этот пост. Надеюсь, он стал для вас полезным и информативным.

По всем возникающим вопросам обращайтесь ко мне через комментарии или лично. Координаты можно найти вот тут.


С нетерпением жду вас в следующих постах!!!

С уважением, Ant0ni0n

9 комментариев:

  1. Спасибо за труд. Пользуюсь пока MRTG и nagios, функционал схожий. Вот если бы эта программка могла еще и netflow графики строить...

    ОтветитьУдалить
    Ответы
    1. Ну для этих целей можно использовать и cisco Works (если есть :)Есть еще Orion Network Performance Monitor (NPM) и NetFlow Traffic Analyzer (NTA) от Solarwinds, очень хороший набор программ, но очень дорогой.
      А так, если поискать в интернете, можно найти и фриварные програмки.

      Удалить
  2. Анонимный31 июля 2012 г., 10:00

    Большое спасибо. Стати очень полезны и самое главное практичные. Хотелось увидеть похожую статью об nagios.

    ОтветитьУдалить
  3. Спасибо за статью, всё просто и понятно!
    Сам пользуюсь Opennms - на мой взгляд немного неудобна в настройке, но имеет больше возможностей!
    параллельно пользуюсь теперь и Cacti

    ОтветитьУдалить
  4. Спасибо интересная статья. Вопрос, как можно реализовать статический IP в ubuntu видный из внешней сети?

    ОтветитьУдалить
    Ответы
    1. Немного не понятен вопрос... Вы имеете ввиду комп с ubuntu, который находится во внутренней сети и у него есть "серый" IP и на этот IP-ик необходимо попадать из внешней сети? Если так, то необходимо настраивать редирект на пограничном оборудовании.
      Если же сам комп с ubuntu уже имеет подключение к внешней сети и у него есть "белый" IP, то он и так виден :)
      А так, если что то делать с сетевыми настройками на ubuntu, то крутить надо iptables.

      Удалить
  5. привет. а ктонибудь может подскажет как загрузить мибы на какти???

    ОтветитьУдалить
  6. Спасибо за полезную статью. Сам правда пользуюсь Nagios, но если бы раньше прочел эту статью то может сразу бы взялся за Cacti

    ОтветитьУдалить
  7. Спасибо за пост. Кому интерестно, нашел подробную инструкцию по установке cacti 0.8.8f под Ubuntu с поддержкой 64-битных счетчиков для 95th Percentile и Total bandwidth графиков - http://sysadm.pp.ua/linux/monitoring-systems/cacti-install-from-source.html . Можно добавить.

    ОтветитьУдалить