如何在 CentOS 7 上使用 Netdot 记录网络信息

介绍

网络文档工具(Netdot)是一个开源工具,可以帮助网络管理员收集、组织和维护网络文档。

基本能力:**

  • 使用 SNMP 发现和调查设备 * 使用不同的来源发现和构建 L2 拓扑:CDP、LLDP、STP 和交换转发表 * 资产管理 * v4 和 v6 的 IP 地址管理 * DHCP 管理 * DNS 管理 * 电缆管理:柜台,房间,插槽,建筑物内部和建筑物之间连接等 * 联系管理:管理员,运营商,部门,供应商,供应商等 * 外部工具的出口设置:Nagios,RANCID,Cacti,BIND等

请参见 Netdot项目的网站

在本教程中,我们将向您展示如何将设备添加到Netdot,以及如何使用它来绘制和管理您的IP地址空间。

前提条件

在您开始之前,请确保您已经完成了这些步骤。

  • 部署 CentOS 7 Droplet * 通过遵循 初始服务器设置添加一个 sudo 用户 * 将 swap space添加到您的服务器中;示例 4 GB 的量很好 * 安装 LAMP软件,因为Netdot需要 Web 和数据库服务器 * 记住您的 root MySQL 密码;您将在本教程中需要它 * 启用 EPEL (Extra Packages for Enterprise Linux) 存储库:
1wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
2sudo rpm -ivh epel-release-7-2.noarch.rpm

有关 EPEL repo 的更多信息可在这里(https://fedoraproject.org/wiki/EPEL)。

  • 安装这些先决条件的工具,允许您编译其他包:
1sudo yum install make gcc gcc-c++ autoconf automake rpm-build openssl-devel git perl perl-CPAN perl-Inline
  • 手动安装 dnssec-tools (如果您担心跳过证书检查,您可能想要使用不同的方法):
1wget --no-check-certificate https://www.dnssec-tools.org/download/dnssec-tools-2.1-1.fc22.src.rpm -O /tmp/dnssec-tools.src.rpm
2rpmbuild --rebuild /tmp/dnssec-tools.src.rpm
3cd ~/rpmbuild/RPMS/x86_64/
4sudo rpm -ivh --nodeps dnssec-tools-*

安装

在本教程的第一部分,我们将安装和访问Netdot。

步骤 1 — 克隆 Netdot 存储库

從 GitHub 獲得 Netdot 的最新來源:

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

步骤 2 — 安装依赖

现在您需要安装依赖程序,我们将使用 Netdot 附带的脚本来完成此操作,该脚本使用包管理器 yum 来安装一些依赖程序。

首先导航到您从 Netdot 存储库提取的文件目录:

1cd /usr/local/src/netdot/

运行安装脚本:

1sudo make rpm-install

提示会问您要使用哪个数据库,答案标记为红色:

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

然后,脚本将安装必要的模块. 最后,你会看到这个总结,这表明一些安装和一些没有:

 1Complete!
 2
 3===============RESULTS===============
 4RRDs..............................................ok
 5GraphViz..........................................ok
 6Module::Build.....................................ok
 7CGI...............................................MISSING
 8Class::DBI........................................MISSING
 9Class::DBI::AbstractSearch........................MISSING
10Apache2::Request..................................ok
11HTML::Mason.......................................MISSING
12Apache::Session...................................MISSING
13URI::Escape.......................................ok
14SQL::Translator...................................MISSING
15SNMP::Info 2.06...................................ok
16NetAddr::IP 4.042.................................ok
17Apache2::AuthCookie...............................MISSING
18Apache2::SiteControl..............................MISSING
19Log::Dispatch.....................................ok
20Log::Log4perl.....................................ok
21Parallel::ForkManager.............................ok
22Net::Patricia 1.20................................MISSING
23Authen::Radius....................................MISSING
24Test::Simple......................................MISSING
25Net::IRR..........................................MISSING
26Time::Local.......................................ok
27File::Spec........................................ok
28Net::Appliance::Session...........................MISSING
29BIND::Config::Parser..............................MISSING
30Net::DNS..........................................ok
31Text::ParseWords..................................ok
32Carp::Assert......................................ok
33Digest::SHA.......................................ok
34Net::DNS::ZoneFile::Fast..........................ok
35Socket6...........................................ok
36XML::Simple.......................................ok
37DBD::mysql........................................ok
38
39If there are still any missing Perl modules, you can try:
40
41make installdeps

因此,您需要安装缺少的 Perl 模块:

1sudo make installdeps

答案标记为红色:安装所需的Perl模块 /usr/bin/perl bin/perldeps.pl安装

 1Which RDBMS do you plan to use as backend: [mysql|Pg]? mysql
 2
 3CPAN.pm requires configuration, but most of it can be done automatically.
 4If you answer 'no' below, you will enter an interactive dialog for each
 5configuration option instead.
 6
 7Would you like to configure as much as possible automatically? [yes] ENTER
 8
 9 <install_help>
10
11Warning: You do not have write permission for Perl library directories.
12
13To install modules, you need to configure a local Perl library directory or
14escalate your privileges. CPAN can help you by bootstrapping the local::lib
15module or by configuring itself to use 'sudo' (if available). You may also
16resolve this problem manually if you need to customize your setup.
17
18What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
19 [local::lib] ENTER
20
21Autoconfigured everything but 'urllist'.
22
23Now you need to choose your CPAN mirror sites. You can let me
24pick mirrors for you, you can select them from a list or you
25can enter them by hand.
26
27Would you like me to automatically choose some CPAN mirror
28sites for you? (This means connecting to the Internet) [yes] ENTER

脚本可能要求您为测试目的创建假密码,您可以跳过该部分。

这将需要 10-15 分钟才能完成. 脚本将安装缺少的模块. 最后,你应该看到每个模块成功安装:

 1===============RESULTS===============
 2RRDs..............................................ok
 3GraphViz..........................................ok
 4Module::Build.....................................ok
 5CGI...............................................ok
 6Class::DBI........................................ok
 7Class::DBI::AbstractSearch........................ok
 8Apache2::Request..................................ok
 9HTML::Mason.......................................ok
10Apache::Session...................................ok
11URI::Escape.......................................ok
12SQL::Translator...................................ok
13SNMP::Info 2.06...................................ok
14NetAddr::IP 4.042.................................ok
15Apache2::AuthCookie...............................ok
16Apache2::SiteControl..............................ok
17Log::Dispatch.....................................ok
18Log::Log4perl.....................................ok
19Parallel::ForkManager.............................ok
20Net::Patricia 1.20................................ok
21Authen::Radius....................................ok
22Test::Simple......................................ok
23Net::IRR..........................................ok
24Time::Local.......................................ok
25File::Spec........................................ok
26Net::Appliance::Session...........................ok
27BIND::Config::Parser..............................ok
28Net::DNS..........................................ok
29Text::ParseWords..................................ok
30Carp::Assert......................................ok
31Digest::SHA.......................................ok
32Net::DNS::ZoneFile::Fast..........................ok
33Socket6...........................................ok
34XML::Simple.......................................ok
35DBD::mysql........................................ok

已安装所有必要的 Perl 模块! 现在您可以继续到下一步。

步骤 3 – 配置 SNMP 服务

我们需要在这个服务器上配置SNMP,以便Netdot可以监控它,您需要在其他网络设备上配置SNMP,您希望Netdot也可以监控,但对于本教程,我们只会监控这个Dropplet本身。

首先,您必须安装 Netdisco MIBs

1sudo yum install net-snmp net-snmp-utils

下载 Netdisco 文件并提取它们:

1wget http://downloads.sourceforge.net/project/netdisco/netdisco-mibs/latest-snapshot/netdisco-mibs-snapshot.tar.gz -P /tmp
2sudo 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/ 编辑配置文件:

1sudo vi /etc/snmp/snmp.conf

评论与不必要的供应商的行以节省记忆和时间,通过在他们面前添加一个哈希标记(**# ** )。

 1. . .
 2
 3mibdirs /usr/local/netdisco/mibs/rfc
 4mibdirs +/usr/local/netdisco/mibs/net-snmp
 5mibdirs +/usr/local/netdisco/mibs/cisco
 6
 7# mibdirs +/usr/local/netdisco/mibs/3com
 8# mibdirs +/usr/local/netdisco/mibs/aerohive
 9# mibdirs +/usr/local/netdisco/mibs/alcatel
10# mibdirs +/usr/local/netdisco/mibs/allied
11# mibdirs +/usr/local/netdisco/mibs/apc
12# mibdirs +/usr/local/netdisco/mibs/arista
13
14. . .
15
16# mibdirs +/usr/local/netdisco/mibs/sonicwall
17# mibdirs +/usr/local/netdisco/mibs/trapeze
18# mibdirs +/usr/local/netdisco/mibs/xirrus

是的。

最后,您需要启动SNMP服务:

1sudo systemctl start snmpd.service

了解有关 SNMP 的更多信息,请参阅 [监控和管理您的网络与 SNMP] 教程系列(https://www.digitalocean.com/community/tutorial_series/monitoring-and-managing-your-network-with-snmp). 当您将更多设备添加到 Netdot 时,您将需要参阅该教程系列。

步骤 4 — 配置 Netdot 的数据库设置

Netdot 附带一个配置文件,您需要根据您的需求进行定制。创建一个名为 Site.conf 的 Default.conf 副本:

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

然后,您可以修改 Site.conf 文件以反映您的特定选项。

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

这里没有显示完整的文件,您必须找到以下变量,并更新它们以匹配您的设置:

1DB_TYPE => 'mysql'
2DB_DBA => 'root',
3DB_DBA_PASSWORD => 'rootpass',
4DB_HOST => 'localhost',
5DB_DATABASE => 'netdot',
6DB_NETDOT_USER => 'netdot_user',
7DB_NETDOT_PASS => 'netdot_pass',

大多数默认设置都很好。

  • DB_DBA:有权创建数据库的MySQL用户;在大多数情况下应该是 root * DB_DBA_PASSWORD:MySQL密码为 ** root** * DB_DATABASE:您想为Netdot创建的数据库名称 * DB_NETDOT_USER:您想要创建的Netdot数据库用户 * DB_NETDOT_PASS:为Netdot数据库用户设置一个独特的密码

您不必手动创建 Netdot 数据库或用户,安装过程会读取该文件中的值,并创建相应的数据库和用户。

注意:如果您在未来更改配置文件,则必须重新启动Apache,以便更改生效。

步骤 5 – 安装 Netdot

初始化数据库:

1sudo make installdb

然后安装 NetDot:

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

步骤 6 — 完成安装

在成功安装 Netdot 后唯一需要配置的是 Apache 服务器。

将配置文件复制到 Apache 设置的目录:

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

重新启动 Apache:

1sudo systemctl restart httpd.service

第7步:设置Cron工作

Netdot 有几个脚本,应该定期运行. 复制样本 crontab 文件到您的 cron.d 目录:

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

安装完成了。

步骤 8 - 访问 Netdot

打开你的浏览器,然后到http://your_server_ip/netdot。

使用默认用户名和密码登录,这两者都是 admin

请务必立即更改密码!

使用 Netdot 来记录您的网络

在本节中,我们将介绍Netdot,并向您展示如何添加设备并使用它来管理您的IP。

一旦您登录,您将看到以下内容:

Netdot interface

Netdot的界面非常简单,让我们看看您可以使用的基本任务。

从设备收集数据

首先我们需要添加您的网络设备. 它们可以以几种方式添加:

*一次,使用脚本 * 通过扫描特定子网中的设备 * 通过扫描文件中列出的设备 * 手动使用 Netdot 控制面板

使用脚本查询一个设备

这是我们将使用的方法将Droplet自己的信息添加到Netdot。

此命令将运行脚本来从单个主机获取数据:

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

例如,您可以使用此命令添加安装 Netdot 的服务器:

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

继续运行这个命令,你应该看到输出如下:

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

扫描特定子网络中的设备

此方法使用相同的脚本来扫描特定子网中的所有设备:

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

扫描文件中列出的设备

您可能觉得在一个简单的文本文件中列出您的所有设备有帮助,该文件应该包含设备(主机名称或IP)和其SNMP社区的列表,每行一列:

1host1.sample community1 
2host2.sample community2
3host3.sample community2
4host4.sample community3
5
6. . .

然后,您可以使用Netdot脚本来扫描文件中列出的所有设备:

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

您可以使用以下命令获取脚本参数的完整列表:

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

从Netdot控制面板添加设备

在 Netdot 控制面板中,在顶部导航中导航到 ** 管理 ** 选择 ** 管理 > 设备 ** 点击 ** [新]** 链接。

输入设备的主机名或 IP 地址,从下载菜单中选择 SNMP 版本和社区,然后单击 Discover

设备文档

一旦您创建了一个设备,您可以添加有关该设备的更多信息. 您可以根据其名称、IP 或 MAC 地址搜索该设备。

** 基本内容:**

Basics tab

在本节中,您可以查看和编辑有关设备的一般信息:其所有者、位置、操作系统和管理信息,您还可以添加评论和自定义属性。

有些信息可以自动获取,有些信息必须手动输入。

您可以通过单击其标题获取任何参数的帮助,例如,点击标题第一次发现,您将看到下面的 pop-up 窗口:

First Discovered help

  • 接口: *

Interfaces tab

在本节中,您可以查看和编辑有关设备接口的信息:名称、速度、状态、邻居(直接连接的设备)等。

您也可以通过点击其号码或名称查看详细的界面信息。

Interface detail

• IP 信息:

IP Info tab

在本节中,您可以查看有关设备上发现的所有 IP 地址的信息,以及它们所属的子网络,它们被发现的设备接口以及可选的 DNS 名称,您还可以连接服务(HTTP, DNS,MySQL等)到相应的地址。

地理位置:**

Topology tab

在本节中,您可以看到设备及其直接连接的邻居的图表。

IP地址管理

Netdot 最有用的功能之一是地址空间管理,您可以在网络上计划、监控和管理 IP 地址。

Netdot 地址空间中的基本对象是 IP 区块,它们可以代表单个终端节点地址,以及地址组。区别性特征是前缀:终端节点地址是具有前缀 /32 的 IP 区块,而由 126 个终端节点地址组成的子网是具有前缀 /25 的 IP 区块。

例如,让我们创建以下简单的结构:

1104.236.38.0/24
2	104.236.38.0/25
3	104.236.38.128/25
4	    104.236.38.128/26
5	    104.236.38.192/26

导航到 管理 > 地址空间

Address space

点击链接。

Add container

您可以任意指定 Owner 和 ** Used By** . (您可以通过点击 ** [新]** 链接,填写表格并更新页面来添加一个项目到下载列表中。

点击保存

Netdot 支持以下状态:

  • 容器 :包括其他容器或IP块 * ** 子网** :代表实际子网 * ** 保留** :不应该因任何原因分配的块 * ** 静态** :静态分配

接下来,为 104.236.38.0/25 创建一个新的子网,选择 ** 子网** 为 ** 状态** :

Add subnet

您将看到以下结果:

Subnet creation

要创建下一个容器,您可以点击第 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

如果您点击图表中的一个框,您将看到相应子网的详细地图。

例如,它可能看起来如下:

Subnet block view

该图表显示,网络的第一个和最后一个地址是自动保留的。 用于 DHCP 的地址为 1 至 63。 已被静态分配到主机或设备接口的地址被标记为红色。

要添加、保留或编辑一个地址,您必须点击它. 此外,您可以在 ** 使用 ** 字段中查看子网上使用和可用地址的总体统计数据,在本示例中是:

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

结论

Netdot 是一个强大的工具来记录您的网络. 完成本教程后,您将了解如何安装它,如何做基本的设置,如何添加新设备,以及如何管理您的地址空间。

Published At
Categories with 技术
Tagged with
comments powered by Disqus