站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

MRTG-Apache Busy Idle Servers Load

前言

本篇實作為利用 Apache ExtendedStatus 功能,讓 Apache 即時顯示伺服器狀態並利用文字模式網頁瀏覽器 lynx 去抓取 BusyServers、IdleServers 的欄位值來畫出 MRTG 圖形;在開始玩本次實作以前請先確定您的 SNMP 及 MRTG 已安裝並正確定設定,若無可參考本站 MRTG-主機網卡流量統計 文章。

實作環境

安裝及設定

步驟1.開啟 Apache ExtendedStatus 功能

Apache 內建 server-status 及 server-info 二種可即時觀看伺服器狀態及模組的方法,Apache 設定檔預設是將這些選項功能關閉 (註解掉),要使用很簡單只要把註解符號 (#) 拿掉,另外記得設定只允許內部的網段去查看即可 (避免安全性問題)

 #vi /usr/local/etc/apache/httpd.conf
 ExtendedStatus On                     //預設值此行為註解掉請將註解符號 (#) 拿掉
 ###server-status 伺服器狀態資訊
 <Location /server-status>
     SetHandler server-status
     Order deny,allow
     Deny from all
     Allow from 192.168.1.             //僅允許內部網段 192.168.1 能觀看此數值
 </Location>

先測試一下是否可觀看到 Apache Server Status,成果 http://Your_FQDN/server-status

 可在加上如下參數 (ex.http://Your_FQDN/server-status?refresh 為每秒更新一次)
 notable -- 用來支援無法顯示 Table 的 Browser
 refresh -- 每 1 秒更新一次畫面
 refresh=n -- 每 n 秒更新一次畫面
 auto -- 顯示 apache 的狀態資料

關於 Apache Server Status 內各欄位的解釋,因為在 [twbsd.org 13.5 Apache 伺服器狀態與管理] 內已有詳細說明,故不在此多述。

步驟2.安裝 lynx 套件

在進行抓取 Apache Server Status 內 BusyServers、IdleServers 欄位值之前我們先安裝文字模式網頁瀏覽器 lynx 已便屆時可順利抓取需要的欄位值。

 #cd /usr/ports/www/lynx             //切換至安裝路徑
 #make install clean                 //安裝套件並清除安裝過程中產生不必要檔案

測試抓取 Apache Server Status 內 BusyServers 欄位值,環境說明如下

 #lynx -dump 'http://192.168.1.13/server-status?auto' | grep BusyServers: | cut -c 13-15

建立 busy-idle.sh 內容就是抓取 BusyServers、IdleServers 欄位值 (編輯完後記得權限要設為 755 哦)

 #vi /usr/local/etc/mrtg/busy-idle.sh
 #!/bin/sh
 BUSY=`lynx -dump 'http://192.168.1.13/server-status?auto' | grep BusyServers: | cut -c 13-15`
 IDLE=`lynx -dump 'http://192.168.1.13/server-status?auto' | grep IdleServers: | cut -c 13-15`
 echo $BUSY
 echo $IDLE
 echo '0'
 echo '0'

步驟3.建立 MRTG 設定檔 busy-idle.cfg

抓取 BusyServers、IdleServers 欄位值後便利用 MRTG 把抓取的數值畫出圖來了,MRTG 設定檔 busy-idle.cfg 內容如下

 Target[apache]: `/usr/local/etc/mrtg/busy-idle.sh`                   //抓取 Apache BusyServers、IdleServers 欄位值
 Options[apache]: growright,gauge
 Title[apache]: Apache Load analysis -- www.weithenn.org              //網頁的 title (Browser 左上方文字)
 PageTop[apache]: <H1>Apache Load Analysis -- www.weithenn.org</H1>   //流量網頁內的標題
 MaxBytes[apache]: 120                                                //流量圖表的最大值
 YLegend[apache]: Busy Idle Server                                    //流量圖的 Y 軸顯示名稱
 ShortLegend[apache]: Servers
 LegendI[apache]: Busy Servers
 LegendO[apache]: Idle Servers
 Legend1[apache]: Busy Servers
 Legend2[apache]: Idle Servers
 WorkDir:/usr/local/www/data/analysis/mrtg/                           //存放產生圖檔的路徑
 Language:big5                                                        //使用語系

步驟4.產生檔案

產生檔案,下列指令執行 2 ~ 3 次到沒錯誤訊息後就代表完成了

 #/usr/local/bin/mrtg /usr/local/etc/mrtg/busy-idle.cfg  

步驟5.寫入排程

將如下指令寫入排程內以便達成自動產生流量圖表 (每五分鐘執行一次)

 #crontab -e
 */5 * * * *   /usr/local/bin/mrtg /usr/local/etc/mrtg/busy-idle.cfg     //每五分鐘執行一次 

參考

[twbsd.org 13.5 Apache 伺服器狀態與管理]

[OHaHa's學習心得 lynx: 文字模式網頁瀏覽器]

[Monitoring Apache Status using MRTG]

[ NET-SNMP Tutorial -- MRTG]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com