Linux下Nagios的安裝與配置方法

這篇文章主要講解了“Linux下Nagios的安裝與配置方法”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux下Nagios的安裝與配置方法”吧!

成都網(wǎng)絡公司-成都網(wǎng)站建設公司成都創(chuàng)新互聯(lián)公司10年經(jīng)驗成就非凡,專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站設計,成都網(wǎng)頁設計,成都網(wǎng)頁制作,軟文發(fā)稿廣告投放平臺等。10年來已成功提供全面的成都網(wǎng)站建設方案,打造行業(yè)特色的成都網(wǎng)站建設案例,建站熱線:028-86922220,我們期待您的來電!

一、Nagios簡介

Nagios是一款開源的電腦系統(tǒng)和網(wǎng)絡監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機狀態(tài),交換機路由器等網(wǎng)絡設置,打印機等。在系統(tǒng)或服務狀態(tài)異常時發(fā)出郵件或短信報警第一時間通知網(wǎng)站運維人員,在狀態(tài)恢復后發(fā)出正常的郵件或短信通知。
Nagios原名為NetSaint,由Ethan Galstad開發(fā)并維護至今。NAGIOS是一個縮寫形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻譯為圣徒,而"Agios"是"saint"的希臘表示方法。Nagios被開發(fā)在Linux下使用,但在Unix下也工作得非常好。

主要功能

•網(wǎng)絡服務監(jiān)控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
•主機資源監(jiān)控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin)
•可以指定自己編寫的Plugin通過網(wǎng)絡收集數(shù)據(jù)來監(jiān)控任何情況(溫度、警告……)
•可以通過配置Nagios遠程執(zhí)行插件遠程執(zhí)行腳本
•遠程監(jiān)控支持SSH或SSL加通道方式進行監(jiān)控
•簡單的plugin設計允許用戶很容易的開發(fā)自己需要的檢查服務,支持很多開發(fā)語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
•包含很多圖形化數(shù)據(jù)Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
•可并行服務檢查
•能夠定義網(wǎng)絡主機的層次,允許逐級檢查,就是從父主機開始向下檢查
•當服務或主機出現(xiàn)問題時發(fā)出通告,可通過email, pager, sms 或任意用戶自定義的plugin進行通知
•能夠自定義事件處理機制重新激活出問題的服務或主機
•自動日志循環(huán)
•支持冗余監(jiān)控
•包括Web界面可以查看當前網(wǎng)絡狀態(tài),通知,問題歷史,日志文件等

二、Nagios工作原理

Nagios的功能是監(jiān)控服務和主機,但是他自身并不包括這部分功能,所有的監(jiān)控、檢測功能都是通過各種插件來完成的。
啟動Nagios后,它會周期性的自動調(diào)用插件去檢測服務器狀態(tài),同時Nagios會維持一個隊列,所有插件返回來的狀態(tài)信息都進入隊列,Nagios每次都從隊首開始讀取信息,并進行處理后,把狀態(tài)結(jié)果通過web顯示出來。
Nagios提供了許多插件,利用這些插件可以方便的監(jiān)控很多服務狀態(tài)。安裝完成后,在nagios主目錄下的/libexec里放有nagios自帶的可以使用的所有插件,如,check_disk是檢查磁盤空間的插件,check_load是檢查CPU負載的,等等。每一個插件可以通過運行./check_xxx –h 來查看其使用方法和功能。
Nagios可以識別4種狀態(tài)返回信息,即 0(OK)表示狀態(tài)正常/綠色、1(WARNING)表示出現(xiàn)警告/黃色、2(CRITICAL)表示出現(xiàn)非常嚴重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深黃色。Nagios根據(jù)插件返回來的值,來判斷監(jiān)控對象的狀態(tài),并通過web顯示出來,以供管理員及時發(fā)現(xiàn)故障。

四種監(jiān)控狀態(tài)

Linux下Nagios的安裝與配置方法



再說報警功能,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)問題不能報警那就沒有意義了,所以報警也是nagios很重要的功能之一。但是,同樣的,Nagios 自身也沒有報警部分的代碼,甚至沒有插件,而是交給用戶或者其他相關開源項目組去完成的。

Nagios 安裝,是指基本平臺,也就是Nagios軟件包的安裝。它是監(jiān)控體系的框架,也是所有監(jiān)控的基礎。

打開Nagios官方的文檔,會發(fā)現(xiàn)Nagios基本上沒有什么依賴包,只要求系統(tǒng)是Linux或者其他Nagios支持的系統(tǒng)。不過如果你沒有安裝apache(http服務),那么你就沒有那么直觀的界面來查看監(jiān)控信息了,所以apache姑且算是一個前提條件。關于apache的安裝,網(wǎng)上有很多,照著安裝就是了。安裝之后要檢查一下是否可以正常工作。

知道Nagios 是如何通過插件來管理服務器對象后,現(xiàn)在開始研究它是如何管理遠端服務器對象的。Nagios 系統(tǒng)提供了一個插件NRPE。Nagios 通過周期性的運行它來獲得遠端服務器的各種狀態(tài)信息。它們之間的關系如下圖所示:

Linux下Nagios的安裝與配置方法

Nagios 通過NRPE 來遠端管理服務

1. Nagios 執(zhí)行安裝在它里面的check_nrpe 插件,并告訴check_nrpe 去檢測哪些服務。
2. 通過SSL,check_nrpe 連接遠端機子上的NRPE daemon
3. NRPE 運行本地的各種插件去檢測本地的服務和狀態(tài)(check_disk,..etc)
4. 最后,NRPE 把檢測的結(jié)果傳給主機端的check_nrpe,check_nrpe 再把結(jié)果送到Nagios狀態(tài)隊列中。
5. Nagios 依次讀取隊列中的信息,再把結(jié)果顯示出來。

三、實驗環(huán)境

Host NameOSIPSoftware
Nagios-ServerCentOS release 6.3 (Final)192.168.1.108Apache、Php、Nagios、nagios-plugins
Nagios-LinuxCentOS release 5.8 (Final)192.168.1.111nagios-plugins、nrpe
Nagios-WindowsWindows XP192.168.1.113 NSClient++


Server 安裝了nagios軟件,對監(jiān)控的數(shù)據(jù)做處理,并且提供web界面查看和管理。當然也可以對本機自身的信息進行監(jiān)控。

Client 安裝了NRPE等客戶端,根據(jù)監(jiān)控機的請求執(zhí)行監(jiān)控,然后將結(jié)果回傳給監(jiān)控機。

防火墻已關閉/iptables: Firewall is not running.

SELINUX=disabled

四、實驗目標

Linux下Nagios的安裝與配置方法

五、Nagios服務端安裝

5.1 基礎支持套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel

# rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel

Linux下Nagios的安裝與配置方法

如果系統(tǒng)中沒有這些套件,使用yum 安裝

# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

5.2 創(chuàng)建nagios用戶和用戶組

# useradd -s /sbin/nologin nagios# mkdir /usr/local/nagios# chown -R nagios.nagios /usr/local/nagios

Linux下Nagios的安裝與配置方法

查看nagios 目錄的權限

# ll -d /usr/local/nagios/

Linux下Nagios的安裝與配置方法

5.3 編譯安裝Nagios

# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz

# tar zxvf nagios-3.4.3.tar.gz

# cd nagios

# ./configure --prefix=/usr/local/nagios

Linux下Nagios的安裝與配置方法

Linux下Nagios的安裝與配置方法

# make all

Linux下Nagios的安裝與配置方法

Linux下Nagios的安裝與配置方法

# make install

Linux下Nagios的安裝與配置方法

# make install-init

Linux下Nagios的安裝與配置方法

# make install-commandmode

Linux下Nagios的安裝與配置方法

# make install-config

Linux下Nagios的安裝與配置方法

# chkconfig --add nagios

# chkconfig --level 35 nagios on

# chkconfig --list nagios

Linux下Nagios的安裝與配置方法

5.4 驗證程序是否被正確安裝
切換目錄到安裝路徑(這里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 這五個目錄,如果存在則可以表明程序被正確的安裝到系統(tǒng)了。Nagios 各個目錄用途說明如下:

binNagios 可執(zhí)行程序所在目錄
etcNagios 配置文件所在目錄
sbinNagios CGI 文件所在目錄,也就是執(zhí)行外部命令所需文件所在的目錄
shareNagios網(wǎng)頁文件所在的目錄
libexecNagios 外部插件所在目錄
varNagios 日志文件、lock 等文件所在的目錄
var/archivesNagios 日志自動歸檔目錄
var/rw用來存放外部命令文件的目錄

5.5 安裝Nagios 插件

# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz

# tar zxvf nagios-plugins-1.4.16.tar.gz

# cd nagios-plugins-1.4.16

# ./configure --prefix=/usr/local/nagios

# make && make install

Linux下Nagios的安裝與配置方法

Linux下Nagios的安裝與配置方法

5.6 安裝與配置Apache和Php

Apache 和Php 不是安裝nagios 所必須的,但是nagios提供了web監(jiān)控界面,通過web監(jiān)控界面可以清晰的看到被監(jiān)控主機、資源的運行狀態(tài),因此,安裝一個web服務是很必要的。
需要注意的是,nagios在nagios3.1.x版本以后,配置web監(jiān)控界面時需要php的支持。這里我們下載的nagios版本為nagios-3.4.3,因此在編譯安裝完成apache后,還需要編譯php模塊,這里選取的php版本為php5.4.10。

a. 安裝Apache

# wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz

# tar zxvf httpd-2.2.23.tar.gz

# cd httpd-2.2.23

# ./configure --prefix=/usr/local/apache2

# make && make install

Linux下Nagios的安裝與配置方法

若出現(xiàn)錯誤:

Linux下Nagios的安裝與配置方法

則在編譯時入加 --with-included-apr 即可解決。

b. 安裝Php

# wget http://cn2.php.net/distributions/php-5.4.10.tar.gz

# tar zxvf php-5.4.10.tar.gz

# cd php-5.4.10

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs

Linux下Nagios的安裝與配置方法

# make && make install

Linux下Nagios的安裝與配置方法

c. 配置apache


找到apache 的配置文件/usr/local/apache2/conf/httpd.conf
找到:

代碼如下:


User daemon
Group daemon

修改為

代碼如下:


User nagios
Group nagios

然后找到

代碼如下:


<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

修改為

代碼如下:


<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

接著增加如下內(nèi)容:

AddType application/x-httpd-php .php 為了安全起見,一般情況下要讓nagios 的web 監(jiān)控頁面必須經(jīng)過授權才能訪問,這需要增加驗證配置,即在httpd.conf 文件最后添加如下信息:

XML/HTML Code復制內(nèi)容到剪貼板

  1. #setting for nagios    

  2. ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"    

  3. <Directory "/usr/local/nagios/sbin">    

  4.      AuthType Basic    

  5.      Options ExecCGI    

  6.      AllowOverride None    

  7.      Order allow,deny    

  8.      Allow from all    

  9.      AuthName "Nagios Access"    

  10.      AuthUserFile /usr/local/nagios/etc/htpasswd             //用于此目錄訪問身份驗證的文件    

  11.      Require valid-user    

  12. </Directory>    

  13. Alias /nagios "/usr/local/nagios/share"    

  14. <Directory "/usr/local/nagios/share">    

  15.      AuthType Basic    

  16.      Options None    

  17.      AllowOverride None    

  18.      Order allow,deny    

  19.      Allow from all    

  20.      AuthName "nagios Access"    

  21.      AuthUserFile /usr/local/nagios/etc/htpasswd    

  22.      Require valid-user    

  23. </Directory>  

d. 創(chuàng)建apache目錄驗證文件 

在上面的配置中,指定了目錄驗證文件htpasswd,下面要創(chuàng)建這個文件:

# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd david

Linux下Nagios的安裝與配置方法
這樣就在/usr/local/nagios/etc 目錄下創(chuàng)建了一個htpasswd 驗證文件,當通過http://192.168.1.108/nagios/ 訪問時就需要輸入用戶名和密碼了。

e. 查看認證文件的內(nèi)容

# cat /usr/local/nagios/etc/htpasswd

Linux下Nagios的安裝與配置方法

f. 啟動apache 服務

# /usr/local/apache2/bin/apachectl start

到這里nagios 的安裝也就基本完成了,你可以通過web來訪問了。

Linux下Nagios的安裝與配置方法

Linux下Nagios的安裝與配置方法

六、配置Nagios

Nagios 主要用于監(jiān)控一臺或者多臺本地主機及遠程的各種信息,包括本機資源及對外的服務等。默認的Nagios 配置沒有任何監(jiān)控內(nèi)容,僅是一些模板文件。若要讓Nagios 提供服務,就必須修改配置文件,增加要監(jiān)控的主機和服務,下面將詳細介紹。

6.1 默認配置文件介紹

Nagios 安裝完畢后,默認的配置文件在/usr/local/nagios/etc目錄下。

Linux下Nagios的安裝與配置方法

每個文件或目錄含義如下表所示:

文件名或目錄名用途
cgi.cfg控制CGI訪問的配置文件
nagios.cfgNagios 主配置文件
resource.cfg變量定義文件,又稱為資源文件,在些文件中定義變量,以便由其他配置文件引用,如$USER1$
objectsobjects 是一個目錄,在此目錄下有很多配置文件模板,用于定義Nagios 對象
objects/commands.cfg命令定義配置文件,其中定義的命令可以被其他配置文件引用
objects/contacts.cfg定義聯(lián)系人和聯(lián)系人組的配置文件
objects/localhost.cfg定義監(jiān)控本地主機的配置文件
objects/printer.cfg定義監(jiān)控打印機的一個配置文件模板,默認沒有啟用此文件
objects/switch.cfg定義監(jiān)控路由器的一個配置文件模板,默認沒有啟用此文件
objects/templates.cfg定義主機和服務的一個模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg定義Nagios 監(jiān)控時間段的配置文件
objects/windows.cfg監(jiān)控Windows 主機的一個配置文件模板,默認沒有啟用此文件


6.2 配置文件之間的關系

在nagios的配置過程中涉及到的幾個定義有:主機、主機組,服務、服務組,聯(lián)系人、聯(lián)系人組,監(jiān)控時間,監(jiān)控命令等,從這些定義可以看出,nagios各個配置文件之間是互為關聯(lián),彼此引用的。

成功配置出一臺nagios監(jiān)控系統(tǒng),必須要弄清楚每個配置文件之間依賴與被依賴的關系,最重要的有四點:

第一:定義監(jiān)控哪些主機、主機組、服務和服務組;
第二:定義這個監(jiān)控要用什么命令實現(xiàn);
第三:定義監(jiān)控的時間段;
第四:定義主機或服務出現(xiàn)問題時要通知的聯(lián)系人和聯(lián)系人組。

6.3 配置Nagios

 為了能更清楚的說明問題,同時也為了維護方便,建議將nagios各個定義對象創(chuàng)建獨立的配置文件:

&bull; 創(chuàng)建hosts.cfg文件來定義主機和主機組
&bull; 創(chuàng)建services.cfg文件來定義服務
&bull; 用默認的contacts.cfg文件來定義聯(lián)系人和聯(lián)系人組
&bull; 用默認的commands.cfg文件來定義命令
&bull; 用默認的timeperiods.cfg來定義監(jiān)控時間段
&bull; 用默認的templates.cfg文件作為資源引用文件
a. templates.cfg文件

nagios主要用于監(jiān)控主機資源以及服務,在nagios配置中稱為對象,為了不必重復定義一些監(jiān)控對象,Nagios引入了一個模板配置文件,將一些共性的屬性定義成模板,以便于多次引用。這就是templates.cfg的作用。

下面詳細介紹下templates.cfg文件中每個參數(shù)的含義:

XML/HTML Code復制內(nèi)容到剪貼板

  1. define contact{   

  2.         name                            generic-contact    ; 聯(lián)系人名稱   

  3.         service_notification_period     24x7               ; 當服務出現(xiàn)異常時,發(fā)送通知的時間段,這個時間段"24x7"在timeperiods.cfg文件中定義   

  4.         host_notification_period        24x7               ; 當主機出現(xiàn)異常時,發(fā)送通知的時間段,這個時間段"24x7"在timeperiods.cfg文件中定義   

  5.         service_notification_options    w,u,c,r            ; 這個定義的是“通知可以被發(fā)出的情況”。w即warn,表示警告狀態(tài),u即unknown,表示不明狀態(tài);   

  6.                                                            ; c即criticle,表示緊急狀態(tài),r即recover,表示恢復狀態(tài);   

  7.                                                            ; 也就是在服務出現(xiàn)警告狀態(tài)、未知狀態(tài)、緊急狀態(tài)和重新恢復狀態(tài)時都發(fā)送通知給使用者。   

  8.         host_notification_options       d,u,r                   ; 定義主機在什么狀態(tài)下需要發(fā)送通知給使用者,d即down,表示宕機狀態(tài);   

  9.                                                                 ; u即unreachable,表示不可到達狀態(tài),r即recovery,表示重新恢復狀態(tài)。   

  10.         service_notification_commands   notify-service-by-email ; 服務故障時,發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件;   

  11.                                                                 ; 其中“notify-service-by-email”在commands.cfg文件中定義。   

  12.         host_notification_commands      notify-host-by-email    ; 主機故障時,發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件;   

  13.                                                                 ; 其中“notify-host-by-email”在commands.cfg文件中定義。    

  14.         register                        0                    ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!   

  15.         }   

  16. define host{   

  17.         name                            generic-host    ; 主機名稱,這里的主機名,并不是直接對應到真正機器的主機名;   

  18.                                                         ; 乃是對應到在主機配置文件里所設定的主機名。   

  19.         notifications_enabled           1               ; Host notifications are enabled   

  20.         event_handler_enabled           1               ; Host event handler is enabled   

  21.         flap_detection_enabled          1               ; Flap detection is enabled   

  22.         failure_prediction_enabled      1               ; Failure prediction is enabled   

  23.         process_perf_data               1               ; 其值可以為0或1,其作用為是否啟用Nagios的數(shù)據(jù)輸出功能;   

  24.                                                         ; 如果將此項賦值為1,那么Nagios就會將收集的數(shù)據(jù)寫入某個文件中,以備提取。   

  25.         retain_status_information       1               ; Retain status information across program restarts   

  26.         retain_nonstatus_information    1               ; Retain non-status information across program restarts   

  27.         notification_period             24x7            ; 指定“發(fā)送通知”的時間段,也就是可以在什么時候發(fā)送通知給使用者。   

  28.         register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!   

  29.         }   

  30. define host{   

  31.         name                            linux-server    ; 主機名稱   

  32.         use                             generic-host    ; use表示引用,也就是將主機generic-host的所有屬性引用到linux-server中來;   

  33.                                                         ; 在nagios配置中,很多情況下會用到引用。   

  34.         check_period                    24x7            ; 這里的check_period告訴nagios檢查主機的時間段   

  35.         check_interval                  5               ; nagios對主機的檢查時間間隔,這里是5分鐘。   

  36.         retry_interval                  1               ; 重試檢查時間間隔,單位是分鐘。   

  37.         max_check_attempts              10              ; nagios對主機的最大檢查次數(shù),也就是nagios在檢查發(fā)現(xiàn)某主機異常時,并不馬上判斷為異常狀況;   

  38.                                                         ; 而是多試幾次,因為有可能只是一時網(wǎng)絡太擁擠,或是一些其他原因,讓主機受到了一點影響;   

  39.                                                         ; 這里的10就是最多試10次的意思。   

  40.         check_command                   check-host-alive ; 指定檢查主機狀態(tài)的命令,其中“check-host-alive”在commands.cfg文件中定義。   

  41.         notification_period             24x7            ; 主機故障時,發(fā)送通知的時間范圍,其中“workhours”在timeperiods.cfg中進行了定義;   

  42.                                                         ; 下面會陸續(xù)講到。   

  43.         notification_interval           10              ; 在主機出現(xiàn)異常后,故障一直沒有解決,nagios再次對使用者發(fā)出通知的時間。單位是分鐘;   

  44.                                                         ; 如果你覺得,所有的事件只需要一次通知就夠了,可以把這里的選項設為0   

  45.         notification_options            d,u,r           ; 定義主機在什么狀態(tài)下可以發(fā)送通知給使用者,d即down,表示宕機狀態(tài);   

  46.                                                         ; u即unreachable,表示不可到達狀態(tài);   

  47.                                                         ; r即recovery,表示重新恢復狀態(tài)。   

  48.         contact_groups                  ts              ; 指定聯(lián)系人組,這個“admins”在contacts.cfg文件中定義。   

  49.         register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!   

  50.         }   

  51. define host{   

  52.         name                    windows-server  ; The name of this host template   

  53.         use                     generic-host    ; Inherit default values from the generic-host template   

  54.         check_period            24x7            ; By default, Windows servers are monitored round the clock   

  55.         check_interval          5               ; Actively check the server every 5 minutes   

  56.         retry_interval          1               ; Schedule host check retries at 1 minute intervals   

  57.         max_check_attempts      10              ; Check each server 10 times (max)   

  58.         check_command           check-host-alive        ; Default command to check if servers are "alive"   

  59.         notification_period     24x7            ; Send notification out at any time - day or night   

  60.         notification_interval   10              ; Resend notifications every 30 minutes   

  61.         notification_options    d,r             ; Only send notifications for specific host states   

  62.         contact_groups          ts              ; Notifications get sent to the admins by default   

  63.         hostgroups              windows-servers ; Host groups that Windows servers should be a member of   

  64.         register                0               ; DONT REGISTER THIS - ITS JUST A TEMPLATE   

  65.         }   

  66. define service{   

  67.         name                            generic-service         ; 定義一個服務名稱   

  68.         active_checks_enabled           1                       ; Active service checks are enabled   

  69.         passive_checks_enabled          1                       ; Passive service checks are enabled/accepted   

  70.         parallelize_check               1                       ; Active service checks should be parallelized;   

  71.                                                                 ; (disabling this can lead to major performance problems)   

  72.         obsess_over_service             1                       ; We should obsess over this service (if necessary)   

  73.         check_freshness                 0                       ; Default is to NOT check service 'freshness'   

  74.         notifications_enabled           1                       ; Service notifications are enabled   

  75.         event_handler_enabled           1                       ; Service event handler is enabled   

  76.         flap_detection_enabled          1                       ; Flap detection is enabled   

  77.         failure_prediction_enabled      1                       ; Failure prediction is enabled   

  78.         process_perf_data               1                       ; Process performance data   

  79.         retain_status_information       1                       ; Retain status information across program restarts   

  80.         retain_nonstatus_information    1                       ; Retain non-status information across program restarts   

  81.         is_volatile                     0                       ; The service is not volatile   

  82.         check_period                    24x7             ; 這里的check_period告訴nagios檢查服務的時間段。   

  83.         max_check_attempts              3                ; nagios對服務的最大檢查次數(shù)。   

  84.         normal_check_interval           5                ; 此選項是用來設置服務檢查時間間隔,也就是說,nagios這一次檢查和下一次檢查之間所隔的時間;   

  85.                                                          ; 這里是5分鐘。   

  86.         retry_check_interval            2                ; 重試檢查時間間隔,單位是分鐘。   

  87.         contact_groups                  ts           ; 指定聯(lián)系人組   

  88.         notification_options            w,u,c,r          ; 這個定義的是“通知可以被發(fā)出的情況”。w即warn,表示警告狀態(tài);   

  89.                                                          ; u即unknown,表示不明狀態(tài);   

  90.                                                          ; c即criticle,表示緊急狀態(tài),r即recover,表示恢復狀態(tài);   

  91.                                                          ; 也就是在服務出現(xiàn)警告狀態(tài)、未知狀態(tài)、緊急狀態(tài)和重新恢復后都發(fā)送通知給使用者。   

  92.         notification_interval           10               ; Re-notify about service problems every hour   

  93.         notification_period             24x7             ; 指定“發(fā)送通知”的時間段,也就是可以在什么時候發(fā)送通知給使用者。   

  94.         register                        0                ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!   

  95.         }   

  96. define service{   

  97.         name                            local-service           ; The name of this service template   

  98.         use                             generic-service         ; Inherit default values from the generic-service definition   

  99.         max_check_attempts              4             ; Re-check the service up to 4 times in order to determine its final (hard) state   

  100.         normal_check_interval           5             ; Check the service every 5 minutes under normal conditions   

  101.         retry_check_interval            1             ; Re-check the service every minute until a hard state can be determined   

  102.         register                        0             ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!   

  103.         }  

b. resource.cfg文件

resource.cfg是nagios的變量定義文件,文件內(nèi)容只有一行:

$USER1$=/usr/local/nagios/libexec

其中,變量$USER1$指定了安裝nagios插件的路徑,如果把插件安裝在了其它路徑,只需在這里進行修改即可。需要注意的是,變量必須先定義,然后才能在其它配置文件中進行引用。

c. commands.cfg文件

此文件默認是存在的,無需修改即可使用,當然如果有新的命令需要加入時,在此文件進行添加即可。

XML/HTML Code復制內(nèi)容到剪貼板

  1. #notify-host-by-email命令的定義    

  2. define command{   

  3.         command_name    notify-host-by-email             #命令名稱,即定義了一個主機異常時發(fā)送郵件的命令。   

  4.         command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$                                     #命令具體的執(zhí)行方式。   

  5.         }   

  6. #notify-service-by-email命令的定義    

  7. define command{   

  8.         command_name    notify-service-by-email          #命令名稱,即定義了一個服務異常時發(fā)送郵件的命令   

  9.         command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$   

  10.         }   

  11. #check-host-alive命令的定義   

  12. define command{   

  13.         command_name    check-host-alive                 #命令名稱,用來檢測主機狀態(tài)。   

  14.         command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5                

  15.                         # 這里的變量$USER1$在resource.cfg文件中進行定義,即$USER1$=/usr/local/nagios/libexec;   

  16.                         # 那么check_ping的完整路徑為/usr/local/nagios/libexec/check_ping;   

  17.                         # “-w 3000.0,80%”中“-w”說明后面的一對值對應的是“WARNING”狀態(tài),“80%”是其臨界值。   

  18.                         # “-c 5000.0,100%”中“-c”說明后面的一對值對應的是“CRITICAL”,“100%”是其臨界值。   

  19.                         # “-p 1”說明每次探測發(fā)送一個包。   

  20.         }   

  21. define command{   

  22.         command_name    check_local_disk   

  23.         command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$            #$ARG1$是指在調(diào)用這個命令的時候,命令后面的第一個參數(shù)。   

  24.         }   

  25. define command{   

  26.         command_name    check_local_load   

  27.         command_line    $USER1$/check_load -w $ARG1$ -c $ARG2$   

  28.         }   

  29. define command{   

  30.         command_name    check_local_procs   

  31.         command_line    $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$   

  32.         }   

  33. define command{   

  34.         command_name    check_local_users   

  35.         command_line    $USER1$/check_users -w $ARG1$ -c $ARG2$   

  36.         }   

  37. define command{   

  38.         command_name    check_local_swap   

  39.         command_line    $USER1$/check_swap -w $ARG1$ -c $ARG2$   

  40.         }   

  41. define command{   

  42.         command_name    check_ftp   

  43.         command_line    $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$   

  44.         }   

  45. define command{   

  46.         comma

    當前標題:Linux下Nagios的安裝與配置方法
    當前路徑:http://muchs.cn/article46/igeeeg.html

    成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、企業(yè)建站網(wǎng)站維護、網(wǎng)站設計公司Google、品牌網(wǎng)站制作

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計