Документирование сети с помощью Netdot в Centos 7

Netdot (Network Documentation Tool) –это открытый инструмент для сбора, ведения и управления документацией сети.

Базовые функции приложения Netdot:

  • Обнаружение и опрос устройств с помощью SNMP.
  • Обнаружение и сборка топологии L2 с использованием различных источников (CDP, LLDP, STP).
  • Управление активами.
  • Управление IP-адресами v4 и v6.
  • Управление DHCP.
  • Управление DNS.
  • Кабельный менеджмент (пространства, сокеты, соединения внутри и между зданиями и т.д).
  • Управление контактами.
  • Настройка экспорта для внешних инструментов: Nagios, RANCID, Cacti, BIND и т.д.

Больше информации вы найдёте на сайте проекта.

Данное руководство поможет добавить устройства в приложение Netdot и научит вас управлять пространством IP-адресов.

Требования

  • Сервер CentOS 7 (инструкции по настройке можно найти здесь).
  • Пользователь с доступом sudo (всю работу нужно выполнить в сессии этого пользователя).
  • Своп-пространство (4 Гб будет достаточно); чтобы научиться создавать своп, читайте это руководство.
  • Стек LAMP (инструменту Netdot нужна БД); инструкции по установке – по этой ссылке. Запишите root-пароль MySQL.
  • Репозиторий EPEL. Чтобы добавить его, введите:

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
sudo rpm -ivh epel-release-7-2.noarch.rpm

Чтобы установить дополнительные инструменты, введите следующую команду:

sudo yum install make gcc gcc-c++ autoconf automake rpm-build openssl-devel git perl perl-CPAN perl-Inline

Установите dnssec-tools вручную.

wget --no-check-certificate https://www.dnssec-tools.org/download/dnssec-tools-2.1-1.fc22.src.rpm -O /tmp/dnssec-tools.src.rpm
rpmbuild --rebuild /tmp/dnssec-tools.src.rpm
cd ~/rpmbuild/RPMS/x86_64/
sudo rpm -ivh --nodeps dnssec-tools-*

Установка Netdot

Для начала нужно установить инструмент Netdot.

1: Клонируйте репозиторий Netdot с GitHub

cd /usr/local/src/

sudo git clone https://github.com/cvicente/Netdot.git netdot

2: Установите зависимости

Теперь нужно установить зависимости проекта Netdot. Для этого можно использовать включенный в Netdot сценарий, который установит зависимости с помощью пакетного менеджера yum.

Перейдите в каталог, в который вы извлекли пакет Netdot:

cd /usr/local/src/netdot/

Запустите сценарий:

sudo make rpm-install

Программа предложит вам выбрать базу данных.

Installing required RPM packages
/usr/bin/perl bin/perldeps.pl rpm-install
Which RDBMS do you plan to use as backend: [mysql|Pg]? mysql

После этого сценарий установит необходимые модули. На экране появится список установленных и недостающих модулей:

Complete!
===============RESULTS===============
RRDs..............................................ok
GraphViz..........................................ok
Module::Build.....................................ok
CGI...............................................MISSING
Class::DBI........................................MISSING
Class::DBI::AbstractSearch........................MISSING
Apache2::Request..................................ok
HTML::Mason.......................................MISSING
Apache::Session...................................MISSING
URI::Escape.......................................ok
SQL::Translator...................................MISSING
SNMP::Info 2.06...................................ok
NetAddr::IP 4.042.................................ok
Apache2::AuthCookie...............................MISSING
Apache2::SiteControl..............................MISSING
Log::Dispatch.....................................ok
Log::Log4perl.....................................ok
Parallel::ForkManager.............................ok
Net::Patricia 1.20................................MISSING
Authen::Radius....................................MISSING
Test::Simple......................................MISSING
Net::IRR..........................................MISSING
Time::Local.......................................ok
File::Spec........................................ok
Net::Appliance::Session...........................MISSING
BIND::Config::Parser..............................MISSING
Net::DNS..........................................ok
Text::ParseWords..................................ok
Carp::Assert......................................ok
Digest::SHA.......................................ok
Net::DNS::ZoneFile::Fast..........................ok
Socket6...........................................ok
XML::Simple.......................................ok
DBD::mysql........................................ok
If there are still any missing Perl modules, you can try:
make installdeps

Чтобы установить требуемые модули Perl, введите команду:

sudo make installdeps

После этого программа задаст вам ряд вопросов. Ниже ответы выделены красным:

Installing required Perl modules
/usr/bin/perl bin/perldeps.pl install
Which RDBMS do you plan to use as backend: [mysql|Pg]? mysql
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] ENTER
<install_help>
Warning: You do not have write permission for Perl library directories.
To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.
What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
[local::lib] ENTER
Autoconfigured everything but 'urllist'.
Now you need to choose your CPAN mirror sites.  You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.
Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes] ENTER

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

Установка зависимостей займёт 10-15 минут. Сценарий установит все необходимое, после чего выведет на экран такой результат:

===============RESULTS===============
RRDs..............................................ok
GraphViz..........................................ok
Module::Build.....................................ok
CGI...............................................ok
Class::DBI........................................ok
Class::DBI::AbstractSearch........................ok
Apache2::Request..................................ok
HTML::Mason.......................................ok
Apache::Session...................................ok
URI::Escape.......................................ok
SQL::Translator...................................ok
SNMP::Info 2.06...................................ok
NetAddr::IP 4.042.................................ok
Apache2::AuthCookie...............................ok
Apache2::SiteControl..............................ok
Log::Dispatch.....................................ok
Log::Log4perl.....................................ok
Parallel::ForkManager.............................ok
Net::Patricia 1.20................................ok
Authen::Radius....................................ok
Test::Simple......................................ok
Net::IRR..........................................ok
Time::Local.......................................ok
File::Spec........................................ok
Net::Appliance::Session...........................ok
BIND::Config::Parser..............................ok
Net::DNS..........................................ok
Text::ParseWords..................................ok
Carp::Assert......................................ok
Digest::SHA.......................................ok
Net::DNS::ZoneFile::Fast..........................ok
Socket6...........................................ok
XML::Simple.......................................ok
DBD::mysql........................................ok

Все зависимости и модули Perl установлены.

3: Настройте сервис SNMP

Сервис SNMP нужен приложению Netdot для мониторинга. SNMP нужно настроить на сервере и на всех сетевых устройствах, которые будет отслеживать Netdot.

Примечание: В руководстве показано, как настроить SNMP на удалённом сервере.

Установите сопровождающие пакеты SNMP:

sudo yum install net-snmp net-snmp-utils

Установите файлы MIB Netdisco и распакуйте их:

wget http://downloads.sourceforge.net/project/netdisco/netdisco-mibs/latest-snapshot/netdisco-mibs-snapshot.tar.gz -P /tmp
sudo tar -zxf /tmp/netdisco-mibs-snapshot.tar.gz -C /usr/local/src

Создайте каталог для Netdisco и переместите в него полученные файлы:

sudo mkdir /usr/local/netdisco
sudo mv /usr/local/src/netdisco-mibs /usr/local/netdisco/mibs
sudo cp /usr/local/netdisco/mibs/snmp.conf /etc/snmp/

Отредактируйте конфигурационный файл:

sudo vi /etc/snmp/snmp.conf

Закомментируйте строки с ненужными вендорами, чтобы сэкономить память и время. Для этого добавьте в начало каждой такой строки символ #. Строки netdisco оставьте раскомментированными.

. . .
mibdirs /usr/local/netdisco/mibs/rfc
mibdirs +/usr/local/netdisco/mibs/net-snmp
mibdirs +/usr/local/netdisco/mibs/cisco
# mibdirs +/usr/local/netdisco/mibs/3com
# mibdirs +/usr/local/netdisco/mibs/aerohive
# mibdirs +/usr/local/netdisco/mibs/alcatel
# mibdirs +/usr/local/netdisco/mibs/allied
# mibdirs +/usr/local/netdisco/mibs/apc
# mibdirs +/usr/local/netdisco/mibs/arista
. . .
# mibdirs +/usr/local/netdisco/mibs/sonicwall
# mibdirs +/usr/local/netdisco/mibs/trapeze
# mibdirs +/usr/local/netdisco/mibs/xirrus
. . .

Запустите сервис SNMP:

sudo systemctl start snmpd.service

Читайте также: Основы работы с SNMP

4: Настройте базу данных для Netdot

Netdot предоставляет конфигурационный файл по умолчанию. Чтобы добавить пользовательские настройки, создайте копию файла Default.conf и назовите её Site.conf:

sudo cp /usr/local/src/netdot/etc/Default.conf /usr/local/src/netdot/etc/Site.conf

Все пользовательские настройки можно добавить в Site.conf.

sudo vi /usr/local/src/netdot/etc/Site.conf

Найдите в файле следующие параметры и откорректируйте их таким образом:

DB_TYPE => 'mysql'
DB_DBA => 'root',
DB_DBA_PASSWORD => 'rootpass',
DB_HOST => 'localhost',
DB_DATABASE => 'netdot',
DB_NETDOT_USER => 'netdot_user',
DB_NETDOT_PASS => 'netdot_pass',

  • Рассмотрим эти строки подробнее: DB_DBA: пользователь MySQL, у которого есть право создавать базы данных. обычно это root.
  • DB_DBA_PASSWORD: root-пароль MySQL.
  • DB_DATABASE: имя БД для Netdot.
  • DB_NETDOT_USER: пользователь БД для Netdot.
  • DB_NETDOT_PASS: уникальный пароль пользователя БД для Netdot.

Базу данных и пользователя Netdot не нужно создавать вручную. Программа прочитает файл и создаст всё необходимое самостоятельно.

Примечание: В дальнейшем после изменения параметров Netdot нужно перезапускать Apache.

sudo systemctl restart httpd.service

5: Установка Netdot

Инициализируйте базу данных:

sudo make installdb

Установите Netdot:

sudo make install PREFIX=/usr/local/netdot APACHEUSER=apache APACHEGROUP=apache

6: Завершение установки

Теперь осталось только настроить Apache.

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

sudo cp /usr/local/netdot/etc/netdot_apache24_local.conf /etc/httpd/conf.d/

Перезапустите веб-сервер Apache:

sudo systemctl restart httpd.service

7: Настройте cron

Netdot предоставляет несколько сценариев, которые нужно запускать периодически. Скопируйте файл crontab в каталог cron.d.

sudo cp /usr/local/src/netdot/netdot.cron /etc/cron.d/netdot

8: Попробуйте получить доступ к Netdot

Запустите браузер и откройте ссылку:

http://your_server_ip/netdot

Введите имя пользователя и пароль по умолчанию (admin, admin).

Сразу же замените пароль admin уникальным и сложным паролем.

Документирование сети с помощью Netdot

Открыв Netdot, вы увидите страницу Device Tasks.

Интерфейс Netdot довольно прост. Давайте рассмотрим базовые задачи, которые можно выполнять с помощью Netdot.

Сбор данных с устройств

Для начала нужно добавить сетевые устройства. Их можно добавлять:

  • По одному при помощи сценария.
  • Путём сканирования устройств в заданной подсети.
  • Путём сканирования устройств, перечисленных в файле.
  • Вручную с помощью панели управления Netdot.

Добавление устройств с помощью сценария

Попробуйте добавить информацию о своём сервере в Netdot при помощи сценария.

Эта команда запустит сценарий и извлечёт данные одного хоста.

/usr/local/netdot/bin/updatedevices.pl -H your_server_ip -I -c snmp community

Чтобы добавить сервер, на котором установлено приложение Netdot, введите:

/usr/local/netdot/bin/updatedevices.pl -H localhost -I -c public

Команда выведет такой результат:

INFO - /usr/local/netdot/bin/updatedevices.pl started at Wed Nov  5 09:49:39 2014
INFO - Updating single device: localhost
INFO - Inserted new RR: localhost.defaultdomain
INFO - Inserting new Device: localhost
INFO - localhost.defaultdomain: SNMP target address set to 127.0.0.1
INFO - localhost.defaultdomain: Interface 1 (lo) updated
INFO - localhost.defaultdomain: Interface 2 (eno16777728) updated
INFO - localhost.defaultdomain [eno16777728]: Inserted new IP fe80::20c:29ff:fe20:4f53
INFO - localhost.defaultdomain [eno16777728]: Inserted new IP 192.168.176.128
INFO - Device::snmp_update: localhost.defaultdomain: Finished updating
INFO - /usr/local/netdot/bin/updatedevices.pl total runtime: 18 sec

Сканирование устройств в заданной подсети

При помощи того же сценария можно просканировать все устройства в заданной подсети:

/usr/local/netdot/bin/updatedevices.pl -B 111.111.111.0/24 -I -c snmp community

Сканирование устройств, перечисленных в файле

Все устройства можно перечислить в простом текстовом файле, указав их имена хостов или IP-адреса и данные SNMP.

host1.sample community1
host2.sample community2
host3.sample community2
host4.sample community3
. . .

С помощью сценария Netdot можно просканировать все перечисленные устройства:

/usr/local/netdot/bin/updatedevices.pl -E /path/to/file

Чтобы получить полный список параметров сценария, введите:

/usr/local/netdot/bin/updatedevices.pl -h

Добавление устройства в панели управления Netdot

Откройте панель управления и выберите в меню навигации Management → Devices. Нажмите [new].

Введите имя хоста или IP-адрес устройства. Выберите версию SNMP в выпадающем меню. Нажмите Discover. Netdot добавит устройство по SNMP.

Документирование устройств с помощью Netdot

Создав устройство, вы можете добавить больше информации о нём. Устройство можно найти по имени, IP или MAC-адресу.

Каждая страница данных имеет несколько разделов.

В разделе Basics можно просматривать и редактировать общую информацию об устройстве: владельца, местонахождение, операционную систему, административную информацию и т.п. Также здесь можно добавлять комментарии и пользовательские атрибуты.

Некоторая информация указывается автоматически, а некоторые данные нужно ввести вручную.

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

В разделе Interfaces можно просматривать и редактировать данные об интерфейсах устройства (имя, скорость, состояние, соседи – подключенные устройства).

Здесь вы также можете открыть всплывающее окно справки, просто щелкнув по параметру.

Раздел IP info предоставляет информацию об обнаруженных на устройстве IP-адресах, о подсетях, которым они принадлежат, и интерфейсах, где они были найдены. Здесь можно также подключить сервисы (HTTP, DNS, MySQL и т.д.) к соответствующим адресам.

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

Управление IP-адресами

Управление пространством адресов – одна из наиболее полезных функций Netdot. Вы можете планировать, отслеживать и управлять IP-адресами сети.

Базовые объекты пространства адресов Netdot – это IP-блоки. Они могут представлять как индивидуальные адреса, так и целые группы адресов. Отличительной особенностью является префикс: IP-блоки с префиксом /32 представляют индивидуальный адрес, а IP-блоки с префиксом /25 представляет подсеть.

К примеру, попробуйте создать следующую простую структуру:

104.236.38.0/24
104.236.38.0/25
104.236.38.128/25
104.236.38.128/26
104.236.38.192/26

Откройте Management → Address space. Кликните [new]. Введите 104.236.38.0/24 в поле IP[/prefix]. Поля Owner и Used By заполняются по желанию. Чтобы добавить элемент в выпадающий список, кликните [new], заполните форму и обновите страницу. В выпадающем меню Status выберите Container, заполните Description. Нажмите Save.

Netdot поддерживает следующие состояния:

  • Container: включает другие контейнеры или IP-блоки.
  • Subnet: представляет текущие подсети.
  • Reserved: блоки, которые по каким-либо причинам не должны быть распределены.
  • Static: присвоенные блоки.

Создайте новую подсеть для 104.236.38.0/25. В Status выберите Subnet.

Чтобы создать следующий контейнер, кликните по зелёному полю (рядом с красным) в разделе Usage for 104.236.38.0/24.

Netdot запросит подтверждения:

The IP address or block 104.236.38.128/25 does not yet exist. Are you sure that you want to create it?

После этого контейнер будет создан.

В контейнер можно добавить другую подсеть для 104.236.38.128/26 и контейнер для 104.236.38.192/26 и т.д.

Чтобы просмотреть созданную иерархию, откройте первичный контейнер (104.236.38.0/24) и кликните [Tree View].

Попробуйте кликнуть на ячейки диаграммы, чтобы получить дополнительную информацию о подсети.

Чтобы добавить, зарезервировать или изменить адрес, просто кликните по нему. Вы можете увидеть общую статистику по используемым и доступным адресам подсети в поле Utilization.

Used: 76 of 126   Available: 50  (39%)

Tags: , , , , ,

2 комментария

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