如何记录您与Netdot网络在CentOS 7

介绍

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

基本功能:

  • 使用SNMP发现和轮询设备
  • 使用不同的源发现和构建L2拓扑:CDP,LLDP,STP和交换机转发表
  • 资产管理
  • v4和v6的IP地址管理
  • DHCP管理
  • DNS管理
  • 电缆管理:衣柜,房间,插座,建筑物内部和之间的连接等。
  • 联系管理:管理员,操作员,部门,供应商,供应商等。
  • 导出外部工具的设置:Nagios,RANCID,Cacti,BIND等。

Netdot项目的网站

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

先决条件

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

  • 部署CentOS 7 Droplet
  • 通过遵循添加Sudo用户初始服务器设置
  • 添加交换空间到你的服务器; 示例4 GB的量是罚款
  • 安装LAMP软件,因为Netdot需要Web服务器和数据库服务器
  • 记下你的MySQL 的root密码; 你将需要它在本教程中
  • 启用EPEL(企业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回购协议的更多信息,请点击这里

  • 安装这些必备工具,允许您编译其他软件包:
sudo yum install make gcc gcc-c++ autoconf automake rpm-build openssl-devel git perl perl-CPAN perl-Inline
  • 安装DNSSEC的工具,手动(您可能需要使用不同的方法,如果你关心跳过证书检查):
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存储库

从GitHub获取Netdot的最新源:

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可以监控它。 你需要在你想要Netdot监视的其他网络设备上配置SNMP,但是在本教程中,我们只监视这个Droplet本身。

首先,你必须安装Netdisco 的MIB 安装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的教程系列监控和管理使用SNMP了您的网络 当您向Netdot添加更多设备时,您需要参考该教程系列。

第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用户; 应该在大多数情况下,
  • 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作业

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

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

安装完成。

第8步 - 访问Netdot

启动浏览器并转到地址http:// your_server_ip /netdot

用默认的用户名和密码,这都是admin登录。

确保您立即更改密码!

使用Netdot记录您的网络

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

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

Netdot接口

Netdot的界面很简单。 让我们来看看你可以执行的基本任务。

从设备收集数据

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

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

使用脚本轮询一个设备

这是我们将使用的方法将此Droplet自己的信息添加到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控制面板添加设备

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

输入设备的主机名或IP地址。 从下拉菜单中选择SNMP版本和社区。 然后,点击查看 Netdot然后将使用SNMP轮询设备。

设备文档

创建设备后,您可以添加更多相关信息。 您可以通过名称,IP或MAC地址搜索设备。 每个信息页面包含几个部分:

基本:

基本选项卡

在此部分中,您可以查看和编辑有关设备的常规信息:其所有者,位置,操作系统和管理信息。 您还可以添加注释和自定义属性。

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

您可以通过点击任何参数获得帮助。 例如,单击标题“First Discovered”,您将看到以下弹出窗口:

首先发现帮助

接口:

接口选项卡

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

您还可以通过单击其编号或其名称来查看详细的界面信息。

接口细节

IP信息:

IP信息选项卡

在此部分中,您可以查看设备上找到的所有IP地址及其所属子网,设备接口(找到它们)以及可选的DNS名称的信息。 您还可以将服务(HTTP,DNS,MySQL等)连接到相应的地址。

拓扑:

拓扑选项卡

在此部分中,您可以看到设备及其直接连接的邻居的图形。

IP地址管理

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

Netdot地址空间中的基本对象是IP块。 它们可以表示各个端节点地址,以及地址组。 区别特征是前缀:末端节点地址是具有前缀/ 32的IP块,并且126末端节点地址的子网是具有前缀/ 25的IP块。

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

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

导航到管理>地址空间

地址空间

单击[新]链接。

添加容器

输入的IP [/前缀]字段中104.236.38.0/24。 您可以选择指定所有者使用 (您可以通过点击[新]链接,填写表单,并刷新页面项目添加到下拉列表。)从状态下拉菜单中选择容器 进入这个容器的说明

单击保存

Netdot支持以下状态:

  • 容器 :包括其他容器或IP块
  • 子网 :代表实际子网
  • 版权所有 :阻止不应该不管什么原因被分配
  • 静态 :静态分配

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

添加子网

您将看到以下结果:

子网创建

要创建下一个容器,可以在绿色的酒吧区点击旁边的用法的底部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),然后点击最右侧的[树视图]链接。 您将看到以下内容:

树视图

如果单击图中的一个框,您将看到适当子网的详细地图。

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

子网块视图

此图显示网络的第一个和最后一个地址被自动保留。 地址1至63用于DHCP。 静态分配给主机或设备接口的地址标记为红色。 尚未分配为静态或动态但已在网络上看到的地址,标记为蓝色。 可用地址标记为绿色。

要添加,保留或编辑您必须点击的地址。 此外,你可以看到在太阳能利用领域,在这个例子中是子网使用,可用地址的整体统计:

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

结论

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏