Linux網絡流量監控與分析工具 Notp 和 Notpng詳解

2.2網絡流量監控與分析工具 Notp 和 Notpng

對於單個服務器網絡故障的排查,iftop 工具可以輕鬆實現,但是在監控一個龐大的服務器網絡,並且要分析每個主機以及端口的網絡狀態時,iftop 就顯得愛莫能助了,這個時候就需要一個高效的網絡管理系統了。Notp 就是一款功能強大的流量監控、端口監控、服務監控管理系統。

2.2.1Notp 與 MRTG 的異同

對於 MRTG,讀者可能並不陌生,它是一款監控網絡鏈路流量的工具,通過 SNMP 協議得到設備的流量信息,並將信息通過圖形展示給用戶。MRTG 配置簡單,容易使用,它的優點是耗用的系統資源小,可以非常直觀地顯示流量負載,但是它也有很多缺點,例如: 只能用於 TCP/IP 網、數據不能重複使用、無法記錄更詳細的流量狀態、沒有管理功能等, 而這些剛好是 Notp 最擅長的地方。

Notp 是網絡流量監控中的新貴,它是一種網絡嗅探器,在監測網絡數據傳輸、排除網絡故障方面功能十分強大。它通過分析網絡流量來判斷網絡上存在的各種問題,還可以監控是否有黑客正在攻擊網絡,如果網絡突然變緩慢,通過 ntop 截獲的數據包,可以確定是什麼類型的數據包占據了大量帶寬,數據包的發送時間、數據包傳送的延時、數據包的來源地址等,通過這些信息,運維人員可以及時、迅速地做出響應,或者對網絡進行調整,從而保證網絡正常、穩定運行。

2.2.2Notp 與 Notpng 的功能介紹

Notp 提供了命令行界面和 Web 界面兩種工作方式,通過 Web 界面,可以清晰展示網絡的整體使用情況、網絡中各主機的流量狀態與排名、各主機佔用的帶寬以及各時段的流量明細、局域網內各主機的路由、端口使用情況等。

根據官方的介紹,Notp 主要提供以下幾個功能:

可以自動從網絡中獲取有用的信息。

可以將獲取的數據包信息轉換為可識別的格式。

可以記錄網絡的通信時間和過程。

可以對網絡中失敗的通信進行分析。

可以發現網絡環境中通信的瓶頸。

可以自動識別客戶端正在使用的操作系統。

通過對 Notp 功能的介紹,不難看出,它就是從分析網絡流量角度來確定網絡上存在的各種問題,說得更簡單一點,就是一個抓包工具,然後通過歸納和繪圖實現了更多的功能。在 Notp 版本更新到 Notp5.x 之後,官方宣佈停止 Notp 版本的更新,繼而推出替代版本Notpng。Notpng 在 Notp 版本的基礎上,去掉了一些拖沓冗長的功能,同時新增了網絡流量實時監控功能,並將各個功能進行重新梳理和整合,使整個流量展示更加智能化和合理化。

Notpng 使用 Redis 鍵值服務按時間序列存儲統計信息,通過這種方式實現了流量狀態實時展示。與 Notp 類似,Notpng 也內置 Web 服務功能,同時,也支持命令行界面和 Web 界面兩種工作方式,但是 Notpng 降低了對 CPU 和內存的使用率,資源消耗更少。Notpng 除了可以實現 Notp 的所有功能外,新增的功能如下:

以圖形的方式動態展示流量狀態。

實時監控網絡數據並實時彙總。

以矩陣圖的方式顯示 IP 流量。

可以生成基於 HTML5/AJAX 的網絡流量統計。

支持歷史流量數據分析。

基於 HTML 5 的動態圖形用戶界面。

下面分別介紹一下 Notp 和 Notpng 的安裝及使用技巧。

2.2.3安 裝 Notp 與 Notpng

1.安裝 Notp

Notp 可以支持 win32 、Linux 、UNIX 、BSD 等平臺。可以在 Notp 官方站點http://www.ntop.org/ 下載對應的版本。Notp 的安裝可以通過 yum 方式和源碼編譯安裝兩種方式實現,為了能夠使用最新的穩定版本,這裡採用源碼編譯的方式來安裝,安裝過程如下:

(1)安裝 Notp 必需的軟件包

這裡安裝的操作系統環境為 Centos6.3 x86_64 版本。為了能順利完成源碼編譯,需要安裝 Notp 必需的一些軟件包,操作如下:

[root@monitor ~]#yum -y install libpcap libpcap-devel libtool libpng gdbm gdbm-devel glib libxml2-devel pango pango-devel gd zlib zlib-devel

[root@monitor ~]#yum -y install svn rrdtool rrdtool-devel python python-develGeoIP GeoIP-devel

(2)編譯安裝 Notp

這裡下載的是 ntop-5.0.1 版本,編譯安裝過程如下:

[root@monitor ~]# tar zxvf ntop-5.0.1.tar.gz

[root@monitor ~]# cd ntop-5.0.1

[root@monitor ~]# ./autogen.sh --with-tcpwrap

[root@monitor ~]# make

[root@monitor ~]# make install

其中,--with-tcpwrap 選項用於支持 TCP Wrappers 訪問控制,以保證 Notp Web 訪問的安全。

(3)簡單配置 Notp

在 Notp 安裝完成後,默認的數據存放目錄為/usr/local/var/nto。為了保證安全,建議以低權限用戶 nobody 身份運行 Notp 進程,因此,可能需要對 Notp 默認的數據存放目錄進行權限調整,執行如下命令即可:

[root@monitor ~]#chown -R nobody /usr/local/var/ntop

通過 Notp 的 Web 頁面可以修改 Notp 的設置或關閉 Notp 服務,但是必須要通過管理員用戶的驗證,Notp 默認的管理員為 admin,密碼為空,因此,需要為其設置一個密碼。通過如下命令即可設置 admin 用戶的密碼:

[root@monitor ~]# ntop –A

然後重複輸入兩次密碼即可。

Notp 的 Web 頁面在默認情況下沒有訪問限制,有時候為了網絡的安全,建議設置授權訪問,只有授權的主機才能訪問此 Web 頁面,這可以通過 Linux 系統本身的 TCP Wrapper 功能實現,授權過程如下:

[root@monitor ~]#vim /etc/hosts.allow ntop: 192.168.12.188

[root@monitor ~]#vim /etc/hosts.deny ntop: ALL

這裡設置只允許 IP 地址為 192.168.12.188 的主機可以訪問 Notp 的 ntop 服務,其他所有IP 的訪問全部禁止。

2.安裝 Notpng

Notpng 是目前官方的主推版本,可以從 http://www.ntop.org/ 下載目前最新的ntopng-1.1 源碼版本進行編譯安裝。不過為了安裝方便,官方推出了 Notpng 的 yum 源倉庫,通過 yum 源倉庫可以輕鬆安裝 Notpng,這裡就採用 yum 源方式進行安裝。

(1)設置 yum 源

首先為 ntopng 創建一個 yum 源倉庫,內容如下:

[root@localhost ~]#cat /etc/yum.repos.d/ntop.repo [ntop]

name=ntop packages baseurl=http://www.nmon.net/centos/$releasever/$basearch/ enabled=1

gpgcheck=1

gpgkey=http://www.nmon.net/centos/RPM-GPG-KEY-deri

然後下載一個 epel 的 yum 源:

[root@localhost ~]# wget\

> http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@localhost ~]# rpm –Uvh epel-release-6-8.noarch.rpm

(2)開始安裝 Notpng

在設置好兩個 yum 源後,安裝 Notpng 就變得十分簡單了,只需執行如下操作即可:

[root@localhost ~]# yum clean all [root@localhost ~]# yum update

[root@localhost ~]# yum install pfring n2disk nProbe ntopng ntopng-data nbox

(3)配置 Notpng

在 Notpng 安裝完成後,默認的配置文件模板是/etc/ntopng/ntopng.conf.sample,可

以將此文件重命名為 ntopng.conf,然後在這個配置文件中添加一些配置信息,例如: [root@localhost ~]# cat /etc/ntopng/ntopng.conf

-G=/var/tmp/ntopng.gid

--local-networks "192.168.12.0/24"

--interface em2

--user nobody

--http-port 3000

相關參數含義如下:

-G 指定存儲 ntopng 進程號的文件路徑。

--local-network 指定要監控的本地子網段。

--interface em2 指定監聽 em2 網卡上的流量。

--user 指定運行 ntopng 服務所使用的賬戶。

--http-port 指定 ntopng 的 Web 服務端口號,如果不指定,默認端口為 3000。

(4)啟動 ntopng 服務

在啟動 Notpng 服務之前,需要先啟動 redis 服務。redis 的功能之前介紹過,主要為 ntopng

提供鍵值存儲。下面首先啟動 redis 服務,然後啟動 Notpng 服務,執行操作如下:

[root@localhost ~]# service redisstart

[root@localhost ~]# service ntopngstart

為了保證 redis 和 ntopng 服務在以後可開機自啟動,還需要執行如下操作:

[root@localhost ~]# chkconfig ntopng on

[root@localhost ~]# chkconfig redis on

最後,就可以通過 Web 方式:http://IP:3000 來訪問 Notpng 提供的服務了,默認登錄用戶名和密碼均為 admin,可在登錄後進行修改。

2.2.4Notp 和 Notpng 的使用技巧

在完成 Notp 安裝後,執行如下命令即可啟動 Notp 服務:

[root@networkserver ~]# ntop -i em1 -L –d

這裡通過 Notp 命令監控網卡 em1 的流量狀態,相關參數的含義將在後面章節詳細介紹。在執行此命令後,Notp 服務的日誌輸出將重定向到系統的/var/log/messages 文件中,同時將開啟默認的 3000 端口作為 Web 界面服務端口,執行 http://IP:3000 即可訪問 Notp 提供的 Web監控界面。

1.Web 界面下 Notp 的使用方法與技巧

Notp 的 Web 界面主要有 7 個主欄目組成,下面主要介紹下每個欄目中需要重點關注的功能點。

“About”欄目是對 Notp 的簡單介紹和一些在線手冊等幫助信息。

“Summary”欄目是對目前網絡流量的一個整體概況,其中子欄目“Traffic”可以顯示全局流量統計,主要包含網絡接口流量統計、協議流量分佈、應用協議流量統計等,網絡流量會以柱面圖、曲線圖和明細表格的形式展示出來。

Linux網絡流量監控與分析工具 Notp 和 Notpng詳解

圖 2-3 顯示的是 L2/L3 協議對應的流量分佈圖。

圖 2-3Notp 根據協議進行的流量分佈統計“Summary”下的子欄目“Host”主要顯示所有可監控主機的 IP 地址、地理位置、MAC地址、數據發送接收量、目前活動連接數等各種信息,在主機流量監控方面,可通過 Bytes方式統計,也可以用 packets 方式統計,要了解每個主機的詳細流量信息,只需點擊對應的Host 便可查看,圖 2-4 就是某主機在某時刻的流量連接流視圖。

Linux網絡流量監控與分析工具 Notp 和 Notpng詳解

圖 2-4通過 Notp 展示某主機在某時刻的連接流視圖

通過圖 2-4 可以非常清晰地瞭解某主機在某時刻的連接狀態,中間的豎柱表示的是 IP 為“125.76.237.248”這臺主機,然後以豎柱為中心,分成左右兩個部分,左邊部分表示外部 IP 與“125.76.237.248”這臺主機之間的發送、接收數據流量,右邊部分表示“125.76.237.248”這臺主機與外部 IP 之間的發送、接收數據流量,連接的寬度表示發送或接收數據量的大小。

在“Summary”下的子欄目“Host”中,在查看每個主機的詳細流量頁面上有一個按時段的流量統計功能,這個功能非常有用,通過這個統計可以查看某主機在一天任意一個小時內發送、接收的數據流量,同時還通過餅狀圖進行集中彙總。

“Summary”下的子欄目”Network Load“用於網絡負載統計,通過該項功能可以查看最近 10 分鐘、一小時、一天、一個月的網絡流量信息。圖 2-5 展示的是一個小時內的網絡負載統計。

Linux網絡流量監控與分析工具 Notp 和 Notpng詳解

圖 2-5Notp 展示的一個小時內的網絡負載

“All Protocols”欄目主要用於查看各主機發送、接收的數據量,並將數據以 TCP、UDP、 ICMP 的方式進行分類統計。其中,子欄目“Throughput”主要顯示所有可見主機的吞吐量,子欄目“activity”主要顯示當前網絡可見主機在 24 小時中每小時的流量狀態,並且每個時段根據流量的大小分別用不同的顏色進行標註。

“IP”欄目主要對各個主機中應用層協議產生的流量進行統計。例如,子欄目“Summary”主要對各主機中 HTTP、FTP、Mail、SSH、DNS 等服務產生的流量進行詳細統計,同時還可以統計多播信息、流量分佈等;子欄目“Traffic Directions”主要用於統計端到端的流量信息,可以統計本地到本地、本地到遠端、遠端到本地、遠端到遠端的流量狀態;子欄目“Local”主要是統計局域網絡內各主機使用狀況,比如可以統計本地路由使用信息,本地端口使用信 息、Active Sessions 連接信息等。

“Utils”欄目主要有 RRD 參數的配置、轉存 Notp 的統計信息,以及查看 Notp 運行日誌信息幾個功能。

“Plugins”欄目用於繼承 Notp 插件工具,默認安裝的插件有 NetFlow、rrdPlugin、sFlow等,其中,NetFlow 插件可用於設置、激活、停用 NetFlow 支持,在啟用 NetFlow 後,Notp 就可以統計 Netflow 的詳細信息,包括 netflow 的格式、數據量及端口流量。而 rrdPlugin 插件主要用於生成流量圖,它比 MRTG 更靈活,非常適合用 shell、perl 等程序來調用,以生成所需的圖片。sFlow 是一種新的網絡監測技術,可適應超大網絡流量下的流量數據分析, 在 Notp 中啟用 sFlow 支持後,不但可以降低實施成本,也可以解決網絡管理中面臨的很多問題。

最後一個欄目“admin”是一個管理選項,訪問此欄目時需要提供管理員密碼,有 Notp的參數配置、登錄 Notp 的密碼設置、配置用戶訪問 Notp 的頁面、Notp 的啟動與關閉等幾個功能選項。這些 ntop 的配置與管理功能非常簡單,這裡不過多講述。


分享到:


相關文章: