使用ntop监控系统网络状态,NTOP甚至可以列出
使用ntop监控系统网络状态,NTOP甚至可以列出
NTOP监控工具简述
NTOP是一种监控网络流量的工具,用NTOP显示网络的使用情况比其他一些网管软件更加直观、详细。NTOP甚至可以列出每个节点计算机的网络带宽利用率。NTOP是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具。它同时提供命令行输入和Web界面,可应用于嵌入式Web服务
ntop主要提供以下一些功能:
自动从网络中识别有用的信息;将截获的数据包转换成易于识别的格式;对网络环境中通信失败的情况进行分析;探测网络环境中的通信瓶颈;记录网络通信的时间和过程;自动识别客户端正在使用的操作系统它可以通过分析网络流量来确定网络上存在的各种问题;也可以用来判断是否有黑客正在攻击网络系统;还可以很方便地显示出特定的网络协议、占用大量带宽的 主机、各次通信的目标主机、数据包的发送时间、传递数据包的延时等详细信息。通过了解这些信息,网管员可以对故障做出及时的响应,对网络进行相应的优化调 整,以保证网络运行的效率和安全。
NTOP安装与配置
系统约定
系统环境:CentOS 6.3 X64软件版本:ntop-5.0.1软件源代码包存放位置:/optNTOP软件下载
官方网站:http://www.ntop.org,从网站上可以看到最新的稳定版是5.0.1,下载地址:http://nchc.dl.sourceforge.net/project/ntop/ntop/Stable/ntop-5.0.1.tar.gz
依赖包安装
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
安装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.
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版本》
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 //其它用户均拒绝
ntop程序常用的选项:
-A 设定admin密码
-c --sticky-hosts 保留非活动主机的记录
-P 指定.db档存放路径,表示存放db文件的路径
-u 指定ntop的运行用户(run user)
-b --disable-decoders 关闭协议解码器
-n 使用数字形式的主机标识(不做DNS解析)
-w 指定监听HTTP访问的端口(默认为3000),如 #./ntop -P /usr/local/ntop/var/ntop -u ntop -w 4000(port)
-i 指定接口名称
更多请参考ntop帮助:# ./ntop --help
说明:创建ntop的运行用户ntop,这条命令同时还在/usr/local/ntop/var/ntop目录下创建了ntop_pw.db prefsCache.db文件
启动和关闭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界面了。
评论暂时关闭