[ 安裝心得 ] 如何設定 ntop ﹖
作者﹕網中人 <[email protected]>
------------- 前言﹕
相信不少朋友都已經知道如何用 mrtg 來監測網路流量了。 但﹐我知道更多朋友甚至希望能有一個工具﹐能夠輕鬆直觀的將網路使用量的情況顯示出來﹐ 比方說﹐以使用量進行排序﹐諸如此類的。
ntop 就是這樣一個工具了。下面為大家介紹如何用 tarball 和 RPM 的方法來安裝 ntop 。 另外,本文經過更新,之前在 rh7.1/rh7.2 版本上的實作可能不太合適了, 但基於學習目的,我還是保留下來了。
首先,我以 rh7.3 來說明,這是最簡單的步驟了,照著打字就應該沒問題了:
1) 下載軟體: cd /usr/src wget http://umn.dl.sourceforge.net/sourceforge/ntop/ntop-2.1.3-0.src.rpm
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) 測試: http://your.ntop.server:3000
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *
其後是舊有文章部份:
------------- 測試環境﹕
RedHat 7.2: tarball 安裝 RedHat 7.1: RPM 安裝
------------- 設定步驟﹕
一﹐tarball 的安裝方法﹕
剛好前不久在新聞組上看到有人討論 ntop 的安裝﹐按照 Kefore兄 的步驟是非常輕鬆的。 下面是我的一些補充﹕
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *
"neuro" 撰寫於郵件 news:[email protected]... > 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:[email protected]... > > 小弟由於業務上的需要,因此想得知ip流量的排名, > > 經詢問板上高手的意見後(在此謝謝hardstone,netman,responder,leoliu > > ,尤其特別感謝hardstone及netman的協助) > > 決定安裝ntop來解決這部份的問題 > > 但www.redhat.com所附的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.請至www.tcpdump.org下載libpcap > http://www.tcpdump.org/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 > http://snapshot.ntop.org/tgz/ntop-02-02-15.tgz > 下載回來後 > 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了,如有其他問題,請查 > http://snapshot.ntop.org/faq.php以及 > http://listmanager.unipi.it/pipermail/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 就可以了﹐ 例如﹕ http://your.machine.name:3001
------------- 一些注意﹕
* 我是直接那 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:[email protected]... > > 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 所產生的東西全部砍掉﹐ 再重新跑一遍筆記整理的流程。
最後﹐得出來的結果﹐就是前面那幾行文字了...
--
======= http://www.study-area.org ======= 飛雪迎春到﹐風雨送春歸 已是寒崖百丈冰﹐尤有花枝俏 俏也不爭春﹐只把春來報 待得山花爛漫時﹐他在叢中笑﹗
|