网络监控工具—ntop

简介:Ntop是一种监控网络流量工具,用ntop显示网络的使用情况比其他一些网络管理软件更加直观、详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。他是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具;尤其当ntop与nprobe配合使用,其功能更加显著。它同时提供命令行输入和web页面,可应用于嵌入式web服务 。

ntop使用平台:Ntop可以支持win32linuxUnixBSD等平台。

实验环境:

操作系统 red hat 企业版 5 2.6.18-164.el5

必要的编译环境

Development Libraries 开发的库文件

Development Tools  开发的工具

Legacy Software Development 传统的开发工具

X Software Development 图形化的软件开发工具

GNOME Software Development gnome桌面下的软件开发工具

KDE Software Development kde桌面下的软件开发工具

说明:若没有的话需要使用yum来进行安装, yum groupinstall 包名称

 

本地yum的搭建:

Vim /etc/yum.repo.d/server1.repo

[rhel-server]

name=Red Hat Enterprise Linux server

baseurl=file:///mnt/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

[rhel-vt]

name=Red Hat Enterprise Linux vt

baseurl=file:///mnt/cdrom/VT

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

[rhel-cluster]

name=Red Hat Enterprise Linux cluster

baseurl=file:///mnt/cdrom/Cluster

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

[rhel-clusterstorage]

name=Red Hat Enterprise Linux clusterstorage

baseurl=file:///mnt/cdrom/ClusterStorage

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

 

具体的实现步骤:

1.1. 安装 cairo-devel

因为安装 rrdtool 需要cairo向量图形绘图库。

资讯领域中,cairo 是一个让用于提供向量图形绘图的免费函式库,Cairo 提供在多个背景下做 2-D 的绘图,进阶的更可以使用硬件加速功能。

虽然 Cairo 是使用C语言撰写的,但是当使用 Cairo 时,可以用许多其他种语言来使用,包括有 C++、C#、Java、Python、Perl、Ruby、

Scheme、Smalltalk 以及许多种语言,Cairo 在 GPL 与 Mozilla Public License 两个认证下发行。

1.2. 安装 pango-devel

因为安装 rrdtool 需要。pango是一个文字渲染库。

Pango()是一个开放源代码的自由函数库,用于高质量地渲染国际化的文字。Pango可以使用不同的后端字体,并提供了跨平台支持。

  Pango已经被整合到多数Linux发行版中,并在Fedora Core 6被用于Firefox网页浏览器和Thunderbird邮件客户端的文字渲染。虽然在

Mozilla的源代码里并没有包含Pango,但Fedora Core得到了Mozilla基金会的特别许可[1]。同样,Debian的Iceweasel、IceDove和IceApe也

使用了Pango。

  在与Cairo融合后,Pango可以完全进行文字处理和图形渲染。

1.3. 安装 rrdtool

RRDtool是由Tobias Oetiker 编写并由全球各地的许多人贡献的工具。RRDtool是指Round Robin Database 工具(环状数据库)。Round robin是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像我们在一个圆环上一样,没有起点和终点,你可以一直往下走下去。过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。RRDtool处理RRD数据库。它用向RRD数据库存储数据、从RRD数据库中提取数据。

wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz

tar zxf rrdtool-1.4.7.tar.gz

cd rrdtool-1.4.7

./configure --prefix=/usr

make && make install

 

1.4. 安装 libpcap-devel

    libpcap是unix/linux平台下的网络数据包捕获函数包,

  大多数网络监控软件都以它为基础。

  Libpcap可以在绝大多数类unix平台下工作.

  Libpcap应用程序框架

  Libpcap提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。

   yum install libpcap-devel

1.5. 安装 GeoIP

 所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于 有个精准的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。

 

 下面是简要安装步骤:

wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz

tar zxf GeoIP.tar.gz

cd GeoIP-1.4.8/

./configure --prefix=/usr

make && make install

 

1.6. 安装 ntop

Wget"http://sourceforge.net/projects/ntop/files/ntop/Stable/ntop-4.1.0.tar.gz/download"

tar zxf ntop-4.1.0.tar.gz

cd ntop-4.1.0

./autogen.sh

make && make install

 

1.7. 运行 ntop

 一般建议以 ntop 用户来运行 ntop 程序。

 

下面是创建 ntop 用户的步骤:

useradd -s /sbin/nologin ntop

passwd -l ntop

 

计划将 ntop 的数据库放在 /var/ntop 目录

[root@liunx0918 ~]# mkdir /var/ntop

[root@liunx0918 ~]# chown -R ntop:ntop /var/ntop

 

检查防火墙设置,放开 3000 端口

先执行 service iptables save

再在 /etc/sysconfig/iptables 中添加一行

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

保存

执行 service iptables restart

[root@liunx0918 ~]# service iptables save

Saving firewall rules to /etc/sysconfig/iptables:          [ OK ]

[root@liunx0918 ~]# vi /etc/sysconfig/iptables

修改 /etc/sysconfig/iptables 文件,如上所示。

[root@liunx0918 ~]# service iptables restart

Flushing firewall rules:                                   [ OK ]

Setting chains to policy ACCEPT: filter                    [ OK ]

Unloading iptables modules:                                [ OK ]

Applying iptables firewall rules:                          [ OK ]

Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]

[root@liunx0918 ~]#

 

注:直接执行下面的命令不能放开 3000 端口

iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT

 

ntop其他重要参数

ntop -h 写道

[-P <path> | --db-file-path <path>] Path for ntop internal database files

 

[-i <name> | --interface <name>] Interface name or names to monitor

 

[-d | --daemon] Run ntop in daemon mode

 

[-L] Do logging via syslog

 

[--skip-version-check] Skip ntop version check

 

[-A] Ask admin user password and exit

 

ntop -P /var/ntop -i eth0 -u ntop

 

1.8. 设置 ntop 管理密码

首先得使用 ntop -A 设置管理密码。可以设置得复杂些。

ntop startup - waiting for user response!

Please enter the password for the admin user: Mon May 28 15:07:13 2012 THREADMGMT[t3017280400]: DNSAR(3): Address

resolution thread running

 

Password too short (5 characters or more). Please try again.

ntop startup - waiting for user response!

 
 

Please enter the password for the admin user:

Please enter the password again:

Mon May 28 15:07:31 2012 Admin user password has been set

 
 

1.9. 运行 ntop

[root@liunx0918 ~]# ntop -P /var/ntop -i eth0 -u ntop  

在就可以通过浏览器来访问了,比如使用 Firefox,网址为:

http://your_server_ip:3000/

2.0 测试

 

 

 

 

 

 

 

补充说明:

  1、About:在线手册

  2、Summary:目前网络的整体概述。

  --Traffic:流量。

  --Hosts:所有主机的使用概述。

  --Network Load:各时段的网络负载。

  --Netflows:网络流量图。

  3、IP summary:各主机的流量状况与排名明细。

  --Traffic:所有主机的流量明细。

  --Multicast:多点传送情况。

  --Domain:域名。

  --Distribution:通信量状况。

  --Local >> Local:本地流量。

  --Local >> Remote:所有主机对外的明细。

  --Remote >> Local:远程主机到本地流量。

  --Remote >> Remote:远程主机到远程主机流量。

  4、All Protocools:查看各主机占用的频宽与各个时段网络使用者等的明细。

  --Traffic:流量。

  --Throughput:频宽使用明细表(点选主机,可以看的该主机详细的信息及使用状况)。

  --Activity:各时段所有主机使用流量状况(点选主机,可以看的该主机详细信息及使用状况)。

  5、Local IP :局域网络内各主机的使用状况。

  --Routers:路由器状况。

  --Ports Userd:端口使用情况。

  --Active TCP Sessions:目前正在进行的联机。

  --Host Fingerprint:主机快照情况。

  --Host Characteri zation: 主机描述。

  --Local Matrix:局域网络内各主机间的流量明细。

  6、FC:光钎网络的状况。

  7、SCSI:SCSI设备状况。

  8、Admin:新增NTOP使用者活重新启动,停止NTOP。
欢迎加入郑州阳仔的网络工程师自由交流群--132444800(请注明自己的身份,就说是51cto的博友)