Как документировать вашу сеть с Netdot на CentOS 7

Вступление

Инструмент сетевой документации (Netdot) - это инструмент с открытым исходным кодом, который может помочь сетевым администраторам собирать, организовывать и поддерживать сетевую документацию.

  • Основные возможности: *

  • Обнаружение и опрос устройств с использованием SNMP

  • Изучите и создайте топологию L2, используя различные источники: CDP, LLDP, STP и таблицы переадресации коммутаторов.

  • Управление активами

  • Управление IP-адресами для v4 и v6

  • Управление DHCP

  • Управление DNS

  • Кабельное управление: шкафы, комнаты, розетки, соединения внутри и между зданиями и т. Д.

  • Управление контактами: администраторы, операторы, отделы, поставщики, поставщики и т. Д.

  • Экспорт настроек для внешних инструментов: Nagios, RANCID, Cacti, BIND и т. Д.

См. Сайт Netdot.

В этом руководстве мы покажем вам, как добавлять устройства в Netdot и как использовать его для сопоставления вашего пространства IP-адресов и управления им.

Предпосылки

Прежде чем начать, убедитесь, что вы выполнили эти шаги.

  • Разверните каплю CentOS 7

  • Добавьте пользователя sudo, следуя Initial Server Setup

  • Добавьте swap space на свой сервер; пример 4 ГБ сумма в порядке

  • Установите LAMP, поскольку Netdot требуется веб-серверы и серверы баз данных.

  • Запишите свой * root * пароль MySQL; это понадобится вам в этом уроке

  • Включите репозиторий EPEL (Дополнительные пакеты для Enterprise Linux):

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

Дополнительная информация о репо EPEL доступна по адресу here.

  • Установите эти обязательные инструменты, которые позволят вам скомпилировать другие пакеты:

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.

Шаг 1 - клонировать репозиторий Netdot

Получите последний источник Netdot от GitHub:

cd /usr/local/src/
sudo git clone https://github.com/cvicente/Netdot.git netdot

Шаг 2 - Установите зависимости

Теперь вам нужно установить зависимости. Мы сделаем это с помощью скрипта, включенного в 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]?

Затем скрипт установит необходимые модули. В конце вы увидите это резюме, которое показывает, что некоторые установлены, а некоторые нет:

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]?

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]

<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]

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]

Скрипт может попросить вас создать поддельный пароль для тестирования. Вы можете пропустить эту часть.

Это займет 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 также отслеживал, но для этого урока мы просто будем следить за самой этой каплей.

Во-первых, вы должны установить Netdisco MIBs. Установите поддерживающие пакеты SNMP:

sudo yum install net-snmp net-snmp-utils

Загрузите файлы 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 читайте в серии руководств: Monitoring и управление сетью с помощью SNMP. Вы захотите обратиться к этой серии руководств, когда добавите больше устройств в Netdot.

Шаг 4 - Настройте параметры базы данных для Netdot

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

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

Затем вы можете изменить файл, чтобы отразить ваши конкретные параметры.

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

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

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

Большинство настроек по умолчанию в порядке.

  • + DB_DBA +: пользователь MySQL, который имеет право создавать базы данных; должен быть * root * в большинстве случаев

  • + DB_DBA_PASSWORD +: пароль MySQL для * root *

  • + DB_DATABASE +: имя базы данных, которую вы хотите создать для Netdot

  • + DB_NETDOT_USER +: пользователь базы данных Netdot, которого вы хотите создать

  • + DB_NETDOT_PASS +: установить уникальный пароль для пользователя базы данных 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 - Завершите установку

Единственное, что осталось настроить после успешной установки Netdot - это сервер Apache.

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

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

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

sudo systemctl restart httpd.service

Шаг 7 - Настройка Cron Jobs

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

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

Установка завершена.

Шаг 8 - Доступ к Netdot

Запустите браузер и перейдите по адресу + http: /// netdot +.

Войдите в систему с именем пользователя и паролем по умолчанию, которые являются * admin *.

Убедитесь, что вы изменили пароль прямо сейчас!

Используйте Netdot для документирования вашей сети

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

После входа в систему вы увидите следующее:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/1.png [интерфейс Netdot]

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

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

Сначала нам нужно добавить ваши сетевые устройства. Их можно добавить несколькими способами:

  • По одному, используя скрипт

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

  • Сканируя устройства, указанные в файле

  • Вручную с помощью панели управления Netdot

Опрос одного устройства с использованием скрипта

Это метод, который мы будем использовать, чтобы добавить собственную информацию этой капли в Netdot.

Эта команда запустит скрипт для получения данных с одного хоста:

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

Например, вы можете добавить сервер, на котором установлен 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  -I -c

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

Возможно, вам будет полезно перечислить все ваши устройства в простом текстовом файле. Файл должен содержать список устройств (имен хостов или IP-адресов) и их SNMP-сообществ, по одному на строку:

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

. . .

Затем вы можете использовать скрипт Netdot для сканирования всех устройств, перечисленных в файле:

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

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

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

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

В панели управления Netdot перейдите к * Management * в верхней панели навигации. Выберите * Управление> Устройства *. Нажмите на ссылку * [new] *.

Введите имя хоста или IP-адрес устройства. Выберите версию и сообщество SNMP из выпадающего меню. Затем нажмите * Обнаружить *. Затем Netdot будет опрашивать устройство, используя SNMP.

Документация по устройству

Создав устройство, вы можете добавить больше информации о нем. Вы можете искать устройство по его имени, IP или MAC-адресу. Каждая информационная страница содержит несколько разделов:

  • Основа: *

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/2.png [вкладка Основы]

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

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

Вы можете получить помощь по любому из параметров, просто нажав на его название. Например, нажав на заголовок «Первый обнаружен», вы увидите следующее всплывающее окно:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/3.png [Первая обнаруженная помощь]

  • Интерфейсы: *

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/4.png [вкладка Интерфейсы]

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

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

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/5.png [Подробности интерфейса]

  • IP информация: *

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/6.png [вкладка IP Info]

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

Топология:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/7.png [вкладка Топология]

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

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

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

Базовые объекты в адресном пространстве Netdot - это IP-блоки. Они могут представлять отдельные адреса конечных узлов, а также группы адресов. Отличительной характеристикой является префикс: адрес конечного узла является IP-блоком с префиксом / 32, а подсеть из 126 адресов конечного узла является 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

Перейдите к * Управление> Адресное пространство *.

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/8.png [адресное пространство]

Нажмите на ссылку * [new] *.

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/9.png [Добавить контейнер]

Введите * 104.236.38.0 / 24 * в поле * IP [/ prefix] *. При желании вы можете указать * Владелец * и * Используется *. (Вы можете добавить элемент в раскрывающийся список, нажав на ссылку * [new] *, заполнив форму и обновив страницу.) В раскрывающемся меню * Status * выберите * Container *. Введите * Описание * этого контейнера.

Нажмите * Сохранить *.

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

  • * Контейнер *: включает в себя другие контейнеры или блоки IP

  • * Подсеть *: представляет действительные подсети

  • * Зарезервировано *: блоки, которые не должны быть распределены по какой-либо причине

  • * Статический *: Статически назначенный

Затем создайте новую подсеть для * 104.236.38.0 / 25 *, выбрав * Подсеть * для * Статус *:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/10.png [Добавить подсеть]

В результате вы увидите следующее:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/11.png [Создание подсети]

Чтобы создать следующий контейнер, вы можете щелкнуть зеленую область рядом с красной в нижней части раздела * Использование для 104.236.38.0/24*.

Затем Netdot запросит подтверждение: * IP-адрес или блок 104.236.38.128/25 еще не существует. Вы уверены, что хотите создать его? * После подтверждения вы создадите новый контейнер.

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

Теперь взгляните на всю иерархию, которую вы настроили. Для этого перейдите в основной контейнер (* 104.236.38.0 / 24 *) и щелкните ссылку * [Tree View] * в крайнем правом углу. Вы увидите следующее:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/12.png [древовидное представление]

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

Например, это может выглядеть следующим образом:

изображение: https: //assets.digitalocean.com/articles/Netdot_CentOS7/13.png [представление блока подсети]

На этом рисунке показано, что первый и последний адреса сети автоматически резервируются. Адреса с 1 по 63 используются для DHCP. Адреса, которые были статически назначены хостам или интерфейсам устройств, отмечены красным. Адреса, которые не были назначены как статические или динамические, но были замечены в сети, отмечены синим цветом. Доступные адреса отмечены зеленым.

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

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

Заключение

Netdot - это мощный инструмент для документирования вашей сети. После завершения этого урока вы получите общее представление о том, как его установить, как выполнить базовую настройку, как добавить новые устройства и как управлять адресным пространством.

Related