最近殺信殺的煩死了,我已經有「自動砍信」設定了,還是覺得有點煩。某天睡覺突然想到有些人可能不會設定自動砍信,所以我想把信望愛站的信件凡標注「垃圾」的都直接砍掉。當然,這可能發生誤砍,所以我先在學校的機器上測試,如果成功(沒有太多誤砍)…..那我就要在信望愛站上動手了。 閱讀全文 我有一點想把垃圾信都直接砍了
分類彙整: admin
雙專線DNS管理程式
信望愛站早就有雙專線備援的功能(透過routing table的設定),但是一直缺乏DNS的相關配套措施。導致某一條專線斷掉時,還需要手動更改DNS設定。為了解決這問題,這兩天我把相關的程式寫好。
要做到動態切換DNS,就必須降低TTL,減少使用者端與dns的cache時間,也要增加slave DNS來取資料的頻率。這些部份,我們全部使用 tag 替換的技術來處理。目前我已經把這套程式建置於life這台機器上,與自動偵測系統整合,當系統偵測到斷線,就會自動切換 routing table並切換DNS設定。 相關的程式在named.1.0.tgz
技術人員請注意,以後修改DNS請不要針對標準的 /var/named 底下的檔案修改,而要針對/root/named/data底下的檔案修改,修改完執行dns.php 就可以自動更新 dns。至於最討厭的序號問題,程式已經幫大家解決了,嘿嘿!
自動錯誤回復
這個部份我們還不是做得很好,嚴重的錯誤還是要人跑到機房去處理,不過為了節省跑機房的時間,我們還是做了一些努力。
我們去買了一個可以用電話控制電力的裝置,當電話打進去之後,系統會詢問密碼,密碼正確以後就可以用電話按鈕選擇把四個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 就可以了
不過記得要先有那些服務的帳號才行 。
遠距會議的工具
信望愛站的技術組,每週都要進行遠距會議,以前我們都用
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套件外,也有一些硬體解決方案存在。這種東西長的很像電話,只要接上網路就可以打免費或者是便宜的網路電話。這些硬體的解決方案跟目前使用者的使用習慣很接近,
理論上會大大的流行,無奈目前價格還是太高,高到一般人不想買回家試一試(連我這種喜歡網路科技產品的人也不想花錢買回家玩)。未來倒是可以注意一下,很可能這種東西將會取代目前的電話系統喔! 閱讀全文 遠距會議的工具
作業系統的選擇
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數比較高的(比較厚的),當時省了錢,現在就反過來逼著我們要去學習怎樣架設、管理虛擬機器了。呵呵! 閱讀全文 作業系統的選擇