月份彙整: 2006 年 11 月

自動錯誤回復

這個部份我們還不是做得很好,嚴重的錯誤還是要人跑到機房去處理,不過為了節省跑機房的時間,我們還是做了一些努力。

我們去買了一個可以用電話控制電力的裝置,當電話打進去之後,系統會詢問密碼,密碼正確以後就可以用電話按鈕選擇把四個port中的任何一個port打開或關閉。因此我們會把最容易當機的系統接在這個裝置上,透過關閉電源再打開來復原系統。我們通常都是用這招來對付ADSL的ATUR(小烏龜),說起來還蠻有效的,反正現在大家都有手機,收到系統回報網路斷線之後,就撥一撥號碼、按按幾個鍵,系統就自動恢復正常了,真是物超所值(好像才四千塊錢吧)。

 信望愛站為了系統的穩定,裝了兩條網路線,還分屬於不同的ISP ,因此理論上可以做到很好的fail over功能。目前我們是透過script去控制 default route自動偵測設定的方式來做到基本的斷線備援,但是DNS的fail over部份還沒有完成,目前還是得要靠人力手工來處理,未來應該會慢慢的把這部份納入系統之中。不過這部份真的是比較困難,要寫程式的話也必須寫得比較複雜,因此短期內可能還不會完成。

閱讀全文 自動錯誤回復

自動錯誤偵測

當然,理想上最好系統能夠做到完整的自動錯誤偵測功能,不過事實上因為各樣的因素影響,我們都只會去偵測最重要的錯誤,然後進行回報罷了。

前一篇我已經談過了自動錯誤回報系統,現在來談談怎樣進行錯誤偵測。信望愛站的錯誤偵測功能,主要是針對主機的網路服務是否正常、線路是否暢通與UPS是否已經啟動這三部份來運作。至於偵測的方法,則是利用ping,以及開啟socket連線的方式來完成。

 主機的網路服務當然就是透過 socket連線的方式來偵測,網路暢通與否則是透過ping gateway的方式來偵測,至於UPS的話,我們是透過設定一台不連接UPS的IP分享器,然後定期去ping那台IP分享器,用以決定市電是不是已經停電了。這樣的方式比傳統利用RS-232或SNMP協定的方式更為簡單便宜,不需要購買特殊的UPS。

我們利用  php 寫成的  ping script: ping.txt

我們利用php寫成的 socket檢測程式:detser.txt

希望對大家有幫助。 

閱讀全文 自動錯誤偵測

來談談自動錯誤回報

    信望愛站的狀況特殊,所有的技術人員都不在機器旁邊上班,所以我們非常需要系統能夠自動回報錯誤的狀況,並且能自遠端處理掉最常發生的棘手問題。因為時間的關係,我先講一下我們錯誤回報的機制。

我們是採用手機簡訊的方式來進行錯誤回報,本來我們是透過「智邦生活館」的簡訊服務,後來改用「台灣簡訊」的服務,途徑是透過我們自己撰寫的php程式來呼叫這兩個服務的網站。台灣簡訊的網站比較容易控制,智邦生活館的系統還需要先騙過asp程式才能運作。不過後來我們發現PHS的電子郵件可以用來發免費簡訊,因此我們在高雄的技術人員也開始利用PHS的電子郵件來進行自動錯誤回報的動作。不然有時候網路發生瞬斷,一下子就發出了好幾封簡訊,那我們可是會非常痛心的(每一通都是好幾塊錢台幣ㄟ!而且是自己的錢,不是公款)。

錯誤回報的方式,就是設定伺服器的Cron,每隔一段時間就去檢查某個功能是否能夠正確的運作,如果不能正常運作,就選定一條可以通的網路,把發簡訊的命令送往相關的伺服器。對了,為了經濟的因素,我們也還設定了「不准重複發送」的機制,免得技術人員虧本虧慘了。又因為我們常常是多個技術人員一起關心幾台機器,所以系統在檢查到機器由錯誤狀況復原後,也會發送「系統ok」簡訊給每一個技術人員,以免大家掛心或採取重複的維修工作。

台灣簡訊的發送 script 在 bbc.txt

智邦生活館的發送 script 在 bbc_url.txt

PHS 就用 /bin/mail -s "要送的簡訊"  xxxx@phs.com.tw  就可以了

不過記得要先有那些服務的帳號才行 。

閱讀全文 來談談自動錯誤回報

完全備份時間更改

我把信望愛站完全備份的時間改到 週一凌晨。這是因為我們常常需要取得最新的備份資料,依照目前週日凌晨備份的方式處理,備份完畢之後,tjy會在週日晚上將硬碟取走更換新硬碟,這樣該週如果系統當掉,抓回來的往往是前一週的資料,因此我想配合tjy週日晚上換備份硬碟的時程,將系統完全備份時間改為週一凌晨,這樣以後出問題也好取得最新資料。

閱讀全文 完全備份時間更改

遠距會議的工具

信望愛站的技術組,每週都要進行遠距會議,以前我們都用
openh323 的openmcu(http://www.openh323.org/)配合netmeeting
一類的系統來開會,最多也可以有七、八個人一起開會。

以前我們對外告訴別人,都說我們開的是「視訊會議」,事實上我們
發現視訊的用途不大,在目前的頻寬限制下,影像還會造成聲音的delay。會議中溝通的主角主要還是聲音。所以我們很早就改用純聲音開會了。不過這類的系 統還是常常會被防火牆擋掉,所需要的頻寬也有點大,我們中間只要有網路環境差一點的人(比較差的ISP,或者上傳頻寬只有64K)上線,其他人就要忍受很 差勁的開會品質。

最近我們改用新推出一種新的VoIP(Voice over IP)套件:skype (http://www.skype.com/) 來開會。

這種套件可以用每個link大約33k 左右的頻寬來講網路電話,
使用peer to peer 技術,聲音清晰,效果良好,也能夠穿透防火牆。

最重要的,是提供多人會議的功能,只要主持會議的人的頻寬夠,
就可以享受最多五個人同時開會的服務(缺點就是五個人的限制實
在是太少啦,信望愛站技術組開會時,晚到的人還不能開咧!
真希望這個限制能夠打開,即使花錢我們也願意購買)。

除了skype這類以電腦為主的VoIP套件外,也有一些硬體解決方案存在。這種東西長的很像電話,只要接上網路就可以打免費或者是便宜的網路電話。這些硬體的解決方案跟目前使用者的使用習慣很接近,
理論上會大大的流行,無奈目前價格還是太高,高到一般人不想買回家試一試(連我這種喜歡網路科技產品的人也不想花錢買回家玩)。未來倒是可以注意一下,很可能這種東西將會取代目前的電話系統喔! 閱讀全文 遠距會議的工具

最近的一些發展

剛剛看了過去的文章,我發現我們目前使用的工具還是跟2001年使用的工具一樣:Apache、PostgreSQL、PHP、Proftpd。不過撰寫的程式複雜程度已經不是當年可以比擬。

這幾年來主要的程式發展成果就是一套網頁產生器,一套留言版、公佈欄的複合程式等,可以到信望愛站ftp site中取得
ftp://ftp.fhl.net/pub/FHL/CGI/

另外,除了以上的網頁程式之外,我們還做了一套CBOL計畫,這套系統裡面處理了中文與希伯來文、希臘文的混合顯示,算是難度比較高的系統。

近幾年來我們主要都是使用PHP作為開發工具,不過最近也有同工認為我們該慢慢的走向JavaServer Page ,而其實PHP5的語法,也跟Java慢慢的一致起來了,所以我們也很有可能開始架設TomCat,試著轉換開發工具。

在資料庫方面,我們一向用PostgreSQL當成主要的資料庫,不過我們為了架設搜尋引擎,所以被逼著不得不架設MySQL資料庫(因為目前Open Source的搜尋引擎,大多以MySQL為主要的資料庫)。既然架都架了,總也要花點時間來瞭解一下,所以我想未來信望愛站應該是PostgreSQL 與MySQL並重的狀況。 閱讀全文 最近的一些發展

Web-BBS

近幾年來,信望愛BBS站最大的改變,就是引進了Web-BBS。我們摒棄CGIC,改用PHP來開發。因為用C來寫網頁程式實在是太痛苦了,PHP這種工具比較容易入手,也比較適合於開發網頁程式。

我們的Web-BBS的開發原則就是「不更動原來的BBS程式」,資料結構完全採用telnet BBS的設計。不過既然要開發Web-BBS,我們還是提供了有限度的多媒體功能,讓使用者可以上傳多媒體檔案。在介面設計上,我們採用「範本」的方式, 將使用者介面與程式主體分開,甚至可以提供「多介面」的展示方式。主體程式可以由 ftp://ftp.fhl.net/pub/FHL/BBS 中取得。

我們另外也加上了一些個人性的網頁服務,提供個人的公佈欄與blog等功能。這些服務都是希望讓我們自己的眼界可以由telnet BBS跳脫出來,看到網頁世界的需求。

目前,信望愛BBS更根本的問題是我們用的 telnet BBS 已經太過老舊,實在需要加以更新,當然,連帶的Web-BBS的核心也可能需要跟著修改,這是我們未來要努力的目標與方向。 閱讀全文 Web-BBS

檔案系統的完整性

基本上,我們還是靠L5來做檔案系統的安全性防護,不過以往我們都是透過軟碟片來記載檔案的「指紋」,現在則是因為系統檔案變多了,軟碟片已經裝不下,只好另外想辦法了。

目前,我們改用USB隨身碟來做「可防寫的指紋記載媒體」。價格當然比磁碟片高了不少,不過因為一時也想不到什麼其他更好的代用品,只好這樣處理了。 閱讀全文 檔案系統的完整性

安全措施簡介

雖然,隨著技術的進步,網路設備已經漸漸的變成以Switch為主流,不過監聽與入侵的技巧仍然日新月異,一不小心仍然會被入侵成功。自從好幾年前被入侵 過一次之後,信望愛站到目前並沒有被入侵成功過(或者被入侵而我們不知不覺?呵呵!),但是我們可以由系統記錄中知道入侵的意圖是從來沒有停過。所以,網 路安全的維護仍然是我們很重要的課題。

以往,我們以為換了Switch就比較不容易被監聽,後來,才發現利用「man in the middle」技術照樣可以監聽。使用防火牆可能可以減少入侵的機會,但是如果port 80、25、110、143跑的程式有問題,用防火牆也沒用,所以:「處處加密、時時補破洞」成為我們維護網路安全的基本哲學。還好,這幾年來網路防護的 免費技術與免費資源也增加了,所以我們可以有足夠的武器與入侵者對抗。

進系統,我們用putty取代telnet,要拿資料,我們用 winscp取代ftp。更進一步的,收信(IMAP或POP3)、發信(smpt),我們也都使用ssl加密。目前Fedora的郵件套件都可以直接使 用IMAP、POP3、smtp over SSL的技術,我們用起來也就不必像以前一樣,必須透過一些特殊的tunnel程式來協助,可以輕鬆的直接設定即可。

對一般使用者來說,好像還不是非常習慣網頁的SSL保密機制,不過如果使用webmail等系統,還是很有可能會造成密碼外洩。不管怎樣,我們還是加上了SSL的保護,並且鼓勵使用者用加密的連線來收信。

最後,因為有許多使用者是共用著信望愛站,所以如果任何一個帳號被破解、入侵,都有可能對其他使用者帶來災難。所以我們一向不隨便開放PHP、CGI等程 式功能。不過面對使用者的需求,我們好像也不能永遠都拒絕開放這些比較有危險性的功能,所以我們未來將開始研究user mode linux等jail技術,希望把一些比較危險的使用者關進虛擬機器中,這樣就可以保護其他的使用者不受影響了。 閱讀全文 安全措施簡介

作業系統的選擇

RedHat宣布不繼續推出免費的OS套件後,信望愛站技術組真的花了一段時間來研究下一步該怎麼走下去。我們考慮過換成FreeBSD,換成其他 Linux套件,當然也考慮過購買商業版的RedHat作業系統套件。不過,最後我們還是選擇了Fedora,目前我們使用Fedora Core 2。

老實說,我們是因為捨不得放棄已經熟悉的系統,所以才繼續使用與RedHat關係密切的Fedora Core 2。不過我們之前一版的作業系統套件是RedHat 7.3,與Fedora Core 2 版本差距很遠,所以我們由Fedora Core 1就已經開始測試新系統的穩定度,瞭解新系統的管理與運作方式,真正下定決心要全面更換,則是Fedora Core 2推出之後。

目前,我們才剛換系統不久,也說不上非常瞭解Fedora Core 2。不過初步覺得這個系統比RedHat 7.3更好用,其中yum這個套件可以補足rpm的缺乏,提供更有效的套件管理功能,這算是讓我們覺得很滿意的事情。其他的部分,則是需要整個技術團隊花 時間去瞭解與熟悉的了。

未來,我們會花時間去研究一下 user mode linux 這類的jail技術。因為我們居然發現機櫃空間已經不夠用了,我們可能會需要一、兩台機器做些其他的用途(有時僅僅是希望把危險的服務與其他系統隔離起 來),但南、北兩機房的機櫃都已經滿了。而且為了一點小需求,就使用一台伺服器好像有點誇張,所以我們將花一點時間去研究jail技術,希望未來在我們的 主要伺服器中可以跑幾台虛擬的機器,這樣我們的硬體就具有更高的使用效率了。

機櫃為什麼會滿了呢?其實是因為我們沒有料想到有那麼一天我們需要那麼多的伺服器,所以為了省錢,我們買的(其實那些機器根本就是我們自己拼裝的)機器都是U數比較高的(比較厚的),當時省了錢,現在就反過來逼著我們要去學習怎樣架設、管理虛擬機器了。呵呵! 閱讀全文 作業系統的選擇