130 likes | 263 Views
WangBin ’ s 工作進度. OverView: APServer Http Hits 流量統計 & MRTG 、 SNMP Research 快速搜尋 亞卓鎮、村 程式 : http://ap.edutowns.educities.org/php/search.php DataBase Table 表. MRTG 簡介. Multi Router Traffic Grapher 使用 SNMP 協定向 Router 取得流量數據並加以記錄、產生圖表
E N D
WangBin’s 工作進度 OverView: • APServer Http Hits 流量統計 & MRTG、SNMP Research • 快速搜尋 亞卓鎮、村 程式: http://ap.edutowns.educities.org/php/search.php • DataBase Table 表
MRTG 簡介 • Multi Router Traffic Grapher • 使用 SNMP 協定向 Router 取得流量數據並加以記錄、產生圖表 ── 所以一般 Server 只要加裝 SNMP Agent 也可使用 MRTG 加以統計。
MRTG 簡介 • 一般人的誤解: MRTG 只是流量統計軟體 !! 事實上 MRTG 在程式的本質上只是圖表繪製軟體,只要丟數據給它,它都可以做出統計圖表來。
Http Hit Statistic • 1.架設 IP Filter 過濾所有封包,並對 PORT 80 加以統計 • 2.用 Perl 寫一 Script 向 IP Filter 捉取封包統計數據, 並排列成 MRTG 可接受的格式。 • 3.MRTG 每 5 分鐘觸發此 Perl 程式得到 Port 80 的數據。
MRTG & SNMP • 目前MRTG 統計架構: EduTownsDB -> WebServer1(SNMP) WebServer1.http->WebServer(local) WebServer1.other->WebServer1(SNMP) APServer1.http->APServer1(local) APServer1.other->WebServer1(SNMP) Candidate->WebServer1(SNMP)
MRTG & SNMP • 因 MRTG 每隔一段間格就要執行一遍,且繪製圖表也需花費大量 CPU 運算,所以較好的解決法是獨立成一台 MRTG Server(用一般 PC即可)而每台 Server透過 SNMP 協定傳遞數據給此 MRTG Server 。
Resourse • http://www.mrtg.org • http://faq.mrtg.org • http://net-snmp.sourceforge.net/ • http://coombs.anu.edu.au/~avalon/ip-filter.html
搜尋亞卓鎮、村 • http://ap.edutowns.educities.org/php/search.php • 完成度 80% ── 剩下主要為美工部分與資料庫內部資料問題。
搜尋程式設計 • 主要困難部分為 SQL 語法的設計 • 如尋找 所在:桃園縣,級別:不限,關鍵字為 “中央” 的亞卓鎮。 SQL 語法為: SELECT A.CityNo AS city,A.SchoolID AS id,A.SchoolName AS name FROM School AS A,SchoolInfo AS B WHERE B.Active='1' AND A.SchoolID=B.school_id AND A.SchoolName LIKE '%中央%' AND A.CityNo=3
搜尋程式設計 • 尋找 所在:桃園縣,級別:不限,關鍵字為 “中央” 的亞卓村。 SQL 語法為: SELECT C.class_id AS cid,C.class_name AS name,C.alias AS alias,A.CityNo AS city,A.SchoolID AS id,A.SchoolName AS sname FROM School AS A,SchoolInfo AS B,ClassInfo AS C WHERE C.school_id=A.SchoolID AND A.SchoolID=B.school_id AND (C.class_name LIKE '%中央%' OR C.alias LIKE '%中央%') AND A.CityNo=3
MySQL比對問題 • 搜尋「功」、「閱」等含有 “\”字元的關鍵字時會找不到。 • 因為: “成功高中”LIKE “%成功%” => false 對 MySQL 而言 “%成功%” *成?%
MySQL 比對問題 • 一些例子: “成功高中”LIKE “%成功%” => false “成功高中”LIKE “%成?% => true “成功高中”LIKE “%成功\%” => false “成功\高中”LIKE “%成功\\\%” => true 我目前是採用第二種解決法、但有時會有找到多餘資料的問題,最根本的解法法應該是第四種方式。
DataBase Table • Etforum ; 討論區 DataBase • EduTowns => • Board; 佈告欄 • gbook; 村留言版 • gbook_school; 鎮留言板