Linux下使用Iptraf进行网络流量的分析

下面的教程我个人安装的时候,总是失败,在/usr/local/bin目录里没有iptraf这个文件,没有办法直接用

yum -y install iptraf

命令安装成功了.

Iptraf是一款Linux环境下,监控网络流量的一款绝佳的免费小软件,特别是安装到防火墙上,与Iptables一起工作,监控流经防火墙的网络异常,效果非常好。

我的安装配置环境是redhat 9.0

一、软件下载

Iptraf的最新版本是2.7.0,可以从下面的地址下载http://iptraf.seul.org/download.html

二、安装环境需要

— gcc 2.7.2.3 or later

— GNU C (glibc) development library 2.1 or later

— ncurses development libraries 4.2 or later

可以在Linux下执行:

# rpm -qa | grep gcc

# rpm -qa | grep glibc

# rpm -qa | grep ncurses

如果没有,则请安装。 Continue reading

iftop来查看linux的即时流量

关于 Iftop

iftop 是类似于top的实时流量监控工具。主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同那台机器间的流量大小,非常适合于代理服务器和iptables服务器使用

官方网站:http://www.ex-parrot.com/~pdw/iftop/

安装iftop
安装方法1、编译安装

如果采用编译安装可以到iftop官网下载最新的源码包。

安装前需要已经安装好基本的编译所需的环境,比如make、gcc、autoconf等。安装iftop还需要安装libpcap和libcurses。

CentOS上安装所需依赖包:

yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel

Debian上安装所需依赖包:

apt-get install flex byacc  libpcap0.8 libncurses5 Continue reading

实时计算(统计)APACHE每个虚拟主机的流量==主机服务商必备

参照国外空间商的做法。以流量大小来衡量一个网站的大小、规模。从而实行收费分级。是一个非常值得我们国内空间商所参考的做法。。。
但具体实行的难度在做如何真实地计算每一个虚拟主机用户所占用的流量大小。。。
我所知道的做法有:
一、CPANEL里面的计算流量方法是:先使用APACHE的功能。将每个虚拟主机用户的访问数据全部记录下来。然后再使用某种分析工具。计算出每个用户的总共的流量大小。
二、使用apache的mod_accounting模块。(本文所介绍的).使用这功能可以实时地记录每个虚拟主机用户的访问数据大小(传入多少、传出多少)至指定的MYSQL数据库。

mod_accounting介绍:

mod_accounting is a simple Apache module that can record traffic statistics into a database (bytes in/out per http request).

官方主页为:
http://sourceforge.net/projects/mod-acct/

最新下载页面为:
http://sourceforge.net/project/s … p;release_id=109989
Continue reading

freebsd查看网卡流量

一. iftop

cd /usr/ports/net-mgmt/iftop
make install

安装完成后直接用 iftop -i eth0 -n 就可以看到eth0网卡的流量状况

iftop -n -N -B -i ether0

-n 不查询hostname
-N 不解析端口对应的服务名
-i interface 网卡名称
-B 显示bytes/sec 而不是bits/sec

界面里面按s键切换显示/不显示源ip地址
按t键切换发送/接收数据的单行/双行显示
按h键是帮助,自己看帮助。

二. systat

systat -if 1 Continue reading

用mrtg监控网络设备端口流量

被监控设备必须支持snmp协议,因为mrtg就是通过snmp协议来获取该设备的端口流量信息。如何在一个网络设备上启用snmp协议呢?

在配置模式下执行如下命令:3550(config)#snmp-server community public ro,启用snmp协议。启用后才能使用mrtg进行监控。

我中心用一台linux服务器监控三台网络设备的流量,其服务器地址为10.66.100.100/16,三台交换机的任一VLAN地址分别为 192.168.3.253,172.19.96.2,10.70.0.1。现为了叙述方便,仅选取10网段的交换机为例进行说明。其他设备方法相同,不 再赘述。

在执行mrtg的各步操作前,linux系统中必须先安装apache服务,用于网页发布。

I、Apache服务的安装

因为mrtg是以网页的形式来显示被监测设备的端口流量信息的,所以必须先安装apache服务。现将安装过程中的几个问题描述如下:

下载apache-2.0.44-2.i586.rpm软件包,安装时系统显示”libssl.so.0  is  needed  by  apache-2.0.44-2.i586.rpm”,说明安装apache服务时需要该函数库。

下载openssl-compat-0.9.6m-8.i586.rpm软件包,安装后系统不再出现上述提示,但提示缺少libdb.so.3文件,下载db2-2.4.14-8.i585.rpm软件包,安装后可以正常安装apache2.0。

II、启动Apache服务

在”控制面板”‘”服务”项中选中httpd项,进行各种操作。

III、 Apache服务的配置

安装完成后,系统自动在/etc/apache2目录下生成httpd.conf文件,该文件是Apache服务的配置文件,将其中一行修改如下:

<Directory   “/usr/local/apache2/htdocs/mrtg”>

此目录即为网页发布目录,后续操作所生成的索引文件都将存放在这个目录中,才能以网页的形式发布出来。

注:给大家介绍一个网站,上面提供了非常全面的rpm包下载,本文中所用的所有rpm包都从该网站下载,非常方便。网址为:http://rpm.pbone.net/

IV、安装MRTG

下载mrtg-2.16.2.tar.gz文件, 解压缩至mrtg-2.16.2目录,命令如下:

[root@localhost lxjun]#tar   -zxvf    mrtg-2.16.2.tar.gz

将mrtg安装至指定目录/usr/local/mrtg-2
[root@localhost mrtg-2.16.2]#./configure   –prefix=/usr/local/mrtg-2
[root@localhost mrtg-2.16.2]#make
[root@localhost mrtg-2.16.2]#make   install

1、 生成.cfg文件

[root@localhost bin]#perl cfgmaker public@10.70.0.1 –global “workdir:/usr/local/apache2/htdocs/mrtg”  –output  mrtg10.70.0.1.cfg

这样即在/usr/local/mrtg-2/bin目录下生成10网段交换机的配置文件mrtg10.70.0.1.cfg

2、编辑配置文件

使用vi编辑器对该文件进行编辑,使其成为一个守护进程运行

在该文件末尾添加runasdaemon:yes,存盘退出。

3、后台运行mrtg,时刻监视设备端口流量

[root@localhost bin]# perl   mrtg    mrtg10.70.0.1.cfg   &

注:若此进程正在运行,应先杀掉后才能正常执行,否则将出现错误提示。在执行此操作前,应先使用[root@localhost bin]# ps  -ef  |grep  mrtg命令查看一下正在运行的关于mrtg的进程,查看结果如下:

root     16004     1  0  Apr03 ?         00:10:37 perl mrtg mrtg192.168.211.1.cfg
root     20778     1  0  Apr04 ?         00:03:50 perl mrtg mrtg172.19.96.2.cfg
root      6277     1  0  09:27 ?          00:00:02 perl mrtg mrtg10.70.0.1.cfg
root      6420  6169  0  09:41   pts/4    00:00:00 grep mrtg

表明此进程正在运行,应使用[root@localhost bin]# kill  -9  6277(PID)先杀掉此进程,再执行此步操作。

4、生成index文件

[root@localhost bin]# perl indexmaker –output=/usr/local/apache2/htdocs/mrtg/index.html mrtg10.70.0.1.cfg

在/usr/local/apache2/htdocs/mrtg目录下生成index.html文件,该文件以图表的形式记录了10网段交换机各端口的流量信息。

更换端口后必须进行的操作

因为MRTG是通过snmp协议的get(  )命令读取交换机设备的MIB库信息,所以更换端口后index文件中获取不到更换后的端口的流量信息,原端口信息也不会在表中自行消失。必须重新执行全部操作。

使用FreeBSD的SNMP+MRTG网络流量分析

、 安装SNMP
一般版本的FreeBSD系统SNMP存放在/usr/ports/net/net-snmp下面,但是有的版本不是。有些版本 在安装Package的时候,除了要安装Net之外,还要安装Net-mgmt里面的SNMP,安装好之后,SNMP就存放在/usr/ports /net-mgmt/net-snmp下面了。下面就是安装过程:
# cd /usr/ports/net-mgmt/net-snmp #snmp的存放路径
# make install clean #安装snmp
# ee /etc/rc.conf
snmpd_enable=”YES”
snmpd_flags=”-p /var/run/snmpd.pid”
# /etc/netstart
# ee /usr/local/share/snmp/snmpd.conf
rocommunity public
# /usr/local/etc/rc.d/snmpd.sh start #启动snmp

2、 安装mrtg
mrtg根据不同的版本存放的位置不同,一般存放在/usr/ports/net/net-snmp下面,这里介绍的安装过程种mrtg存放在/usr/ports/net-mgmt/mrtg下面。
# cd /usr/ports/net-mgmt/mrtg #mrtg的存放路径
# make install clean #安装mrtg
# cd /home #以下四个命令是建立MRTG
# mkdir http #的WEB目录,具体目录可以
# cd http #根据个人的爱好自己设定
# mkdir mrtg
# cd /usr/local/etc/mrtg
# /usr/local/bin/cfgmaker public@192.168.1.100 > mrtg #创建MRTG的cfg文件
192.168.1.100 :被监控设备的地址
mrtg :是要输出的档案
public :设备设定档的共同的名字(community name) 预设是public,
这个可以在/usr/local/share/snmp/snmpd.conf里面修改
# ee mrtg
WorkDir: /home/http/mrtg #指向已设定的WEB目录
# /usr/local/bin/indexmaker –-title ‘标题’ –output
/home/http/mrtg/index.html mrtg #生成index.html文件
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg #运行mrtg(如果有错误,就
多运行几次)
#ee /etc/crontab #让mrtg每5分钟运行一次
*/5 * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg

3、 安装apache
apache存放在/usr/ports/www/apache2下面
# cd /usr/ports/www/apache2 #apache2的存放地址
# make install clean #安装apache2
# ee /etc/rc.conf
apache2_enable=”YES”
# /etc/netstart
# ee /usr/local/etc/apache2/httpd.conf #配置虚拟主机
NameVirtualHost *:80

<Directory “/home/http/mrtg”>
Options Indexes Includes FollowSymlinks
Allow from all #允许访问
</Directory>

<VirtualHost *:80>
ServerAdmin root@test.com
DocumentRoot /home/http/mrtg
ServerName xxx.xxx.xxx.xxx #安装mrtg的主机地址
DirectoryIndex index.html #前面生成的index.html
ErrorLog /var/log/xxx.xxx.xxx.xxx-error_log
CustomLog /var/log/xxx.xxx.xxx.xxx-access_log common
</VirtualHost>
# /usr/local/etc/rc.d/apache2.sh start #启动apache
打开http://xxx.xxx.xxx.xxx,就可以看到被监控设备的网络信息了。

4、 设置http://xxx.xxx.xxx.xxx的访问权限
监控流量的网页做好之后,接下来就设置访问这个网页的权限。
1) 修改http.conf ,在<Directory “/home/http/mrtg”>和</Directoy>
之间加入一行:
AllowOverride All
意思是在/home/http/mrtg下不同目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖
2) 编辑.htaccess 文件
# cd /home/http/mrtg
# mkdir user #建立存放密码文件的文件夹
# ee .htaccess #访问权限控制文件
AuthUserFile /home/http/mrtg/user/pass #用户密码信息存放文件
AuthType Basic #认证类型为基本型
AuthName “cnseaport”
require valid-user #认证方式
3) 建立用户
# htpasswd –c /home/http/mrtg/user/pass admin #建立用户admin
New password: #输入用户秘密
Re-type new password: #再次输入密码
Adding password for user admin #添加用户成功信息
可以建立多个用户
4) 重新启动apache,再次访问http://xxx.xxx.xxx.xxx,这时应该出现一个
身份认证窗口,你需要输入用户名和密码才能访问这个页面。

MRTG FOR WINDOWS 安装指南

MRTG(Multi Router Traffic Grapher),通常讲是一个监控网络链路流量负载的开源软件,它可以从所有运行SNMP协议的设备上(包括服务器、路由器、交换机等)抓取信息。事实上它不仅可以监控网络设备,任何其它的支持SNMP协议的设备都可以做为MRTG的监控对象,并自动生成包含PNG图形格式的HTML文档,通过HTTP 方式显示给用户。

官方的安装指导:http://mrtg.cs.pu.edu.tw/doc/mrtg-nt-guide.en.html

准备安装环境

安装之前,除了MRTG安装程序外,还要下载几个辅助软件。这些软件全部是免费的。
1. 下载MRTG
http://www.mrtg.org

2. 下载ActivePerl
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl

3. 下载Windows服务安装工具:SERANY.exe 和 INSTSRV.exe
http://www.electrasoft.com/srvany/srvany.htm

安装MRTG

下载了以上软件后就可以开始安装了。事实上在Windows上安装MRTG很简单,因为MRTG是以Perl语言开发的,所以要首先安装一个Perl语言的运行环境出来。

1. 安装ActivePerl

解压ActivePerl的包,在安装目录中找到install.bat文件,运行它即可。在DOS窗口中,安装程序会问一些问题,诸如安装路径、是否要修改环境变量等,可以全部使用缺省设置,一路回车就行了。缺省情况下Perl安装在C:\Perl目录下。完成安装后,打开Windows的环境变量检查一下是否增加了Perl的运行文件路径。

2. 安装MRTG

解压MRTG的包,我用的是MRTG-2.12.2版本。将解压后的目录移到C:\下就行了。

需要注意的地方

(1)、给Windows安装SNMP协议支持
通常由于SNMP是一个建议关闭的协议(因为有安全漏洞),所以Windows 2003不是缺省安装的。不过MRTG就是要用SNMP协议,有什么办法呢,就装一个吧。在“控制面板->增加/删除程序->Windows 组件安装”中,安装SNMP的组件。(打开”Windows 组件向导”–>在“组件”中,单击“管理和监视工具”(但是不要选中或清除其复选框),然后单击“详细信息”。
选中“简单网络管理协议”复选框,然后单击“确定”。)

(2)、修改SNMP的安全设置

如果被监控的机器上也跑Windows的话,这部分就一定要设置(要在被监控方设置,MRTG所在服务器可以不用设置),否则永远也收不到SNMP的消息。
打开Services窗口并找到SNMP服务,打开右键菜单,选择属性。在打开的窗口中找到“安全”选项页。在选项页中有两部分设置,上半部分是指 SNMP服务接受哪种Community指示字,缺省情况下Windows 2003不对任何指示字反馈。我一般都设为“public–READ ONLY”。下半部分可以设置可信任的主机名、IP或是IPX名称。

(3)、修改防火墙

如果你安装了防火墙,要记得打开UDP 161端口,否则也会问题多多。

运行MRTG
好了,总算安装完了。现在可以运行一下MRTG了,看看它的庐山真面目。

打开DOS窗口,首先进入C:\mrtg\bin,然后输入以下命令:

perl cfgmaker public@localhost –global “WorkDir: C:\Inetpub\wwwroot\mrtg” –output mrtg.cfg

这条命令是给MRTG建立一个监控配置文件,监控的对象是localhost,就是本地机器。你也可以用IP地址来代替localhost,或者指向其它的监控主机。(注意:上面这行命令中WorkDir: 与C:盘符之间要有空格!!! 另外C:\Inetpub\wwwroot\mrtg这个目录也可以换成其它目录,不过因为mrtg会在这个工作目录下生成统计图表和网页,所以一般指定为某个站点下的目录,以方便直接从网上查看统计数据)

再键入一个命令:

perl mrtg mrtg.cfg

这个命令会在C:\Inetpub\wwwroot\mrtg目录下建立一些HTML和PNG文件,这些文件就是用户通常看到的流量报表了。

使MRTG成为Windows的服务

SERANY.exe和INSTSRV.exe这两个程序是Windows自带的工具的软件。它们可以把任何一个Windows的应用程序安装成为

Windows的一个服务。

(1)、修改注册表

创建一个文本文件,在文件中写入以下内容,并保存为mrtg.reg文件:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]
“Application”=”c:\\perl\\bin\\wperl.exe”
“AppParameters”=”c:\\mrtg\\bin\\mrtg –logging=eventlog c:\\mrtg\\bin\\mrtg.cfg”
“AppDirectory”=”c:\\mrtg\\bin\\”

(2)、安装服务

把SERANY.exe,instsrv.exe复制MRTG的安装目录下,键入以下命令:

instsrv MRTG c:\mrtg\bin\srvany.exe

双击mrtg.reg文件,把相关信息注册到注册表中。在“控制面板->管理工具->Services”下运行名为MRTG的服务即可。

默认情况下,每5分钟,mrtg收集一次数据(注意:一定要在bin\mrtg.cfg配置文件最后一行加上RunAsDaemon: yes)