Chinaunix首页 | 论坛 | 博客
  • 博客访问: 980016
  • 博文数量: 184
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 1532
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-27 18:32
文章分类

全部博文(184)

文章存档

2009年(1)

2008年(63)

2007年(39)

2006年(79)

2005年(2)

我的朋友

分类: LINUX

2006-12-13 10:47:06


[ 安裝心得 ] 如何設定 ntop ﹖




作者﹕網中人 <>



-------------
前言﹕

相信不少朋友都已經知道如何用 mrtg 來監測網路流量了。
但﹐我知道更多朋友甚至希望能有一個工具﹐能夠輕鬆直觀的將網路使用量的情況顯示出來﹐
比方說﹐以使用量進行排序﹐諸如此類的。

ntop 就是這樣一個工具了。下面為大家介紹如何用 tarball 和 RPM 的方法來安裝 ntop 。
另外,本文經過更新,之前在 rh7.1/rh7.2 版本上的實作可能不太合適了,
但基於學習目的,我還是保留下來了。

首先,我以 rh7.3 來說明,這是最簡單的步驟了,照著打字就應該沒問題了:

1) 下載軟體:
cd /usr/src
wget

2) rebuild SRPM:
mount /mnt/cdrom
rpm -ivh /mnt/cdrom/RedHat/RPMS/libpcap-0.6.2-12.i386.rpm
rpm --rebuild ntop-2.1.3-0.src.rpm

3) 安裝:
rpm -ivh /usr/src/redhat/RPMS/i386/ntop-2.1.3-0.i386.rpm

4) 閱讀資訊:
less /usr/share/doc/ntop-2.1.3/1STRUN.txt

5) 建立帳號:
useradd -g ntop -s /bin/true -M ntop

6) 初始化:
/usr/sbin/ntop -P /usr/share/ntop/ -u ntop -A

7) 啟動:
chkconfig ntop on
service ntop start

8) 測試:


~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *

其後是舊有文章部份:

-------------
測試環境﹕

RedHat 7.2: tarball 安裝
RedHat 7.1: RPM 安裝


-------------
設定步驟﹕

一﹐tarball 的安裝方法﹕

剛好前不久在新聞組上看到有人討論 ntop 的安裝﹐按照 Kefore兄 的步驟是非常輕鬆的。
下面是我的一些補充﹕

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *

"neuro" 撰寫於郵件
news:WHAp8.242793$kb.13766419@news1.calgary.shaw.ca...
> Thank Eddie Chang very much !-)
>
> [root ntop]# make
> ....(omitted)
> gcc -shared address.lo dataFormat.lo globals-core.lo hash.lo initialize.lo
> lea0
> /usr/bin/ld: cannot find -lmysqlclient
> collect2: ld returned 1 exit status
> make[2]: *** [libntop.la] Error 1
> make[2]: Leaving directory `/root/src/ntop-current/ntop'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/root/src/ntop-current/ntop'
> make: *** [all-recursive-am] Error 2
> [root ntop]#

不知道您的系統為什麼會這樣﹖
為了驗證您的問題﹐我剛纔在我的 redhat 7.2 實作了一遍﹐
基本上按照 Kefore兄 原本的步驟來做就可以了﹐我只略為修改了一下而已﹐
其它都非常順利﹕

"我與我淡藍獨角獸" 撰寫於郵件
news:3lRfIB$3Pc@bbs.ntu.edu.tw...
>
> 小弟由於業務上的需要,因此想得知ip流量的排名,
>
> 經詢問板上高手的意見後(在此謝謝hardstone,netman,responder,leoliu
>
> ,尤其特別感謝hardstone及netman的協助)
>
> 決定安裝ntop來解決這部份的問題
>
> 但所附的ntop.1.3.xxx.rpm早已不合宜
>
> 所需要解決其相依性的rpm有六個之多,
>
> 還得解決其中的版本的問題(libpcap-0.4-39.i586.rpm對ntop.1.3版版本太新)
>
> 到不如直接下載最新tarball直接compile
>
>
>
> 以下是小弟安裝ntop的過程?
>
> 環境:Red Hat Linux 7.1 及Kernel 2.4.2-2
>
> 要安裝ntop,必需有libpcap
>
> 1.請至下載libpcap
> http:///release/libpcap-0.7.1.tar.gz
> 下載回來後
> tar -zxvf libpcap-0.7.1.tar.gz
> cd libpcap-0.7.1
> ./configure
> make
> make install
> cd ..
>
>
> 2.請至snapshot.ntop.org下載ntop
>
> 下載回來後
> tar -zxvf ntop-02-02-15.tgz
> cd ntop-current
>
> 先compile gdchart
> cd gdchart0.94c/
> ./configure
> cd gd-1.8.3/libpng-1.0.8
> cp scripts/makefile.linux Makefile
> make
> cd ../../zlib-1.1.3/
> ./configure
> make
> cd ..
> make
>
>
> 再compile ntop
> cd ntop

如果目錄沒改變的話﹐請改為﹕
cd ../ntop

> ./configure

我建議您先建立如下兩個目錄﹕
mkdir /usr/local/man/man1/intop/ # 註﹐請參考後面的‘一些注意’
mkdir /usr/local/var

> make

這裡不妨做一下﹕
make check

> make install
>
>
> 3.啟動ntop
> ntop -i eth0

上面的命令不妨丟到背景執行﹕

ntop -i eth0 & 1>/dev/null 2>&1

要結束的話輸入﹕
killall ntop

>
> 4.進入http:\\your_ip:3000\
> 就可以看到ntop了,如有其他問題,請查
> 以及
>

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *

相信按照上面的步驟都不會有問題吧﹖


二﹐RPM 的安裝方法﹕

我首先嘗試的是抓 ntop-2.0-1BETA.src.rpm 回來 rebuild 和安裝﹐都沒問題﹐
但執行的時候卻出現如下錯誤﹕
> gcc: main.o: No such file or directory
> gcc: .libs/libntopreport.so: No such file or directory
> gcc: .libs/libntop.so: No such file or directory

於是就自己動手做 RPM 了﹕

1) 移除舊檔
rpm -e ntop
rpm -e libpcap

2) 安裝 libpcap
rpm --rebuild libpcap-0.7.1-1.src.rpm
rpm -ivh /usr/src/redhat/RPMS/i386/libpcap-*.rpm

3) 製作 ntop RPM
tar -zxvf ntop-02-02-15.tgz
cp -a ntop-current /usr/src/redhat/SOURCE
cd /usr/src/redhat/SOURCES
tar zcvf ntop-2.0-src.tgz ntop-current
cat ntop-current/ntop/packages/RedHat/ntop.spec \
| tr -s '\015' '\n' > ../SPECS/ntop.spec
cd ../SPECS
vi ntop.spec
--> 修改內容如下﹕
將第 39 行之 cd gdchart0.94c/ 換成如下內容﹕
cd ntop-current/gdchart0.94c/
在 57 行之 %install 下面增加一行﹕
cd ntop-current
在第 68 行下面增加兩行﹐使其結果變為如下(第 68~70 共三行)﹕
chmod +x ${RPM_BUILD_ROOT}%{prefix}/lib/*.so.*.*
cat packages/RedHat/ntopd |tr -s '\015' '\n' > ../../../../SOURCES/ntopd
chmod +x ../../../../SOURCES/ntopd

4) 安裝 ntop RPM
rm -f ../RPMS/i386/ntop*
rpm -ba ntop.spec
rpm -ivh ../RPMS/i386/ntop-2.0-1.i386.rpm
vi /etc/sysconfig/ntopd
--> 編輯其內容如下﹕
NTOPD_IFACE=eth0
NTOPD_PORT=3001
NTOP_FLAGS="-d"

5) 使用 ntopd
啟動﹕
service ntopd start
關閉﹕
service ntopd stop


-------------
檢視成果﹕

1) 只要您有網頁瀏灠器﹐將 URL 至到您的於設 html 目錄下的 mrtg/index.html 就可以了﹐
例如﹕



-------------
一些注意﹕

* 我是直接那 tarball 的原始碼來修改的﹐不確定外面是否有更完整的包好的 RPM 可以使用﹖
* 原本的 source 中﹐關於 RedHat 的兩個 script ﹐懷疑是從 windows 端進行過檔案轉移﹐
會出現討厭的 ^M 問題﹐務必使用 tr 或其它程式將其轉換為正確的 linefeed 。
* 原來的 spec 檔似乎有點問題﹐請小心修改處理。如果失敗﹐可以根據錯誤信息來修改。
* 使用 rc daemon 啟動方式的話﹐請務必撰寫 /etc/sysconfig/ntopd 檔案﹐否則跑不起來。
* ntop 預設的 port 在 3000 上面﹐建議您修改為其它值﹐
同時必須用透過 firewall 或其它機制來限制 ntop 的閱覽來源﹐因為上面的資訊太多了﹗
* 根據網友 逍遙子兄 的反映﹐在執行 etc/cron.weekly/makewhatis.cron 的時候會有錯誤﹐
經查﹐可能是前面的 mkdir /usr/local/man/man1/intop/ 引起的。
如果您不想看到這個錯誤信息﹐不妨用 rm -rf /usr/local/man/man1/intop 將之砍掉。



-------------
後記﹕

ntop 的確是網管人員的好幫手﹐透過它﹐基本上所有進出流量都無所遁形﹗
不管拿來做例行的監測工作﹐還是拿來做報告﹐都是非常優秀的工具。

不過﹐由於 ntop 的資訊量非常多﹐如何保護這些資訊只能給授權的人士獲得﹐
將變得額外重要。



-------------
最後更新日期﹕
2002/04/08


-------------
附錄﹕
我怎麼知道如何建 RPM ﹖

"我與我淡藍獨角獸" 撰寫於郵件
news:3lYM5T$5fs@bbs.ntu.edu.tw...
> > 3) 製作 ntop RPM
> > tar -zxvf ntop-02-02-15.tgz
> > cat ntop-current/ntop/packages/RedHat/ntop.spec \
> > | tr -s '\015' '\n' > ../SPECS/ntop.spec
> > cd ../SPECS
> > vi ntop.spec
> > --> 修改內容如下﹕
> > 將第 39 行之 cd gdchart0.94c/ 換成如下內容﹕
> > cd ntop-current/gdchart0.94c/
> > 在 57 行之 %install 下面增加一行﹕
> > cd ntop-current
> > 在第 68 行下面增加兩行﹐使其結果變為如下(第 68~70 共三行)﹕
> > chmod +x ${RPM_BUILD_ROOT}%{prefix}/lib/*.so.*.*
> > cat packages/RedHat/ntopd |tr -s '\015' '\n' >../../../../SOURCES/ntopd
> > chmod +x ../../../../SOURCES/ntopd
>
> 這裏想請教網中人,您如何知道要修改/ntop-current/ntop/packages/ntop.spec呢?
>
> 謝謝您的回答,謝謝
>

哈~~ 我用的是最笨的方法﹕try-test-fix cycle
前面那幾行字打上來不需要兩分鐘﹐
但要知道打些什麼﹐可花了我一個晚上的時間哦~~ ^_^

這裡不妨分享一下我的‘笨’方法吧﹐或許可以幫助其它朋友弄個‘聰明’的法子﹕

當初我是用 ntop-2.0-1BETA.src.rpm 這個 source rpm 來 install ﹐
然後在 SOURCES 那邊﹐將 ntop 的 tarball 換掉﹕
1) 將 ntop-02-02-15.tgz 解開之後丟到 SOURCES 那邊
2) 將原本的 ntop-2.0-pre.tgz 改一個名字
3) 將 ntop-current 用 tar -zcvf 包裝為 ntop-2.0-pre.tgz
然後回到 SPECS 那邊執行 rpm -ba ntop.spec
不過﹐當然是碰到不少問題﹐
但您總是可以根據最後數行知道 spec 檔的哪行過不去﹐
根據錯誤信息的提示來找問題﹕
* 直接修改 ntop.spec
* 修改 SOURCES/ntop-current (及子目錄) 裡面的 Makefile.*
* 用 grep -r 搜索 SOURCES/ntop-current 整個目錄
* 其它想得到的辦法(我不會 c ﹐要不然可能還會嘗試修改 ntop 的 source 呢﹗)
修改完之後從新用 tar 來包裝 SOURCES/ntop-2.0-pre.tgz
再來執行 rpm -ba (這是最花時間和最無聊的事情~~ )
老是不成功﹐發現修改了的 Makefile.* 似乎沒什麼用﹐
因為在 BUILD 目錄下的 Makefile 都沒改變(唉~~ 整個超出我的 debug 能力了~)
後來在一次 grep -r 中發現了 packages/RedHat 目錄有 ntop.spec 和 ntopd ﹐
當然不放過‘借用’的機會啦~~
將 SPECS 的 ntop.spec 換掉﹐
然後再跑 rpm -ba ﹐再根據提示修改﹕
* 例如將 SOURCE 裡面的 tgz 名稱換為 spec 需要的
* 修改 spec 檔的 cd 路徑
* 將 ntopd 搬到正確的路徑
等 rpm -ba 過關之後(看到 Wrote 之類的..)
將原本 ntop-2.0-1BETA.src.rpm 所產生的東西全部砍掉﹐
再重新跑一遍筆記整理的流程。

最後﹐得出來的結果﹐就是前面那幾行文字了...


--

======= =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗


阅读(966) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~