歡迎您光臨本站 註冊首頁

打造不間斷服務 我用Nagios技術細節

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

打造不間斷服務 我用Nagios技術細節

作為系統管理員,我最擔心那些重要的在線系統在我不知情的情況下停機或者停止網路服務,而且那些發生故障的服務或主機有時候可能要好長一段時間才知道(這種情況多發生在節假日),只要一到節假日,很多系統管理員就緊張不已。要改變這種被動局面,我在這裡推薦網路監控軟體Nagios,個人認為它最大的好處是可以發故障報警簡訊—只要Nagios監控的對象發生故障,系統就會自動發送簡訊到手機上。下面摘錄Nagios官方網站的描述:
Nagios is an open source host, service and network monitoring program. Who uses it? Lots of people, including many big companies and organizations:Nagios是一個用來監控主機、服務和網路的開放源碼軟體,很多大的公司或組織都在使用它。在我來到現在這個機構之前,已經有一個Netsaint(nagios的老版本)在監控那些在線伺服器,但是不完善,後來我立了一個項,部署了新的監控平台nagios把所有的在線伺服器都監控起來了;到目前為止,監控了413個主機和754個服務。

       雖然Nagios十分受用,但配置起來確是麻煩,根據其讀音我給它取可一個中文名-難夠死。基於這樣的原因,我將儘可能詳細地向大家講述我用Nagios的過程以及心得,希望對初學者有所幫助。

(一)  安裝所需軟體

一、安裝Nagios
        Nagios可以運行在各種版本的linux及主流的unix環境,我試過的環境有Redhat linux,Centos,Debian等。在實際的運維中,我是以centos 4來部署nagios的。安裝完操作系統之後,需要把多餘的服務都關掉,只留sshd這個服務。然後用wget下載源碼包nagios-2.6.tar.gz和httpd-2.2.0.tar.gz。接下來先分別安裝軟體,過程如下:
1、  解壓nagios. tar zxvf nagios-2.6.tar.gz
2、  配置nagios. cd nagios ; ./configure –prefix=/usr/local/nagios
3、  編譯nagios. make all
4、 安裝nagios。與別的軟體安裝稍有不同,nagios的安裝要好幾步才能完成。第一步執行make install安裝主要的程序、CGI及HTML文件,第二步執行 make install-commandmode 給外部命令訪問nagios配置文件的許可權,第三步執行 make install-config 把配置文件的例子複製到nagios的安裝目錄。按照安裝嚮導的提示,其實這裡還有一個 make install-init的步驟,它的作用是把nagios做成一個運行腳本,使nagios隨系統開機啟動,這是一個很方便的措施。但本人是一個喜歡把問題簡化的人,沒有執行這樣的操作。
5、 驗證程序是否被正確安裝。切換目錄到安裝路徑(這裡是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var這五個目錄,如果存在則可以表明程序被正確的安裝到系統了。后表是五個目錄功能的簡要說明:


bin Nagios執行程序所在目錄,這個目錄只有一個文件nagios
etc Nagios配置文件位置,初始安裝完后,只有幾個*.cfg-sample文件
sbin Nagios Cgi文件所在目錄,也就是執行外部命令所需文件所在的目錄
Share Nagios網頁文件所在的目錄
Var Nagios日誌文件、spid 等文件所在的目錄

      
二、安裝nagios的插件
         沒有插件,nagios將什麼作用也沒有,插件也是nagios擴展功能的強大武器,除了下載常用的插件外,我們還可以根據實際要求編寫自己的插件。Nagios的插件nagios-plugins-1.4.5在www.nagios.org上可以找到,接著我們用wget下載它。注意:插件與nagios之間的版本關聯不大,不一定非得用nagios-plugins-1.4.5這個版本。下載完成後,安裝它是很簡單的:先執行配置 ./configure –prefix=/usr/local/nagios ,接著編譯安裝 make ; make install即可。這裡需要說明一下的是在配置過程指定的安裝路徑是/usr/local/nagios,而不是/usr/local/nagios-plus,安裝完成後,將在目錄/usr/local/nagios生成目錄libexec(裡面有很多文件),這正是nagios所需要的。
圖1

三、安裝web伺服器apache
        Web服務不是nagios所必須的,但是如果nagios沒有web,查看監控對象的狀態將是非常費事和沒有趣味的事情(只有通過查看nagios的日誌來判斷狀態)。我不願干特無聊的事,所以就花少許時間把web安裝一下。
在unix/linux世界,apache是web伺服器的首選對象,其下載網站為www.apache.org  。建議下載源碼。因為我們不需要很複雜的web功能,因此簡單的執行一下幾個步驟就可以正確的把apache安裝到系統:
1、   解包、配置:tar zxvf httpd-2.2.0.tar.gz ; cd httpd-2.2.0 ; ./configure   –prefix=/usr/local/apache 。
2、   編譯安裝: make ; make install 。
安裝完成後,執行命令 ./usr/local/apache/bin/apachectl –t 檢查一下apache是否正確安裝。

(一)、配置前的處理
        最主要的工作是創建nagios用戶及其屬組,讓nagios的運行用戶為nagios而不是root。再把目錄/usr/local/nagios的屬主設置為nagios,以保證系統的安全。Nagios可以以root用戶運行,但並不推薦這樣做。用下面的步驟來完成上述過程:


1、添加系統帳戶nagios: useradd nagios 就很容易的把用戶和組nagios添加到系統。有的類型的linux發行版添加用戶和組要麻煩一些-需要手動添加組,然後再執行 useradd –g nagios nagios這樣的操作。在實際的運用場景,nagios用戶並沒有必要作為系統用戶來登錄linux系統,因此可以不必設置nagios的用戶密碼,甚至可以把nagios用戶的登錄shell設置成/bin/false。


2、更改目錄屬組:chown –R nagios.nagios /usr/local/nagios 。請注意,有的unix/linux的版本用戶和屬組分隔符號不是「.」,可能會是這樣的形式 chown –R nagios:nagios /usr/local/nagios 。


3、sendmail。看看sendmail是否正常運行?我們需要使用sendmail來發送故障報警信息,所以這個包必須能夠正常工作。Sendmail分為伺服器和客戶端兩部分,有2種發送報警郵件的方式:(1)nagios所在的機器通過sendmail客戶端程序把郵件發送到專門的郵件伺服器,再由郵件伺服器把消息發送到用戶郵箱。(2)郵件客戶端和伺服器端就用nagios所在系統
sendmail。第一種方式用起來非常規範,但更麻煩,例如需要做地址解析、修改郵件伺服器的配置;另外還有一個問題-它還依賴別的系統,增加了故障點和複雜度。第二種方法十分簡單,只需啟動sendmail服務即可,而且它不再依賴於別的系統和服務。在我工作的實際場景,這兩種方法都使用,用專門的郵件伺服器會有發送延遲的情況(因為郵件伺服器要處理很多其他用戶郵件的收發);而直接用sendmail做伺服器和客戶端就異常簡單和方便了。非常幸運的是,幾乎所有的linux/unix發行版都默認安裝sendmail,費了這麼多筆墨,其實就做一個動作-把sendmail服務運行起來。


4、手機簡訊發送工具。我現在的公司是sp,有自己的簡訊通道,直接把發送簡訊的客戶端程序sms_send拷貝到目錄/usr/local/bin/下。如果沒有簡訊下發的網關通道,那怎麼辦呢?網路上有很多簡訊發送的客戶端程序,很有名的就是smsclient,把它下載下來,解包后安裝。不要忘記購買手機modem和手機卡,modem只支持SIM卡而不支持cdma。安裝完smsclient軟體和硬體modem后,測試一下是否正常。如果沒有modem又怎麼辦?辦法還是有的:讓你的手機號可以接受郵件,這需要你去營業廳開通這項功能。簡訊報警功能是最有用的功能,我們不可能成天盯著監視屏幕,也不可能成天接受電子郵件,但我們的手機卻可以24小時在線,只要被監控對象發生故障,馬上就可以收到故障報警簡訊。以前,我很怕放長假,因為最擔心關鍵的設備或服務在假期出故障而自己不知道,所以放假就變成了值班;想必很多網路管理員都有類似的經歷。在我動手部署nagios以前,曾經在網上搜索關於nagios配置的文章,發現絕大部分都沒有介紹使用手機簡訊這個方便的功能,真是遺憾呀!在此,強烈建議啟用nagios的簡訊故障報警功能。

(二)、配置
         配置是nagios最複雜的部分,它涉及到多個文件的配置,為了方便描述,這裡逐個的進行配置。

一、apache 配置。
        我們分兩個步驟來完成這個配置。第一步是修改apache的配置文件httpd.conf,這裡的文件路徑是 /usr/local/apache/conf/httpd.conf 。把apache的運行用戶和運行組改成nagios,往下把下面的行追加到文件httpd.conf的末尾:

#setting for nagios
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">     //Cgi文件所在目錄
    AuthType Basic
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthUserFile /usr/local/nagios/etc/htpasswd    //驗證文件路徑
    Require valid-user
</Directory>

Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">   //nagios頁面文件目錄
    AuthType Basic
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "nagios Access"
    AuthUserFile /usr/local/nagios/etc/htpasswd     //驗證文件路徑
    Require valid-user

        上述文本塊的作用是對nagios的目錄進行用戶驗證,只有合法的授權用戶才可以訪問nagios的頁面文件。第二步是生成用戶驗證文件:只要執行命令 /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery ,就會生成web的合法訪問用戶sery;命令交互執行,需要輸入2次密碼,然後就在文件/usr/local/nagios/etc/htpasswd寫入一行-第一個欄位是剛生成的用戶名,第二個是加密后的密碼,如果還要添加更多的用戶,執行命令 htpasswd 就不需要選項 「-c」,否則就會覆蓋所有已經生成的行。
       配置完成後,執行/usr/local/apache/bin/apachctl –t  檢查apache配置文件是否有語法錯誤,無誤後用/usr/local/apache/bin/apachctl start & 把apache啟動,然後從另外的機器的瀏覽器輸入nagios 的訪問地址(如:http://ip/nagios),如果正常,將出現下圖的登錄驗證窗口等待用戶輸入:
圖2

圖片怎麼貼上去呀,暈了。給出轉載地址,有興趣的去看吧。原始鏈接:http://www.pcmag.com.cn/solution/net/story/200707/51004904_2.shtml
《解決方案》

用hobbit monitor

[火星人 ] 打造不間斷服務 我用Nagios技術細節已經有129次圍觀

http://coctec.com/docs/service/show-post-37310.html