This is an article I translated for TS media for the Chinese Edition of Linux Journal. Original article on Linux Journal: Saucy. 本文為筆者替天充文化翻譯 Linux Journal 中文版之文章,本譯文於2001 年 1 月號凌客誌中見刊。
Saucy
管理工具
作者: Marcel Gagn’e / 譯者:劉自強(TzuChiang Liou)
法蘭西斯,你知道嗎,其實一個系統管理員就像是一家餐廳的老闆或是主廚一樣。因為一個成功的系統管理者不單只是要確保使用者能順利簽入而已,這就像要成功經營一家餐廳不單只要把裝著食物的盤子端上桌一樣。我們必須不斷的尋找、注意那些令人興奮的菜單,來誘惑客人的味覺,同時,放在桌上的酒也必須要是最好的,更重要的是,還要提供最完美的服務品質,甚至要比銀行所提供的服務還周到,不是嗎?
因為不論是客戶或是饕客們,對於餐廳和系統管理員都有許多要求,所以當我們在料理Linux時,就會像我們料理一個全新口味而令人興奮的煎餅一樣,都要準備許多不同的技巧。
歐,對了,講到客戶,法蘭西斯,我們的客人已經到了呢!早安,我的朋友們,請進來坐坐吧!法蘭西斯!上酒!我想1982年的「Pauillac」應該是個不錯的選擇吧?夥伴們,今天,為了向本期雜誌祝賀,我和法蘭西斯正在談有關系統管理的一些事,一起來加入我們的討論吧!如你們所熟知的,系統管理者有部分的任務是要讓許多不同的工作同時都能運行順暢,這包含了一些系統、軟體、硬體及使用者的議題(比如那些喧鬧、叫囂的請求等等,而這也就是您存在的原因啦)。
那我們到底要如何作才能管理好這一切呢?一個受過高度訓練的系統管理者,又要怎樣才能趕得上那些永無止盡的請求呢?關於這些難以回答的問題,我希望待會能提供一些可行的解決方案。
首先,如果您曾使用「KDE」的話,或許已經注意到一個不錯的小工具叫做「Personal Time Tracker」,如果沒用過的話,可以在「Utilities」選單中找到、或是在命令列輸入「karm」來加以執行,這個小程式可以讓我們隨意的啟動、暫停或是重新啟動多個計時器。對於那些需要在同時間要作許多工作的人來說(事實上我們都是這樣的,不是嗎?),這個程式就蠻有幫助的,它能讓我們針對不同的專案來計時,除了可以清楚知道究竟過了多久的時間之外,有些人來可以拿來作付費的依據,總之,這是個滿好用的小程式。你們可以在「圖一」中看看「karm」
執行的樣子。
順帶提一下,雖然「Time Tracker」在「KDE」1.X和2.X版裡都可以找到,但是如果您是用最新的「KDE」2.X版的話,作者有增加了一些新的功能,如在主要的工作之上,可以使用「sub-tasks」來個別地、漸進地追蹤其他次工作,而且非常容易使用。
但常常因為同時有太多事情等著要作,所以有時候我會發現自己的腦袋裡非常混亂,於是乎便想要找一些不同的途徑來幫我組織這樣紛亂的思緒,如果你也有這樣困擾,可以嘗試使用另一個程式–「ThoughtTracker」。
「ThoughtTracker」是個有趣的小程式,我們可以先使用它建立一些看起來沒有次序的清單,接著可以在項目之間作交互連結,以這樣的方式慢慢幫您釐清彼此的關係。從某個角度來看,這個程式有點奇怪,但如果把它當作一個腦力激盪的工具,也許值得您多花點心思來研究一番。以前我曾經說過黃色便條紙是個幫助您組織事物的好工具,但這個程式以更有趣的方式,來呈現相同的工作。它的作者是Marco Getze,我在他的個人網站中還找到另一個不錯的小程式。這個工具叫做「wmpinboard」(見圖二),它是一個「WindowMaker applet」(我在KDE和 WindowMaker中都能順利執行),這是非常小的「dock applet」,看起來就像是記事板一樣,當您點選上面的「ToDo」標籤時,就會出現一個彩色的記事簿,寫完後還可以它釘在板子上。它看起來滿可愛也滿好用的,而且可以依據您桌面的空間,決定顯示的事件多寡。不過我可要先警告你,您所寫的筆記越小越好。
我們知道,任何系統管理者最核心的工作都是在支援,在這過程中,那些年輕、充滿抱負的IT工作者可以藉由處裡這些簡單、困難或是老舊的問題來磨練他們的技巧。其實不只是大公司的系統管理者經年累月、無法改變的一直在作支援的工作,在比較小型的組織中,他們扮演的通常就是支援的角色。工作內容不外是處理問題及一些峰擁而來、永不停止的客戶請求,所以這樣的狀況已經不是黃色便條紙就能解決的了,比較理想的方式是可以透過某種使用者介面(也許可以是瀏覽器)來呈報、描述這些問題,並且可依重要性加以排序、指派合適的人處理或是回應問題。我的夥伴們,這些問題都已經可以得到適當的答案了,現在請舒舒服服的坐下,在法蘭西斯幫替你們斟另一杯酒的同時,就請慢慢的從菜單中選出理想的菜色吧!
第一道菜叫做「IRM」,全名叫做「Information Resource Manager」,顧名思義,就是負責做訊息資源管理。這個程式是由Yann Ramin及Keith Schoenefeld所共同撰寫的,目前是使用「MySQL」當後端資料庫(所以如果要執行的話,您必須使用Apache,並且正確編譯了PHP4的模組)。「IRM」整合了許多概念,首先,可以使用它把公司內所有電腦的相關訊息,依照您所喜歡的型態建立成一個完整的資料庫,這裡面可以包含作業系統類型、記憶體配置、網路卡、IP位址以及其他多有用的資料。而且也可以依照不同的網路裝置設計不同的表單,如集線器、網路卡、轉換器等。除此之外,您還可以依照自己的需求,增加客製化的表單,例如可以設計用來記錄軟體的清單(包含序號、版本等等),也可以藉由增加軟體相關訊息來紀錄電腦更新的資料,如此一來,當您點選電腦時,同時也會出現裡面已安裝的程式(這個功能在紀錄其他作業系統的使用權執照時特別有用)。
如果想要讓這一大串軟硬體列表更有用處的話,可以依據您輸入在資料庫的電腦軟硬體類型,去找一些相關問題解決的建議與規劃,並且也把它鍵入資料庫中(可以點選Request Help來輸入)。如此一來,只要使用系統的追蹤功能,您除了可以把不同的請求指派給專門的人員負責之外,還能持續提供相關的訊息直到問題被解決為止(也就是被標示成為「old」)。
雖然預設的表單比較簡單,但是「IRM」讓您可以建構自己客製化的報表,請記得,因為這個套件使用的是「MySQL」,所以即使這個程式的介面中沒有想要的功能,您也可以撰寫自己想要的查詢機制,例如,如果您希望「cron」能在每天早上8:30之時建立開放性問題請求的報表,就可以自行修改以達成目的。
一般來說,安裝「IRM」是一件輕鬆的事,當然您必須要先執行「Apache」伺服器,而且有編譯適當的模組(也就是PHP和 MySQL),接著,您需要在網路上下載「IRM」的原始碼(所有相關的網址在文章後面的資源列表中都會列出),下面列出幾項安裝「IRM」的步驟,首先要切換到網頁伺服器的預設文件路徑,方法如下:
cd /你的網頁伺服器的文件路徑(上面的路徑可能是 /usr/local/apache/htdocs 或是 /home/httpd/html,這會依據你安裝Apache時的設定而有所不同)
tar -xzvf irm-1.0.2.tar.gz
cd irm-1.0.2
請注意,程式預設值是安裝到「irm-1.0.2」這個目錄下,所以如果您要改變名稱的話,請現在就先修改好。例如,為了讓使用者不需要在瀏覽器中輸入版本號碼,我使用「mv」把目錄的名稱由「irm-1.0.2」改為「irm」,當然,如果您是使用公司內部網路選單提供網址的話,或許有沒有改就不會有太大差別。
接下來要做的是修改目錄裡面的「irm.inc」這個檔案,其中唯一要修改的部分位於檔案上半部其中一行,在這個範例中,我已經把它改成本機網頁伺服器的文件目錄了。需要修改的部分如下:
$root_path="/usr/local/apache/htdocs/irm";
現在我們需要使用「IRM」所附的範例來建立自己的資料庫,這項工作可以藉由把「docs」目錄裏的「database.txt」檔轉入「mysql」中輕易的完成,不過在執行之前,請先使用您喜愛的編輯器在「database.txt」檔案最前面的部分加入一行命令:
use irm;
接著只剩下下面這件事就完成了:
cd docs
mysql -u root -p
最後系統會請您輸入密碼,以確保這個「IRM」的資料結構是針對您設計的。現在可以使用瀏覽器來看看這個「IRM」系統了(http://yoursystem/irm/),在簽入畫面時,輸入使用者名稱和密碼就可以了。圖三顯示的正是「IRM」的追蹤系統執行的樣子。
接下來要向你們介紹的這道菜叫做「Request Tracker」,這個軟體是由「Jesse Vincent」的創意,加上他忠實的夥伴「Deborah Kaplan」和「Mary Alderdice」的幫忙,所共同完成的一個偉大的支援系統。「Request Tracker」和「IRM」不同的是,它不使用完整的清單管理模組方式,而是專門針對支援狀況作查詢(support queue)。基本上,當問題被呈報上來時,這個程式主要專注在它的生命週期上,包含問題請求、任務指派、處理過程、到問題解決結案這整個週期。
「Request Tracker」總共有兩個主要介面(都是使用瀏覽器),一個是管理介面,另外一個是支援查詢介面(您大部分的時間都會花在這裡),您可以使用管理介面來新增查詢項目,例如,針對一般的請求,我通常會建立兩個不同的查詢,其中一個用來處理硬體問題、另一個則偏向應用程式方面,當然,在這個介面中,也可以替使用者建立不同的角色,如系統管理者或是限制他只有「post」的權限等等。
主要的視窗是支援查詢介面,我們可以在這裡檢視所有的請求,並可依個人或是工作的偏好來加以排序、更新或是結束。甚至可以設定在固定時間內重新更新一次查詢,如此一來,您就不會遺漏掉任何一個新的請求了。「圖四」顯示查詢時螢幕所顯示的樣子。
雖然「Request Tracker」同樣也是使用「MySQL」來儲存資料,但因為這個程式全部使用「Perl CGI」來修改資料庫(不是PHP),所以您必須要先安裝幾個「Perl」的模組,這包含了有「MySQL/mSQL DBD」(可以在http://www.mysql.org/downloads/api-dbi.html這裡找到)、「Digest::MD5」以及「CGI.pm」(兩者都可以在http://cpan.perl.org中找到)等相關模組。即使之前您曾經安裝過舊版,在此還是建議您安裝最新版的模組比較好,因為我自己在安裝時就曾經遇到一些問題,後來發現原因正是我的「CGI.pm」比較舊所造成的,所以陳年或許是好酒,但是對軟體而言卻不盡然。
安裝任何一種「Perl」模組的方式都很簡單,大部分的套件或是版本都可以由下面所介紹的過程來順利安裝。從下載原始碼、解壓縮、到建構模組的過程大致如下:
cd /usr/local/temp_dir
tar -xzvf Perl-module-X.XX.tar.gz
cd Perl-module
perl Makefile.PL
make
make test
make install
這真是再簡單也不過了!接著便可以開始安裝「Request Tracker」,首先必須在網路上下載最新版的原始碼(筆者寫作的同時最新版是1.0.4),並把它解壓縮,過程如下:
tar -xzvf rt.tar.gz
cd rt-1.0.4
再來必須使用「rt」這個ID建立一個使用者以及一個群組如下:
adduser rt
接著使用您喜愛的編輯器來編寫「Makefile」檔,修改成為本機的子機碼,因為「Makefile」裡面有完整的說明文件,所以請先詳細閱讀後針對必要的部份修改即可。一般而言,只需要放入您的電腦名稱、以及用來接收支援請求的電子郵件信箱、還有「MySQL」的管理者帳號及密碼(這樣安裝程式才能建立客製化的Request Tracker資料庫)。完成後便可以開始安裝了:
make install
使用瀏覽器來操作這個套件前,請注意還需要在「httpd.conf」檔中加入幾行字,然後重新啟動「Apache」即可,要加入的字如下:
Alias /webrt/ "/path/to/rt/lib/images/" ScriptAlias
/rt/"/path/to/rt/bin/cgi/"
大功告成了,現在如果想要進入「Request Tracker」的管理介面,只要輸入下面的網址即可:
http://rthost.yoursystem.com/rt/admin-webrt.cgi
預設的使用者名稱是「root」,密碼是「webpass」,記得在新增任何其他使用者之前先修改一下。如果想要看支援查詢介面的話,只要把「admin-webrt.cgi」改成「webrt.cgi.」就可以了。
如前所述,這兩個套件都是使用「MySQL」作為他們的資料庫系統,而因為「PostgreSQL」是本餐館的招牌,所以這對你們謙虛的大廚師我而言,代表需要花點時間來安裝和設定「MySQL」。其實有關資料庫的使用通常只是選擇的問題,例如您會選擇比較熟悉的、或是認為比較容易使用、或是支援度比較高、授權比較完整的套件,有太多的議題對選擇都會有影響(甚至是因為您的Linux發行版本光碟中已經預先安裝好也是一個原因)。前一陣子,「MySQL」開始以「GPLed」方式發行,所以授權不再是個議題,而「Red Hat」7.0預計也將把它包在裡面。不過,我仍然希望兩個不同套件(包含我的老友「PostgreSQL」)的作者們能夠持續的發展他們的產品,並增加彼此的相容度。
很快的,時間又快要結束了,臨走之前,我會請法蘭西斯再替你們添一杯酒,不用擔心,後面有計程車正在等著你們呢!嚴肅一點來看今天的討論,支援協助的工作可能會是非常複雜、充滿壓力及挑戰性的環境,然而從另一個角度來看,我認為這樣的環境,正是用來磨練那些未來的系統管理者的一個理想地方,因為快速的步調可以提供大量的學習機會。最後,希望今天介紹的菜色,能幫助您用來減緩步調、重新組織思緒及任務!
讓我再一次向您敬最後一杯酒,祝大家用餐愉快囉!下回,「Chez Marcel.」的大門仍然為您敞開!
Marcel Gange (mggagne@salmar.com) 居住在安大略之Mississauga。在真實世界裡,他是Salmar Consulting Inc.(http://www.salmar.com/) 的總裁,那是一家系統整合和網路顧問公司。他同時也是他一個飛行員、也寫一些科幻小說、同時也是「TransVersions」的編輯(一本科幻和恐怖小說的雜誌,不過馬上就要變成一本文選了)。他酷愛 Linux 及所有 UNIX氣息,甚至還將之融入公眾。事實上,他目前正忙著撰寫於 Linux System Administration: A User’s Guide這本書,相信很快就會由Addison Wesley Longman 出版了。您可以透過mggagne@salmar.com和他聯繫,同時也可以上他的個人網站http://www.salmar.com./來發掘更多有關他的故事。
「Request Tracker」和「IRM」不同的是,它不使用完整的清單管理模組方式,而是專門針對支援狀況作查詢(support queue)
圖說
圖一 「KArm」執行的樣子
圖二 世界上最小的記事簿
圖三 「IRM」執行問題追蹤
相關資源
Perl Module Repository at CPAN:http://cpan.perl.org/
IRM: Information Resource Manager: http://www.redshift.com/~yramin/atp/irm/index.phtml/
MySQL 首頁:http://www.mysql.org/
Request Tracker:http://www.fsck.com/projects/rt/
The WINE Headquarters:http://www.winehq.com/
Wmpinboard 及 ThoughTracker:http://www.tu-ilmenau.de/~gomar/main/index.html/