使用ntop监控系统网络状态
一、NTOP监控工具简述:
NTOP是一种监控网络流量的工具,用NTOP显示网络的使用情况比其他一些网管软件更加直观、详细。NTOP甚至可以列出每个节点计算机的网络带宽利用率。
NTOP是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具。它同时提供命令行输入和Web界面,可应用于嵌入式Web服务
ntop主要提供以下一些功能:
1)自动从网络中识别有用的信息;
2)将截获的数据包转换成易于识别的格式;
3)对网络环境中通信失败的情况进行分析;
4)探测网络环境中的通信瓶颈;
5)记录网络通信的时间和过程;
6)自动识别客户端正在使用的操作系统
它可以通过分析网络流量来确定网络上存在的各种问题;也可以用来判断是否有黑客正在攻击网络系统;还可以很方便地显示出特定的网络协议、占用大量带宽的 主机、各次通信的目标主机、数据包的发送时间、传递数据包的延时等详细信息。通过了解这些信息,网管员可以对故障做出及时的响应,对网络进行相应的优化调 整,以保证网络运行的效率和安全。
二、NTOP安装与配置
1、系统约定
系统环境:CentOS 6.3 X64
软件版本:ntop-5.0.1
软件源代码包存放位置:/opt
2、NTOP软件下载
官方网站:http://www.ntop.org
从网站上可以看到最新的稳定版是5.0.1,下载地址:http://nchc.dl.sourceforge.net/project/ntop/ntop/Stable/ntop-5.0.1.tar.gz
3、依赖包安装
(1)yum -y install gdbm gdbm-devel rrdtool rrdtool-devel libtool libpcap libpcap-devel subversion
说明:如果缺少subversion你将会收到服务器抛出的如下错误
You must have svn/subversion installed to compile autogen.sh.
Download the appropriate package for your distribution, or get the
source from http://subversion.tigris.org
(2)安装GeoIP:GeoIP是一个 ip 对应地理信息的数据库。
所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。
如果缺少该安装包,安装ntop时会抛出如下错误:
Removing dups and misplaced entries from LIBS and INCS…
checking for GeoIP_record_by_ipnum in -lGeoIP… no
checking for GeoIP_name_by_ipnum_v6 in -lGeoIP… no
Please install GeoIP (http://www.maxmind.com/)
如果安装GeoIP后仍然收到该错误提示,请参考补充内容。
简要安装步骤
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar zxvf GeoIP.tar.gz
cd GeoIP-1.4.8/
./configure
make && make install
补充:If you went to maxmind.com and compiled GeoIP-1.4.8 c api (downloaded here: http://www.maxmind.com/app/c )and you still get the same error with the ntop fix. Please install python-devel to solve that issue.
4、ntop安装
#tar zxvf ntop-5.0.1.tar.gz
#cd ntop-5.0.1
#./autogen.sh —prefix=/usr/local/ntop —with-tcpwrap //配置—with-tcpwrap选项用于支持TCP Wrappers访问控制
(或./configure —prefix=/usr/local/ntop)
#make
#make install
补充:安装过程中如果遇到下面这个python版本低的提示:
>>>> Unable to locate python-config: using workaround <<<<
checking for python… python
checking Checking python version… Old python installed
Please install python 2.6 or newer.
请升级python到新版本,具体参考:《Centos 6.3升级系统默认Python到2.7版本》
5、ntop配置
# groupadd ntop //创建ntop组
# useradd -M -s /sbin/nologin -g ntop ntop //创建隶属于ntop组的用户ntop
# chown -R ntop.ntop /usr/local/ntop/share/ntop //修改ntop安装目录的拥有用户和组
# chown -R ntop.ntop /usr/local/ntop/var/ntop/
#cd /usr/local/ntop/bin
#./ntop -A //设定admin密码
设置TCP Wrapper权限,在编译ntop时我们使用了—with-tcpwrap配置项,因此可以通过TCP Wrapper策略对ntop的访问进行控制:
#echo ‘ntop:192.168.2.188’ >> /etc/hosts.allow //只允许主机192.168.2.188访问NTOP服务
#echo ‘ntop:ALL’ >> /etc/hosts.deny //其它用户均拒绝
6、ntop程序常用的选项:
选项名称 含义
-A 设定admin密码
-c —sticky-hosts 保留非活动主机的记录
-P
-u
-b —disable-decoders 关闭协议解码器
-n
-w
-i
更多请参考ntop帮助:# ./ntop —help
说明:创建ntop的运行用户ntop,这条命令同时还在/usr/local/ntop/var/ntop目录下创建了ntop_pw.db prefsCache.db文件
7、启动和关闭ntop
启动ntop有2中方法:
#./ntop -P /usr/local/ntop/var/ntop -u ntop & //以ntop用户、db为/usr/local/ntop/var/ntop在后台启动ntop服务(当前目录/usr/local/ntop/bin等同于/usr/local/ntop/bin/ntop -P /usr/local/ntop/var/ntop -u ntop &)
#ntop -d -i eth0 //以后台守护进程的方式(-d)运行 NTOP服务,并监测eth0网卡所连接的流量
如果有多块网卡,可以使用以下命令连接不同的局域网段:
# ntop -d -i eth0,eth1 -M
设置开机自动启动ntop:
# echo “/usr/local/ntop/bin/ntop -P /usr/local/ntop/var/ntop -u ntop &> /dev/null” >> /etc/rc.d/rc.local
补充:
加/dev/null是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃。
command > file 2>file 的意思是将命令所产生的标准输出信息和错误的输出信息送到file 中。command > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道;
command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容。
所以,从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法
关闭ntop:
pkill ntop
kill [-9] pid(notp的pid进程号)
配置完成,运行ntop后,通过http://IP:3000就可以访问ntop的web界面了。
这里我用测试域名q.www.fity.cn解析了IP地址。
扩展阅读:
WEB监控界面说明,请参考:《NTOP监控WEB界面简单说明解释》
NTOP中文版:
http://www.netexpert.cn/ntop/
https://blog.onovps.com/tag/ntop中文版/
貌似功能蛮强大的啊
@海天
据一朋友说这个功能更强大Panabit