對許多人而言,Windows是他們比較習慣的平台,若要他們為了學習shell入門再去學習如何安裝一套作業系統,可能是不小的工程。還好,redhat的推出了Cygwin,這是Windows平台上的一種模擬Unix環境,在此簡便的環境下可以簡單的與linux作接觸,或許會另很多人覺得linux不再是遙不可及的東西。
cygwin.com這
個網站上很多的提示,主要包括安裝以及更新。在安裝的過程中,會出現選擇你所要安裝套件的選單,如果你所用的網路不是很快,你可能只會想裝一些容量比較少
的套件。你可以這樣作,因為即使你在使用時發現你所想要的套件一開始沒有被安裝,你可以隨時回來作更新,以及安裝的動作,非常的方便。
此
外,在linux底下的軟體通常都有一些依存性。比方說你要安裝甲軟體之前,你必需先裝乙軟體,因為甲軟體有使用到乙軟體的程式庫。這在linux底下是
一件理所當然的事情,因為linux是由很多人所開發的,所以當一個軟體在開發之前,開發者總會式著去找找看,是否有些功能以經別人早就完成了的。如果有
的話當然就直接拿來用,不用從頭開始寫。對於程式開發者來說,要從linux世界這個大寶庫裡找到一些東西來使用,再加上自已的idea成為一個新的軟體
是一件很有趣的事情。但是對於使用者來說,安裝時難免會覺得盤根錯節,無法理出頭緒。
不過這個問題,對於cygwin來講,在大多數的情況是不存在的。只要你選擇了你想安裝的軟體,這個軟體的關連項目也主動會被一起安裝。
安裝法如下:
-
連至 cygwin.com,如下圖所示:
-
點按畫面右方的InstallCygwinnow,然後選"開啟"以執行線上安裝程式
-
接著點選安裝套件的mirror站台,你可以選擇一個離你近一點的,像我身在日本,我就選擇了這一個網站,個人覺得這個網站速度蠻快的,有興趣的讀者或許可以式式。點按view選欲安裝的套件,如下圖所示:
-
-
-
-
-
安裝完成之後,可以在開始的程式集裡找到選項:
-
點選之後,cygwin就被執行了。
此時,你應該就可以在cygwin裡頭使用linux的一些功能了。
不
過,此時重頭西才正要開始,我們該如何將nagios給放到cygwin上去運作呢。這個問題我困擾了很久。因為很麻煩,要修改一些東西,我花了一整個晚
上的時間式著將這件事情作的完美,不過很可惜的,還是沒有辦法作的很好,而且遇到蠻多的挫折的。途中我甚至想過,乾脆不要寫這一段了。
最
主要的問題點在於,cygwin裡沒有使用者的概念。它是與windows共用使用者的帳戶。所以如果你想要創建一個使用者,你必須使用windows平
台上的工具,來新增user。然後你也沒有辦法使用su的命令,對於熟悉linux的模樣的人來說,的確是有點難以適應,而且,nagios的原始設計
裡,也是需要區隔使用者,使用者族群,命令執行者,及命令執行者族群的。所以在cygwin上安裝並編繹nagios時,要修改很多地方。
這些過程太麻煩了,所以我覺定割愛不寫出來。取而代之的是這本書裡的光碟。它有一個目錄是專門讓你在cygwin裡可以直接運作nagios的。
這
個東西是努力了一整晚的產品。我把這個玩意作好之後,也發現了它的價值。它讓我在寫書的過程裡,可以很快速的進行一些測式。而不需要像已前一樣需要連接到
公司裡的大型主機,省了很多時間,也是一個很好的學習環境。我把它安裝在我的小黑ibm筆記型電腦上,甚至不需要連上internet,nagios的功
能依然可以進行運作。(日本的咖啡店裡有網路的好象不太多,我又很喜歡沒事往咖啡店裡跑,邊喝咖啡邊寫作,所以這個功能對我來說蠻方便的)
不過,想先說明的是,這個目錄裡的nagios有點不健全,因為我把它定義在用作學習用的工具。希望大家介由他真正的了解nagios。然後在真正的linuxserver上進行運用。
接
下來簡單的說明如何在你的windows電腦上讓nagios運行的細部過程。不過有點可惜的是,我只在windows2000及xp上測式過這一個套
件,如果你還在使用win98,winme,或是其他的作業系統的話,那真的很抱歉了,我無法保証它在這些機器上的運作情形。你應該先去找一台可用的機器
在來買這一本書。
安裝流程:
0 在開始之前-----確定使用者
在cygwin的視窗裡,請看一下上圖,我們會發現有一行文字:
Administrator@KBMJ-IASISZD034 ~
這一行文字的意義,在@之前的是代表當前的使用者,在@之後的
KBMJ-IASISZD034
~是電腦的名稱。
在cygwin裡的使用者可以在/etc/passwd 以及 /etc/group
這兩個檔案裡找到。這兩個檔案是在安裝之時,由
C:\cygwin\etc\postinstall\passwd-grp.sh.done這
一個程式集所建立的。這個程式集所作的工作,說穿了,就是將windows裡現有的user及group把它拿到cygwin裡來使用。就好像我前面說
的,cygwin裡沒有平常的linux的su,及useradd等等的命令,它是與windows平台共用使用者管理,所以nagios安裝之時,就很
理所當然的將目前的windows平台裡所存在的使用者與群組,給建立在/etc/passwd
以及 /etc/group這兩個檔案裡面。
或許有人想問,如果我想建立一個使用者,該怎麼辦。很簡單,你必須要使用windows的控制台裡,新增使用者與群組的功能。之後,在到cygwin裡來,將/etc/passwd
以及 /etc/group這兩個檔案幹掉之後,從新執行
/etc/postinstall/passwd-grp.sh.done
這一個指令集,你剛剛所建立的使用者,就會被增加到/etc/passwd
以及 /etc/group這兩個檔案裡面了。
這一張光碟裡的nagios,所預設的使用者與群組分別是
Administrator與
Administrators,因為這是每一台電腦所應該會有的使用者與群組。如果你是這一個使用者,也就是你的cygwin的指令行,@前的文字是的
Administrator話,那就可以開始以下的流程。如果不是的話,你可能要登出之後以
Administrator的身份登入。或者是執行已下的步驟之後,將設定檔裡與user及group有關的部份,改成你現在正在使用的user及group。
1在cygwin的視窗裡,打入以下的命令:
$ mkdir -p /usr/local/nagios
與
$ mkdir -p /etc/rc.d/init.d/
如圖所示:
2使用以上的命令建立了folder之後,會了作業上的方便,我們啟動檔案總管
為了說明的方便,我假設你的cygwin是安裝在c槽的cygwin的目錄之下。打開檔案總管後,在地址列打入
C:cygwinusrlocal agios
然後將光碟裡,nagios-cygwin的folder底下的內容,全部copy到這裡來,完成之後,應該是會像下面的畫面一樣。
然後依照同樣的步驟,將nagios-cygwin-script/start裡的檔案的,copy到C:cygwinetc
c.dinit.d的目錄之下。
然後依照同樣的步驟,將nagios-cygwin-script/apache裡的檔案的,copy到C:cygwinetcapache的目錄之下。
注意:
在C:cygwinetcapache這個目錄底下,已經存在了一個httpd.conf的檔案了。以上這個動作,是要將這個已經存在的檔案用光碟裡的檔
案覆寫過去。如果你已經對這個httpd.conf作過一些編輯及設定了,不想讓光碟裡的httpdconf來覆寫的話,你可能必需手動編輯這個檔案,將
下列的這一段:
ScriptAlias/nagios/cgi-bin/"/usr/local/nagios/sbin/"
Alias/nagios"/usr/local/nagios/share/"
<Directory"/usr/local/nagios/sbin/">
Options ExecCGI
AllowOverrideAuthConfig
Order allow,deny
Allow from all
</Directory>
<Directory"/usr/local/nagios/share/">
Options None
AllowOverrideAuthConfig
Order allow,deny
Allow from all
</Directory>
貼到適當的位置上。
如果你發現你沒有C:cygwinetcapache這一個目錄的話,可能是你在安裝cygwin時沒有選擇apache的選項,請重新執行setup.exe,然後將這一個套件補上。
3 在一切都copy完之後,回到cygwin的畫面,執行
$ /usr/sbin/apachectl configtest
的命令,測式一下apache的設定檔是否無誤。
4 執行
$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
的命令,測式一下nagios的設定檔是否無誤。
5啟動apache
$ /usr/sbin/apachectl graceful
5啟動nagios
$ /etc/rc.d/init.d/nagios start
6打開ie,然後在地址列裡輸入:
http://127.0.0.1:84
確認一下是否能夠看到apache的畫面
7在地址列裡輸入:
http://127.0.0.1:84/nagios 確認是否能夠看到nagios的畫面。
如果一切順利的話,nagios的畫面,就會出現在你眼前的視窗了。