*奇想西卡*

« [美食] 蘇錦素食水煎包 | Main | [美食] 雲科素之旅 »

10 三月, 2006

[freebsd] mrtg 安裝

Freebsd — 作者 segaa @ 05:57

mrtg是一套簡單監控網路、cpu、ram、線上人數的工具,透過MRTG的圖表可以輕易了解網站的相關負荷與用量。

讓管理人員可以立即針對伺服器。這邊簡單介紹MRTG的安裝方式與相關應用

1、安裝snmp
# cd /usr/ports/net-mgmt/net-snmp
# make install clean #安?snmp
安裝完成后 ee /etc/rc.conf文件,加入下面的內容,將snmp加入開機自動啟動
snmpd_enable="YES"
snmpd_flags="-p /var/run/snmpd.pid
ee /usr/local/share/snmp/snmpd.conf加入
rocommunity public
ps. 可以用 rocommunity 帳號 IP來限定可以存取snmp的帳號跟ip

# /usr/local/etc/rc.d/snmpd.sh start 重開snmp

2、 安裝mrtg
# cd /usr/ports/net-mgmt/mrtg
# make install clean
建立HTTP目錄
mkdir /usr/local/www/data/mrtg

# cd /usr/local/etc/mrtg
# /usr/local/bin/cfgmaker public@192.168.1.100 > segaa.cfg #建立MRTG的cfg文件
192.168.1.100 :被監控的地址
segaa.cfg :產生的設定檔
public :snmpd.conf共同的名字(community name) 範例是public,
可以在/usr/local/share/snmp/snmpd.conf里面修改
# ee segaa.cfg
WorkDir: /usr/local/www/data/mrtg #指向設定的WEB目錄
Language: Big5 //設定語系
WithPeak[_]: wmy //產生 每週/每月/每年 的流量圖

# indexmaker –-title '標題'--output /usr/local/www/data/index.html segaa.cfg
# 產生index.html文件
# /usr/local/bin/mrtg /usr/local/etc/mrtg/segaa.cfg

定期執行MRTG:
crontab -e
加入:
*/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/segaa.cfg
儲存離開即可,預設你有安裝apache查看網址 http://hostname/mrtg

進階應用:

1、監控cpu用量
#ee /usr/local/etc/mrtg/cpu.cfg 新增mrtg設定檔

內容
LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[cpu]:ssCpuRawUser.0&ssCpuRawSystem.0:mrtg@220.130.104.15
RouterUptime[cpu]: mrtg@segaa.idv.tw
MaxBytes[cpu]: 100
Title[cpu]: CPU LOAD
PageTop[cpu]: <H1>CPU (user and system) Load %</H1>
ShortLegend[cpu]: %
YLegend[cpu]: CPU Utilization
Legend1[cpu]: User CPU in % (Load)
Legend2[cpu]: System CPU in % (Load)
Legend3[cpu]:
Legend4[cpu]:
LegendI[cpu]: 使用者負載
LegendO[cpu]: 系統負載
Options[cpu]: growright,nopercent
WorkDir:/usr/local/www/data/mrtg
Language:big5

2、監控RAM用量
#ee /usr/local/etc/mrtg/ram.cfg 新增mrtg設定檔
內容
LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[server_mem]: memAvailReal.0&memAvailSwap.0:mrtg@220.130.104.15
Options[server_mem]: nopercent,growright,gauge,noinfo
Title[server_mem]: RAM & SWAP 用量監控
PageTop[server_mem]: RAM & SWAP 用量監控
MaxBytes[server_mem]: 560000
kMG[server_mem]: k,M,G,T,P,X
Ylegend[server_mem]: Available MEMORY
LegendI[server_mem]: 實體記憶體可用數量
LegendO[server_mem]: Swap 可用數量
Legend1[server_mem]: RAM
Legend2[server_mem]: Swap
ShortLegend[server_mem]: MB

Language:Big5
WorkDir:/www/web/mrtg

3、監控某服務使用人數
#ee /usr/local/etc/mrtg/user.sh //搜尋某服務的線上人數
內容:
echo `netstat -a | grep telnet|awk '{print $5}'|sort | wc -l|awk '{print$1 - 1}'
`
echo `netstat -a | grep telnet|awk '{print $5}'|cut -d":" -f1|sort| uniq |
wc -l | awk '{print $1 - 1}'` <- 與上行無斷自行連接
UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'`
echo $UPtime
echo segaa.idv.tw <- 修改為自己的hostname

註:也可改為 'netstat -n | grep .23|awk.....'由於 netstat -n不作反查
速度會比較快 ,將telnet改由.23來搜尋某服務的port,但是怕搜尋
.23 會與ip包含.23的資料重複計算請自行注意。

#chmod 755 user.sh //將檔案修改屬性為可執行檔

#ee /usr/local/etc/mrtg/user.cfg 新增mrtg設定檔
### Global Config Options
WorkDir: /www/web/mrtg
Language: big5
Target[segaa.idv.tw_person]: `/usr/local/etc/mrtg/user.sh`
MaxBytes[segaa.idv.tw_person]: 500
Options[segaa.idv.tw_person]: gauge, nopercent, growright
YLegend[segaa.idv.tw_person]: Online Users
ShortLegend[segaa.idv.tw_person]: %
LegendI[segaa.idv.tw_person]: &nbsp; 連線數目 :
LegendO[segaa.idv.tw_person]: &nbsp; 上線人數 :
Title[segaa.idv.tw_person]: WWW 上線人數統計表
PageTop[segaa.idv.tw_person]: <H1> BBS 主機上線人數 </H1>

以上三個設定檔請自行修改工作目錄,再放入自動執行即可製作mrtg圖 :D

監控CPU溫度 ... 不過我的PII 300 無法監控 Orz

轉貼自 http://freebsd.ntut.idv.tw/document/mrtg_cpu.html

MRTG 監控 Server CPU 溫度

Description :

使用 MRTG 監控 CPU 溫度有個好處,除了可以確定 Server 上 CPU 的風扇
有無掛點之外,我們也可以用於無人管理之機房,
若機房內之冷氣出問題或不冷時我們亦可判斷,MRTG 真是網管人員的好幫手。

Step 1.

安裝監控系統之監控軟體,此軟體可查出 CPU 溫度,所以我們安裝它。

#cd /usr/ports/sysutils/xmbmon
#make install WITHOUT_X11="yes"

Setp 2.

寫個 shell script 方便我們 MRTG 抓系統溫度資料。

#vi /xxx-path-xxx/tempmon.sh

#!/bin/sh
/usr/local/bin/mbmon -c 1 -i -T 4 -u -n
exit 0

Setp 3.

設定 MRTG 裡的 .cfg 設定檔,溫度資料輸出環境,
這邊我們使用台灣慣用的攝氏 Centigrade 刻度。

#vi /xxx-path-xxx/ntut.cfg

# ----- temperature ----

Target[temp]: `/xxx-path-xxx/tempmon.sh`
MaxBytes[temp]: 100
Title[temp]: FreeBSD System Temperature
PageTop[temp]: <H1>System Temperature</H1>
Options[temp]: gauge,absolute,unknaszero,growright
YLegend[temp]: Temperature(C)
ShortLegend[temp]: (C)
Legend1[temp]: CPU Temperature
Legend2[temp]: M/B Temperature
LegendI[temp]: CPU Temp.
LegendO[temp]: M/B Temp.

我的 MRTG 溫度表: http://mrtg.segaa.net
引用:http://mrtg.ntut.idv.tw/ntut/temp.html

 

 


« [美食] 蘇錦素食水煎包 | Main | [美食] 雲科素之旅 »

迴響


發表迴響






Powered by LifeType