星期日, 9月 25, 2005

MRTG on RedHat 9

這兩天在build osc 覺得網站有點慢所以就參考網路上的文章來裝MRTG
文章出處
http://phorum.vbird.org/viewtopic.php?p=88479&sid=feed284ccd2f560817b7976819eaecf9
由gioyan兄所撰寫的,個人覺的最容易上手

故...照本宣科果然就裝起來了^^
改天再來玩CPU 偵測的部份




以下為原文
*********************************************************************************
原文已貼在版上 在這邊也貼一下
因為我是看了cerami兄的文章 有感而發 深覺擁抱mrtg不必那麼痛苦
而寫的這篇文章 算補充吧

cerami寫得不錯 但某些地方我覺得您把簡單的事寫的太複雜了啦
其實您可以更容易安裝好mrtg的

最好是安裝redhat 9.0 時就勾選mrtg和snmp和GD繪圖函數相關套件 可以省下很多麻煩
本文章是專門針對Redhat 9.0的 (Fedora Core 1應該也行吧)
文章看起來很長 但很多只是我為了要說明清楚
真正的安裝步驟 其實很少 很容易的 不要嚇到啊
在RedHat9.0上我可以保證你一定成功 不成功變成仁

檢查一下
rpm -qa | grep perl
rpm -qa | grep zlib
rpm -qa | grep gd
rpm -qa | grep libpng
rpm -qa | grep net-snmp
rpm -qa | grep mrtg

在裝Redhat9時輕輕勾兩下 以上套件全部OK 舉手之勞,何樂而不為?
(另外我比較囉唆 建議順便把MYSQL也勾起來 WHY?因為最近MYSQL裝不起來的文章
越來越多..很多人要碰MYSQL時才發現當初沒裝,與其浪費時間在安裝MYSQL..不如把心力放在研究MYSQL身上..最妙的是還有人安裝時會去把APACHE取消掉實在是猜不透他啊 ~~ 提外話 這跟MRTG無關啦)

如果沒裝或是有缺 請自行解決

缺GD繪圖函數?..找找看~不會很難找的

當然MRTG還會用到APACHE...這個是REDHAT9.0預設會安裝的套件...如果您連這個都沒有
也請慢慢安裝吧

很多人會覺得MRTG難裝 應該是卡在安裝套件的問題上 花了很多時間
找齊套件後 安裝個半天問題又一堆 所以還是老話一句
安裝REDHAT9.0時 輕輕勾兩下 舉手之勞,何樂而不為?
當然您若比較有研究精神 我給您拍拍手

接下來進入正題
MRTG是利用snmp通訊協定運作的 所以snmp要先搞定

先處理snmp的設定檔
我的做法是直接修改/etc/snmp/snmpd.conf
cerami兄認為這個檔有問題 我倒不這麼覺得
請先找到這兩行
# sec.name source community
com2sec notConfigUser default public
這行"先不用"改 請注意public這個設定值 它跟以後製作mrtg檔時有關

再找到
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1

請在中間加上一行 變成以下這樣
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2
view systemview included .1.3.6.1.2.1.25.1.1
加上這一行後 mrtg就可以監測本機的流量 否則不行
(別問我 網路上看來的)

好了 存檔吧 /etc/snmp/snmpd.conf真的就只要加上這一行 就ok了
/etc/rc.d/init.d/snmpd start
啟動snmp吧 至此snmp部分已經完成 接下來mrtg的部分

產生mrtg設定檔/etc/mrtg/mrtg.cfg
假設本機網卡ip是192.168.88.88
下指令
cfgmaker public@192.168.88.88 > /etc/mrtg/mrtg.cfg
解釋一下上面這一行 public是什麼?
還記得在設定/etc/snmp/snmpd.conf時
我特別請您注意
com2sec notConfigUser default public
這一行中的public嗎? 沒錯 這兩個是有關係的
public是預設值 您可以在/etc/snmp/snmpd.conf中把public改掉
譬如 改成這樣吧
com2sec notConfigUser default mymrtg

好 那您在產生/etc/mrtg/mrtg.cfg時 就要下
cfgmaker mymrtg@192.168.88.88 > /etc/mrtg/mrtg.cfg

如此一來所產生出的mrtg.cfg才能成功與192.168.88.88這台主機上的snmp聯繫

為什麼要這樣做呢? 因為mrtg不只可以藉由snmp分析本機
他也可以分析在遠端 有啟動snmp的任何主機
假設對方主機的ip是66.66.66.66 我們猜測它的snmpd.conf中保留預設值為public 並未修改
那麼下cfgmaker public@66.66.66.66 > /etc/mrtg/mrtg.cfg
就可以製作出可以分析對方主機的mrtg.cfg設定檔
若對方沒有其他防備措施 那您就可以在您自己的本機上利用它的snmp做出mrtg分析圖囉 同理 當您有多台server要分析時 就可以用這一招 而不用在每一台都裝mrtg了

我這邊還是用public 只是教學用 你們可以自己改
> /etc/mrtg/mrtg.cfg 就是把結果輸出到mrtg.cfg 這不用多說

/etc/mrtg/mrtg.cfg設定檔製作好後 再打開修改一下
vi /etc/mrtg/mrtg.cfg
加上以下設定(沒有的話請加上..有的話拿掉註解 並注意是否正確)
Workdir: /var/www/html/mrtg # mrtg網頁目錄
Refresh: 300 # 每300秒網頁重新整理
Interval: 5 # mrtg每5秒抓一次資料
Language: big5
Options[_]: growright #圖表由右邊畫到左邊

注意: RedHat9.0內附的mrtg網頁檔案位置在/var/www/html/mrtg
去檢查看看 應該都有

好了 設定檔大公告成 接下來可用此設定檔產生mrtg網頁

請先做一件事 因mrtg不支援UTF-8編碼
所以修改一下/etc/httpd/conf/httpd.conf
找到AddDefaultCharset iso-8859-1
改成AddDefaultCharset big5
存檔 重啟/etc/rc.d/init.d/httpd restart

下指令
env LANG=C mrtg /etc/mrtg/mrtg.cfg

會出現一些WARNING警告訊息 不管他
連下三次 若沒有錯誤訊息 就成功了

接下來打開瀏覽器 連到http://192.168.88.88/mrtg/192.168.88.88_2.html
就可以看到成果了
至於192.168.88.88_2.html怎麼來的?
打開/etc/mrtg/mrtg.cfg觀察一下 就知道囉

看一下/etc/cron.d/mrtg
您會發現redhat9.0已幫您設定好mrtg自動每5分鐘執行一次呢


進階使用請自行搜尋
很多人都只卡在安裝這一關過不去

網路上很多mrtg教學文章 關鍵部分一筆帶過
有些甚至連snmp都沒提到
照著做恐怕只會加深挫折感而已
**********************************************************************************

沒有留言: