如何利用MRTG監控Apache

2009-09-02 08:57:00 哇哇 0 0

apache_mrtg_01.gif

MRTG是個很簡易的圖表工具,若你有一台對外服務的Linux主機的話,那麼可以畫一些圖表來當作監控唷!若主機真的有異常也會即時反應在圖表上,讓你可以快速的發掘問題,圖表看久之後也可以知道服務的曲線是怎樣的跑,對於整體的負載狀況也比較好掌控。

最近我把家裡能監控的網路都監控了,snmp搭配上mrtg對網卡的流量的監控是最基本的,網路上也很多資訊我也不不多做說明。我把主機的流量、動物機的流量與IP分享器的流量都監控,未來打算把我所有的主機都一起監控,看很多圖表的感覺還頗爽的XD,最近加入的是對於Apache的監控。
Apache能監控的項目其實頗多的,重點是看你想要得知怎樣的資訊,以及該如何解析各項數據的意義,最基本利用server-status就可以監控下列幾項:

  • Total Accesses
  • Total kBytes
  • CPULoad
  • Uptime
  • ReqPerSec
  • BytesPerSec
  • BytesPerReq
  • BusyWorkers
  • IdleWorkers

首先要開啟apache的server-status,修改apache的設定檔如下:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 其他限定可以讀取的IP
</Location>

主要還是開啟server-status的設定,然後限制可以讀取的來源主機,基本上設定127.0.0.1就好了,若你有遠端的主機需要監控,記得在遠端主機加上自己電腦的IP,設定完成後reload或restart網頁服務即可。此時你就可以瀏覽 http://主機/server-status 查看目前apache的狀態,仔細看看這是很有用的資訊唷!而要用mrtg收集資訊是要瀏覽 http://主機/server-status?auto 來擷取一些網頁秀出的內容。(mrtg基本設定不再介紹,有問題還是可以發問。)

參考網路的一些文件,在系統內我們寫入一個小小的perl(假設命名apache.pl)
#!/usr/bin/perl
#
# apache-stats
use LWP::Simple;

my $stats=get("http://127.0.0.1/server-status?auto");
$stats =~ s/.*BusyWorkers: (\d+)//;
my $b = $1;
print "$b\n";
$stats =~ s/.*IdleWorkers: (\d+)//;
print $b + $1 . "\n";
print "\n\n";

# 依照我個人需求只抓取Busy和Idle的數量,全部數量則為Busy+Idle

mrtg的設定檔如下:(假設命名apache.cfg)
Target[apache-server]: `/usr/local/bin/apache.pl`  #perl的位置
MaxBytes[apache-server]: 100000
Options[apache-server]: growright,gauge,nopercent,dorelpercent,transparent, avgpeak, pngdate
Title[apache-server]: Apache Statistics
PageTop[apache-server]: <h1>Active Apache child processes</h1>
WithPeak[apache-server]: dwmy
YLegend[apache-server]: No. of child processes
ShortLegend[apache-server]: processes
LegendI[apache-server]:  active:
LegendO[apache-server]:  total:

設定完成之後就可以執行mrtg測試一下是否正常囉!(網頁輸出路徑的設定就不介紹囉!)
mrtg apache 執行三次之後若沒有錯誤訊息就代表OK囉!把mrtg的執行加入crontab每五分鐘跑一次就可以囉!

apache_mrtg_02.gif

我主要的設定是參考
http://wooga.drbacchus.com/mrtg-and-apache
但是apache可以監控的還非常的多,譬如以下網站就有很多元化的使用方式,這些設定頗不賴的唷!
http://howto.aphroland.org//HOWTO/MRTG/ApacheWithMRTG

能利用mrtg監控的東西還真是不少,下面網站還監控了apache使用的memory和mysql,只要用他寫好的程式就可以。
http://www.land10.nl/apachestatus/
最後大推的下面網站,全部設上去應該超過100個圖表可以即時監控吧!
http://howto.aphroland.org//HOWTO/MRTG/FrontPage
更多資訊請參考:
最新超值旗艦機開箱
比螺旋燈泡還省電的迷你 NAS
26800mAh筆電行動電源