本格堅守四不一沒有政治主張:不知道、不清楚、不瞭解、不明白、沒有我的事!
[ start | index | login ]

2006-06-22 #1

Created by Ada. Last edited by Ada, 3 years and 254 days ago. Viewed 7,856 times. #78
[diff] [history] [edit] [rdf]
labels
Parent:Perl
Parent:Tips

定時監控你的 ATU-R

目的

本文指在提供對 ADSL Router 的內部系統狀態的定時監控與記錄的工具及其說明,在懷疑網路狀態異常時可以提供作為異常處理的參考資料。

授權與免責條款

  1. 本文採用創意公用授權條款 (Creative Commons License) 之「 >>姓名標示─非商業性─相同方式分享 2.5 台灣版 」授權方式。
  2. 本文不對文內所提及之各項操作所造成的人員或軟、硬體傷害負任何民、刑事責任。

系統需求

要使用本文所介紹的工具前,必須先確保所處系統擁有以下的資源:
  1. 安裝 Perl 5.8.x:為達到跨平台的目的,選擇使用 Perl 5.8.x 作為資料擷取工具。
  2. 安裝 RRDTool 1.2.x:擷取到的 ATU-R 相關資訊將被置入 RRDTool 資料庫中,並透過 RRDTool 進行繪製工作。
  3. 熟悉定時排程工具的使用:為了自動、定時向 ATU-R 擷取資料,系統管理人必須熟悉所用系統的定時排程工具。

安裝 Perl 5.8.x

Windows 平台 - 透過 ActiveState 的 ActivePerl 提供 Perl 支援

  1. 透過瀏覽器連線到 >>ActiveState 站台,下載 >>ActivePerl MSI 安裝檔
  2. 下載後請雙擊該檔進行安裝,安裝時請選擇完整安裝。
  3. 安裝完畢後請於命令列視窗下執行以下指令以檢驗 ActivePerl 是否已正確安裝完成。
    C:\> perl -v

Linux 或其他作業平台

  1. 通常 *nix 系統皆已預設安裝 Perl 主環境,若尚未安裝請自行透過所在平台之套件管理系統進行安裝 Perl 主系統。
  2. 請於 console 視窗中執行以下指令以檢驗 Perl 是否已正確安裝完成。
    ~ $ perl -v

安裝 Perl 模組

  1. 如果使用的是 Winodws 及 ActiveState Perl 環境,請參考以下圖示安裝相關模組。
    1. 安裝 File::Basename
      C:\> ppm install File-Basename-Object
    2. 安裝 File::Spec
      C:\> ppm install File-Spec
    3. 安裝 Mail::Sendmail
      C:\> ppm install Mail-Sendmail
    4. 檢查模組是否已安裝
      C:\> ppm query Mail-Sendmail
  2. 如果是非 Windows 系統時,可透過平台之套件管理系統(建議方式,可由套件管理機制得知模組是否需要更新)或直接透過以下指令於 console 中安裝以下 Perl 模組:
    1. LWP ( 檔案名稱 libwww-perl ) - 需 5.64 以上版本
      perl -MCPAN -e "install LWP"
    2. File::Basename - 似乎已內建
    3. File::Spec - 似乎已內建
    4. Mail::Sendmail ( 檔案名稱 Mail-Sendmail )
      perl -MCPAN -e "install Mail::Sendmail"
    5. 檢查模組是否安裝 - 使用 cpan shell
      1. 透過以下方式可以啟動 cpan shell
        $ cpan
      2. 在 cpan shell 中透過以下指令檢查模組的 INST_VERSION 屬性,若無此屬性時即表示未安裝該模組。
        cpan> m Mail::Sendmail
      3. 也可以透過套件管理機制進行檢核。

安裝 RRDTool

Windows 平台

  1. >>RRDTool 官方網站 下載 >>RRDTool 1.2.10 for Windows
  2. 將下載檔案解壓縮到 C:RRDTool 目錄中備用
  3. 為了方便執行 rrdtool ,可將設 path 環境變數或將 rrdtool.exe 複製到 %WINDIR%\System32 目錄下
    C:\> copy C:\RRDTool\rrdtool\Release\rrdtool.exe "%WINDIR%System32"
  4. 到 C:RRDTool 目錄下執行 install.cmd 以便安裝 RRDs 模組,依畫面指示按兩次任意鍵後即完成安裝
    C:\RRDTool> install.cmd

Linux 或其他作業平台

  1. 多數平台的套件管理系統已提供 RRDTool 套件包。
  2. 尚未提供套件包之平台可於 >>RRDTool 官方網站 自行下載、編譯、及安裝。
  3. Gentoo Linux 使用者可到 >>RRDTool 中文 Ebuild 下載中文修改版 EBuild。
  4. 其他平台使用者可參考 >>酷學園討論區 >>[分享]RRDTool 中文版安裝經驗 自行修改原始碼。

設定網路環境

Windows 平台

  1. 透過瀏覽器瀏覽 >>http://192.168.1.1 網頁,這是目前多數 ATU-R 管理頁面的所在住址。若可以瀏覽則網路環境已 OK ,否則即必須進行 IP Alias 設定。
  2. 透過 [網路連線] -> [TCP/IP] -> [內容] -> [進階] -> [IP 設定] -> [新增 IP 位址 ] 等步驟即可進行新增 IP 位址的動作。
    新增 IP 位址
  3. 若設定正確,則可以 ping 通 ATU-R 和 www.hinet.net 等 Internet 網站。
    同時 ping 通 ATU-R 與 Internet
  4. 也可同時瀏覽 Internet 及 ATU-R 狀態頁。
    同時瀏覽 Internet 及 ATU-R

Linux 或其他作業平台

  1. 請依各平台規定自行完成網路設定
  2. 或:安裝第二張網路卡

取得命令稿

  1. Tecom AR4031B:請下載 >>AR4031B.rar。(不負責任報告:據說 Alcatel T07A(W) 也可以使用本命令稿)
  2. Alcatel SpeedTouch 340:請下載 >>SpeedTouch340.rar
  3. 下載後請自行解壓縮到指定目錄(例如 Windows 下解到 C:\ATUR-Stat;Linux 下解到 ~/ATUR-Stat ),不管那一個壓縮檔內都應該有 4 個 .pl 檔。

修改命令稿

不管是 AR4031B.pl 或是 ST340.pl 中,都因為提供了警示郵件(僅檢查下載頻寬設定值)的功能而必須做些小設定。以下以 ST340.pl 做說明,AR4031B.pl 修改方式相同。
  • 修改前建議先備份以免改錯無法復原!
AR4031B.pl
# 寄信用 EMail Server - 請換成各自的 ISP 郵件主機
my $smtpServer = "msa.hinet.net";
# 寄件人 - 寄件人資料, <> 內是 EMAIL, <> 前是人名
my $from = 'admin <admin@your.domain.name>';
# 收件人 - 收件人資料, <> 內是 EMAIL, <> 前是人名
my $to = 'admin <admin@your.domain.name>';
# 信件主旨 - 可以修改成自己需要的主旨,不過沒測試過中文主旨是否正確。
my $subject = "Mail Alarm";
# 信件編碼 - 可依系統環境修改 charset 之值!
my $contentType = 'text/plain; charset="cp950"';

# 門檻值 - 設定下載頻寬低於多少時發送通知信件,單位是 Kbps # 此例是設定當下載頻寬低於 2000 Kbps ( 2M bps ) 時發出警示 my $rateThreshold = 2000;

# 初始變數設定 - ATU-R 狀態頁之相關資訊,曾修改 ATU-R IP 者必須一併修改此處設定 my $statUrl = 'http://192.168.1.1/P_status.html'; my $authUrl = '192.168.1.1:80'; # ATU-R 網頁認證識別字串,可透過 getRealm.pl >>http://192.168.1.1/P_status.html 方式取得 my $realm = 'SPEEDTOUCH 340 Configuration Web Server'; # ATU-R 網頁認證使用者,ST340 似乎多數為空白。 my $user = ''; # ATU-R 網頁認證密碼,12345 是 CHT 最早的預設值 my $passwd = '12345';

資料擷取測試

  1. 完成前述修改動作後,即可透過 ST340.pl 或 AR4031B.pl 測試可否正確擷取 ATU-R 之狀態。
    Windows 平台
     C:\ATUR-Stat> perl AR4031B.pl 
    Linux 平台
     ~/ATUR-Stat $ perl AR4031B.pl 
  2. 如果安裝過程一切正確的話,應該會在同一個目錄中產生一個 AR4031B.rrd(或 ST340.rrd )檔。因為擷取的時間點錯誤的關係,所以請先暫時移除這個 rrd 檔,等正式執行時還會重新產生這個檔案。

資料擷取

系統管理者必須設法讓 ST340.pl 或 AR4031B.pl 定時向 ATU-R 擷取資料並保存後,才得用於繪製變化圖。

Windows 平台

  1. 透過建立工作排程達到定時擷取資料的目的
    建立工作排程
  2. 此處透過建立多項排程來達到定時擷取資料的需求
    建立多項排程
  3. 定時執行的重要關鍵
    設定定時執行
  4. 其他設定
    其他設定

Linux 平台

  1. 透過 crontab 服務即可定時進行資料擷取的動作
  2. 請將資料擷取時間定為每個小時的 00,10,20,30,40,50 分進行資料擷取
    00,10,20,30,40,50 * * * * /usr/bin/perl /home/sysmon/AR4031B.pl
  3. 初期請注意 AR4031B.rrd / ST340.rrd 檔更新時間是否依前述設定完成更新。若未更新的話表示資料擷取作業沒有正確啟動。

繪圖

於收集資料一段時間後,即可進行繪圖工作。

Windows 平台

  1. 透過以下指令即可輸出 AR4031B(ST340 有對應的繪圖命令稿)的頻寬狀態異動折線圖
    C:\> perl C:\ATUR-Stat\AR4031B-Bandwidth.pl
  2. 透過以下指令即可輸出 ST340(AR4031B 也有對應的繪圖命令稿)的線路狀態異動折線圖
    C:\> perl C:\ATUR-Stat\ST340-State.pl
  3. 不論何時進行繪圖操作,命令稿會將擷取時間鎖訂在 00,10,20,30,40,50 等實際擷取資料的時刻。

Linux 平台

  1. 透過以下指令即可輸出 ST340(AR4031B 也有對應的繪圖命令稿)的頻寬狀態異動折線圖
    ~/ATUR-Stat $ perl ST340-Bandwidth.pl
  2. 透過以下指令即可輸出 AR4031B(ST340 也有對應的繪圖命令稿)的線路狀態異動折線圖
    ~/ATUR-Stat $ perl AR4031B-State.pl
  3. 不論何時進行繪圖操作,命令稿會將擷取時間鎖訂在 00,10,20,30,40,50 等實際擷取資料的時刻。

繪圖資料區間

  1. 預設的繪圖區間有過去 12 小時 (12h)、過去一日 (1d)、過去一週 (1w)、過去一個月 (1m)、以及過去一年 (1y),可從前述繪圖命令執行結果中看出每一張圖的資料區間為何。
  2. 想要產生更多/少的資料區間時,可修改該繪圖檔中的下行敘述
    my @period = qw { 1y 1m 1w 1d 12h };
    例如欲改成繪製過去一天 (1d)、一週(1w)、二週(2w)、三週(3w)、四週(4w) 的圖時則修改成:
    my @period = qw { 1d 1w 2w 3w 4w };

繪圖參數的修改

若需要修改圖檔抬頭、線條、背景等等的設定時,可修改繪圖命令稿中之相關設定(更多細節請參考 RRDTool >>rrdgraph 內之說明)。
my @graphSettings = ( '-t AR4031B Bandwidth',
	'-v Kbps',
	'-l 0',
    "DEF:RATE_DOWNSTREAM=$rrdFile:RATE_DOWNSTREAM:MAX",
    "DEF:RATE_UPSTREAM=$rrdFile:RATE_UPSTREAM:MAX",
    'COMMENT: ----- ITEM NAME ---------------------- -MAX-  -AVG-  -MIN-  -LAST- \n',
    'LINE2:RATE_DOWNSTREAM#0000ff:Downstream Rate (Kbps)\:            ',
    'GPRINT:RATE_DOWNSTREAM:MAX:%5.0lf',
    'GPRINT:RATE_DOWNSTREAM:AVERAGE:%5.0lf',
    'GPRINT:RATE_DOWNSTREAM:MIN:%5.0lf',
    'GPRINT:RATE_DOWNSTREAM:LAST:%5.0lf\n',
    'LINE2:RATE_UPSTREAM#00ff00:Upstream Rate (Kbps)\:              ',
    'GPRINT:RATE_UPSTREAM:MAX:%5.0lf',
    'GPRINT:RATE_UPSTREAM:AVERAGE:%5.0lf',
    'GPRINT:RATE_UPSTREAM:MIN:%5.0lf',
    'GPRINT:RATE_UPSTREAM:LAST:%5.0lf\n' );
  • 修改檔案格式
    請修改 my $imgFormat = "PNG"; 之 PNG 字樣,有效的輸出種類為 PNG, SVG, EPS, PDF 等 4 種( RRDTool 1.2.x 限定 )
  • 修改抬頭
    請修改 '-t AR4031B Bandwidth' 內之 AR4031B Bandwidth 字樣,Windows 平台中請勿輸入任何中文訊息。
  • 修改 Y 軸上的抬頭
    請修改 '-v Kbps' 內之 Kbps 字樣,Windows 平台同樣不可輸入任何中文訊息。
  • 修改線條寬度/種類
    每一個資料源可以用 3 種不同粗細的線條或以區塊填滿方式顯示。請修改 'LINE2:RATE_DOWNSTREAM#0000ff:Downstream Rate (Kbps)\: ', 中的 LINE2 字樣,可用的選擇有 LINE3(最粗),LINE2,LINE1(最細)以及 AREA(區塊填滿)。
  • 修改顏色
    欲修改資料源的顏色時,請修改 'LINE2:RATE_DOWNSTREAM#0000ff:Downstream Rate (Kbps)\: ' 中的 #0000ff 字樣,這是 RGB 三原色的組合。

其他注意事項

  1. Windows 平台中未提供中文輸出功能;Linux 平台下可自行參考 >>[分享]RRDTool 中文版安裝經驗 說明增加中文輸出功能。
  2. 特別注意每一組的 .pl 檔必須放在一起且勿任意更名。原因是在建立 .rrd 檔時是以 .pl 檔檔名為命名依據,例如 ST340.pl 會建立 ST340.rrd 檔。而繪圖命令稿則是直接讀取命令稿所在目錄下對應的 .rrd 檔,例如 ST340-State.pl 會讀取 ST340.rrd 檔。
  3. 如果曾經自行修改過 ATU-R 的 IP 時,請自行修改命令稿中對應的 IP 位址。
  4. 在修改線條寬度/種類時,請牢記後面繪製的圖形會蓋到前面已繪製完成的圖形上,因此如果先繪製線條後又設定區塊填滿的話,那線條部分有可能顯示不出來。

其他型式的 ATU-R 怎麼辦?

  1. 只要瞭解 Perl、RRDTool、及正規表示式的話,那就可以自行修改相關的 Perl 檔以便建立 .rrd 檔、擷取適當資訊以及繪製區間圖。

追加更新 - 提供 SNMP 資料擷取功能

  1. 這是新增了透過 SNMP 擷取 ATU-R 系統名稱及上線時間的修改版本。
  2. 模組需求:
    1. Windows 平台上需增加安裝 Net-SNMP 模組:
      C:\> ppm install Net-SNMP
    2. Linux 平台上請透過套件管理系統安裝 Net-SNMP 模組。
  3. 取得令命稿:
    1. Tecom AR4031B / Alcatel T07A(W):>>AR4031B-snmp.rar
    2. Alcatel Speed Touch 340:>>SpeedTouch-snmp.rar
  4. 使用方式:同原始版本即可。
no comments | post comment
【搜尋】

【求助】

  1. 如何指定格式化的文字
  2. 如果字太小
【SnipSnap 強化方案】
>>SnipIt 誕生
>>功能討論
>>功能確認

< March 2010 >
SunMonTueWedThuFriSat
123456
78910111213
14151617181920
21222324252627
28293031

【RSS 訂閱】




【雜想分類區】
美食小吃
生活雜想
職場遭遇戰
休閒娛樂
台北居、大不易
錯誤正在橫行中
廣告異聞錄
神秘事件簿
電影
健康管理
資訊電腦
科高地球
手機應用
新聞馬後炮
動漫世界
管理眾人之事
專案管理
歌曲歌詞
嘸爽啦!
部落格記錄
惡搞裝笨耍白爛
歧視非IE用戶之網頁
關於我
CSS
RSS

【與 Ada 聯絡】

【有趣的 Blog】
>>什麼都破,什麼都爛,什麼都不奇怪
>>酪梨壽司的日記
>>去吧!錯誤特攻隊!
>>隨裕而安
>>荒謬大觀
>>網路黑貓
>>瑞克梅添涼 DALIREAL
>>鳥毅的blog
>>潛艦 - >>反垃圾信
>>窮留學生懶人食譜
>>約耳談軟體

【網路貼紙】
XHTML 1.0 validated CSS validated
RSS 2.0 validated Powered by SnipSnap
Powered by Gentoo Linux
網站使用 UTF-8 編碼 網站所在地-台灣
Onion Club 洋蔥酷樂部 Powered By PostgreSQL
我是台灣人

【網路同盟】
怠墮管理者同盟

【PCDVD 七八區 RSS】




【PCDVD 疑雜區 RSS】




【網路串連】











【參訪團】

snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt