說明:本機地址爲202.207.178.7php
1、Nagios概述mysql
一、簡介linux
Nagios是插件式的結構,它自己沒有任何監控功能,全部的監控都是經過插件進行的,所以其是高度模塊化和富於彈性的。Nagios監控的對象可分爲兩類:主機和服務。主機一般指的是物理主機,如服務器、路由器、工做站和打印機等,這裏的主機也能夠是虛擬設備,如xen虛擬出的Linux系統;而服務一般指某個特定的功能,如提供http服務的httpd進程等。而爲了管理上的方便,主機和服務還能夠分別被規劃爲主機組和服務組等。ios
Nagios不監控任何具體數值指標(如操做系統上的進程個數),它僅用四種抽象屬性對被監控對象的狀態進行描述:OK、WARNING, CRITICAL和UNKNOWN。因而,管理員只須要對某種被監控對象的WARNING和CRITICAL狀態的閾值進行關注和定義便可。Nagios經過將WARTING和CRTICAL的閾值傳遞給插件,並由插件負責某具體對象的監控及結果分析,其輸出信息爲狀態信息(OK,WARNING,CRITICAL或UNKOWN)以及一些附加的詳細說明信息。web
二、特性sql
由上述說明能夠,Nagios是極富彈性的,其監控功能徹底能夠按照管理員的指望進行。此外,它外提供了對問題的自動響應能力和一個功能強大的通知系統。全部這些功能的實現是基於一個結構明晰的對象定義系統和少數幾個對象類型實現的。apache
1) 命令(Commands)服務器
「命令」用於定義Nagios如何執行某特定的監控工做。它是基於某特定的Nagios插件定義出的一個抽象層,一般包含一組要執行的操做。網絡
2)時段(Time periods)ide
「時段」用於定義某「操做」能夠執行或不能執行的日期和時間跨度,如工做日內的天天8:00-18:00等;
3)聯繫人和聯繫人組(Contacts and contact groups)
「聯繫人」用於定義某監控事件的通知對象、要通知的信息以及這些接收通知者什麼時候及如何接收通知;一個或多個聯繫人能夠定義爲聯繫人組,而一個聯繫人也能夠屬於多個組;
4) 主機和主機組(host and host groups)
「主機」一般指某物理主機,其包括此主機相關的通知信息的接收者(即聯繫人)、如何及什麼時候進行監控的定義。主機也能夠分組,即主機組(host groups),一個主機可同時屬於多個組;
5) 服務(Services)
「服務」一般指某主機上可被監控的特定的功能或資源,其包括此服務相關的通知信息的接收者、如何及什麼時候進行監控等。服務也能夠分組,即服務組(Service groups),一個服務可同時屬於多個服務組;
三、依賴關係
Nagios的強大功能還表如今其成熟的依賴關係系統上。好比,某路由設備故障必然會致使關聯在其上的其它主機沒法被正常訪問,若是不能定義這些設備間的依賴關係,那麼監控系統上必然會出現大量的設備故障信息。而Nagios則經過依賴關係來描述網絡設備的拓撲結構,並可以實如今某設備故障時再也不對依賴於此設備的其它設備進行檢測,從而避免了無謂的故障信息,方便管理員及時定位並排除故障。此外,Nagios的依賴關係還能夠在服務級別上實現,若是某服務依賴於其它服務時,也能實現相似主機依賴關係的功能。
四、宏
Nagios還可以使用宏,而且宏的定義在整個Nagios系統中具備一致性。宏是可以用於對象定義中的變量,其值一般依賴於上下文。在「命令」中定義的宏,相對於主機、服務或其它許多參數來講,其值會隨之不一樣。好比,某命令能夠根據向其傳遞的IP地址的不一樣來監控不一樣的主機。
五、計劃中宕機
Nagios還提供了調度性計劃中的宕機機制,管理員能夠週期性的設定某主機或服務爲計劃中的不可用狀態。這種功能能夠阻止Nagios在調度宕機時段通知任何信息。固然,這也可讓Nagios自動通知管理員該進行主機或服務維護了。
六、軟狀態和硬狀態(Soft and Hard States)
如上所述,Nagios的主要工做是檢測主機或服務的狀態,並將其存儲下來。某一時刻,主機或服務狀態僅能夠是四種可用狀態之一,所以,其狀態可以正確反映主機或服務的實際情況就顯得特別關鍵。爲了不某偶然的臨時性或隨機性問題,Nagios引入了軟狀態和硬狀態。在實際的檢測中,Nagios一旦發現某主機或服務的狀態爲UNKOWN或不一樣於上一次檢測時的狀態,其將會對此主機或服務進行屢次測試以確保此狀態的變更是非偶然性的。具體共要作出幾回測試是能夠配置的,在這個指定次數的測試時段內,Nagios假設此變化後的狀態爲軟件狀態。一旦測試完成後狀態仍然爲新變的狀態時,此狀態就成了硬狀態。
2、安裝配置Nagios
一、安裝前的準備工做
(1)解決安裝Nagios的依賴關係:
Nagios基本組件的運行依賴於httpd、gcc和gd。能夠經過如下命令來檢查nagios所依
賴的rpm包是否已經徹底安裝:
# yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql
mysql mysql-devel mysql-server
說明:以上軟件包您也能夠經過編譯源代碼的方式安裝,只是後面許多要用到的相關 文件的路徑等須要按照您的源代碼安裝時的配置逐一修改。此外,您還得按需啓 動必要的服務,如httpd等。
(2)添加nagios運行所須要的用戶和組:
# groupadd nagcmd
# useradd -G nagcmd nagios
# passwd nagios
(3)把apache加入到nagcmd組,以便於在經過web Interface操做nagios時可以具備權限:
# usermod -a -G nagcmd apache
二、編譯安裝nagios:
# tar zxf nagios-3.3.1.tar.gz
# cd nagios
# ./configure --sysconfdir=/etc/nagios --with-command-group=nagcmd
--enable-event-broker
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
1)爲email指定您想用來接收nagios警告信息的郵件地址,默認是本機的nagios用戶:
# vi /usr/local/nagios/etc/objects/contacts.cfg
email nagios@localhost #這個是默認設置
1)在httpd的配置文件目錄(conf.d)中建立Nagios的Web程序配置文件:
# make install-webconf
2)建立一個登陸nagios web程序的用戶,這個用戶賬號在之後經過web登陸nagios認證時所用
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
以上過程配置結束之後須要從新啓動httpd:
# service httpd restart
三、編譯安裝nagios-plugins
nagios的全部監控工做都是經過插件完成的,所以,在啓動nagios以前還須要爲其安裝官方提供的插件。
# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install
四、配置並啓動Nagios
1)把nagios添加爲系統服務並將之加入到自動啓動服務隊列:
# chkconfig --add nagios
# chkconfig nagios on
2)若是上面的語法檢查沒有問題,接下來就能夠正式啓動nagios服務了:
# service nagios start
3)配置selinux和防火牆
#service iptables stop
#setenforce 0
4)經過web界面查看nagios:
http://202.207.178.7/nagios
登陸時須要指定前面設定的web認證賬號(nagiosadmin)和密碼(123456)。
3、nagios目錄介紹:
bin Nagios 可執行程序所在目錄
/etc/nagios Nagios 配置文件所在目錄
sbin Nagios CGI 文件所在目錄,也就是執行外部命令所需文件所在的目錄
share Nagios網頁文件所在的目錄
libexec Nagios 外部插件所在目錄
var/Nagios 日誌文件、lock 等文件所在的目錄
var/archives Nagios 日誌自動歸檔目錄
var/rw 用來存放外部命令文件的目錄
歡迎批評指正!