就是技術組用來開會紀錄與寫小抄的地方
這個部份我們還不是做得很好,嚴重的錯誤還是要人跑到機房去處理,不過為了節省跑機房的時間,我們還是做了一些努力。
我們去買了一個可以用電話控制電力的裝置,當電話打進去之後,系統會詢問密碼,密碼正確以後就可以用電話按鈕選擇把四個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週日晚上換備份硬碟的時程,將系統完全備份時間改為週一凌晨,這樣以後出問題也好取得最新資料。
| « | 十一月 2006 | » | ||||
|---|---|---|---|---|---|---|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | ||