這篇文章主要講解了“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)
再說報警功能,如果監(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)信息。它們之間的關系如下圖所示:
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 Name | OS | IP | Software |
Nagios-Server | CentOS release 6.3 (Final) | 192.168.1.108 | Apache、Php、Nagios、nagios-plugins |
Nagios-Linux | CentOS release 5.8 (Final) | 192.168.1.111 | nagios-plugins、nrpe |
Nagios-Windows | Windows XP | 192.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
四、實驗目標
五、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
如果系統(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
查看nagios 目錄的權限
# ll -d /usr/local/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
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
5.4 驗證程序是否被正確安裝
切換目錄到安裝路徑(這里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 這五個目錄,如果存在則可以表明程序被正確的安裝到系統(tǒng)了。Nagios 各個目錄用途說明如下:
bin | Nagios 可執(zhí)行程序所在目錄 |
etc | Nagios 配置文件所在目錄 |
sbin | Nagios CGI 文件所在目錄,也就是執(zhí)行外部命令所需文件所在的目錄 |
share | Nagios網(wǎng)頁文件所在的目錄 |
libexec | Nagios 外部插件所在目錄 |
var | Nagios 日志文件、lock 等文件所在的目錄 |
var/archives | Nagios 日志自動歸檔目錄 |
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
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
若出現(xiàn)錯誤:
則在編譯時入加 --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
# make && make install
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)容到剪貼板
#setting for nagios
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
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">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>
d. 創(chuàng)建apache目錄驗證文件
在上面的配置中,指定了目錄驗證文件htpasswd,下面要創(chuàng)建這個文件:
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd david
這樣就在/usr/local/nagios/etc 目錄下創(chuàng)建了一個htpasswd 驗證文件,當通過http://192.168.1.108/nagios/ 訪問時就需要輸入用戶名和密碼了。
e. 查看認證文件的內(nèi)容
# cat /usr/local/nagios/etc/htpasswd
f. 啟動apache 服務
# /usr/local/apache2/bin/apachectl start
到這里nagios 的安裝也就基本完成了,你可以通過web來訪問了。
六、配置Nagios
Nagios 主要用于監(jiān)控一臺或者多臺本地主機及遠程的各種信息,包括本機資源及對外的服務等。默認的Nagios 配置沒有任何監(jiān)控內(nèi)容,僅是一些模板文件。若要讓Nagios 提供服務,就必須修改配置文件,增加要監(jiān)控的主機和服務,下面將詳細介紹。
6.1 默認配置文件介紹
Nagios 安裝完畢后,默認的配置文件在/usr/local/nagios/etc目錄下。
每個文件或目錄含義如下表所示:
文件名或目錄名 | 用途 |
cgi.cfg | 控制CGI訪問的配置文件 |
nagios.cfg | Nagios 主配置文件 |
resource.cfg | 變量定義文件,又稱為資源文件,在些文件中定義變量,以便由其他配置文件引用,如$USER1$ |
objects | objects 是一個目錄,在此目錄下有很多配置文件模板,用于定義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)建獨立的配置文件:
• 創(chuàng)建hosts.cfg文件來定義主機和主機組
• 創(chuàng)建services.cfg文件來定義服務
• 用默認的contacts.cfg文件來定義聯(lián)系人和聯(lián)系人組
• 用默認的commands.cfg文件來定義命令
• 用默認的timeperiods.cfg來定義監(jiān)控時間段
• 用默認的templates.cfg文件作為資源引用文件
a. templates.cfg文件
nagios主要用于監(jiān)控主機資源以及服務,在nagios配置中稱為對象,為了不必重復定義一些監(jiān)控對象,Nagios引入了一個模板配置文件,將一些共性的屬性定義成模板,以便于多次引用。這就是templates.cfg的作用。
下面詳細介紹下templates.cfg文件中每個參數(shù)的含義:
XML/HTML Code復制內(nèi)容到剪貼板
define contact{
name generic-contact ; 聯(lián)系人名稱
service_notification_period 24x7 ; 當服務出現(xiàn)異常時,發(fā)送通知的時間段,這個時間段"24x7"在timeperiods.cfg文件中定義
host_notification_period 24x7 ; 當主機出現(xiàn)異常時,發(fā)送通知的時間段,這個時間段"24x7"在timeperiods.cfg文件中定義
service_notification_options w,u,c,r ; 這個定義的是“通知可以被發(fā)出的情況”。w即warn,表示警告狀態(tài),u即unknown,表示不明狀態(tài);
; c即criticle,表示緊急狀態(tài),r即recover,表示恢復狀態(tài);
; 也就是在服務出現(xiàn)警告狀態(tài)、未知狀態(tài)、緊急狀態(tài)和重新恢復狀態(tài)時都發(fā)送通知給使用者。
host_notification_options d,u,r ; 定義主機在什么狀態(tài)下需要發(fā)送通知給使用者,d即down,表示宕機狀態(tài);
; u即unreachable,表示不可到達狀態(tài),r即recovery,表示重新恢復狀態(tài)。
service_notification_commands notify-service-by-email ; 服務故障時,發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件;
; 其中“notify-service-by-email”在commands.cfg文件中定義。
host_notification_commands notify-host-by-email ; 主機故障時,發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件;
; 其中“notify-host-by-email”在commands.cfg文件中定義。
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
}
define host{
name generic-host ; 主機名稱,這里的主機名,并不是直接對應到真正機器的主機名;
; 乃是對應到在主機配置文件里所設定的主機名。
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; 其值可以為0或1,其作用為是否啟用Nagios的數(shù)據(jù)輸出功能;
; 如果將此項賦值為1,那么Nagios就會將收集的數(shù)據(jù)寫入某個文件中,以備提取。
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
notification_period 24x7 ; 指定“發(fā)送通知”的時間段,也就是可以在什么時候發(fā)送通知給使用者。
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
define host{
name linux-server ; 主機名稱
use generic-host ; use表示引用,也就是將主機generic-host的所有屬性引用到linux-server中來;
; 在nagios配置中,很多情況下會用到引用。
check_period 24x7 ; 這里的check_period告訴nagios檢查主機的時間段
check_interval 5 ; nagios對主機的檢查時間間隔,這里是5分鐘。
retry_interval 1 ; 重試檢查時間間隔,單位是分鐘。
max_check_attempts 10 ; nagios對主機的最大檢查次數(shù),也就是nagios在檢查發(fā)現(xiàn)某主機異常時,并不馬上判斷為異常狀況;
; 而是多試幾次,因為有可能只是一時網(wǎng)絡太擁擠,或是一些其他原因,讓主機受到了一點影響;
; 這里的10就是最多試10次的意思。
check_command check-host-alive ; 指定檢查主機狀態(tài)的命令,其中“check-host-alive”在commands.cfg文件中定義。
notification_period 24x7 ; 主機故障時,發(fā)送通知的時間范圍,其中“workhours”在timeperiods.cfg中進行了定義;
; 下面會陸續(xù)講到。
notification_interval 10 ; 在主機出現(xiàn)異常后,故障一直沒有解決,nagios再次對使用者發(fā)出通知的時間。單位是分鐘;
; 如果你覺得,所有的事件只需要一次通知就夠了,可以把這里的選項設為0
notification_options d,u,r ; 定義主機在什么狀態(tài)下可以發(fā)送通知給使用者,d即down,表示宕機狀態(tài);
; u即unreachable,表示不可到達狀態(tài);
; r即recovery,表示重新恢復狀態(tài)。
contact_groups ts ; 指定聯(lián)系人組,這個“admins”在contacts.cfg文件中定義。
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
define host{
name windows-server ; The name of this host template
use generic-host ; Inherit default values from the generic-host template
check_period 24x7 ; By default, Windows servers are monitored round the clock
check_interval 5 ; Actively check the server every 5 minutes
retry_interval 1 ; Schedule host check retries at 1 minute intervals
max_check_attempts 10 ; Check each server 10 times (max)
check_command check-host-alive ; Default command to check if servers are "alive"
notification_period 24x7 ; Send notification out at any time - day or night
notification_interval 10 ; Resend notifications every 30 minutes
notification_options d,r ; Only send notifications for specific host states
contact_groups ts ; Notifications get sent to the admins by default
hostgroups windows-servers ; Host groups that Windows servers should be a member of
register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
}
define service{
name generic-service ; 定義一個服務名稱
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized;
; (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
is_volatile 0 ; The service is not volatile
check_period 24x7 ; 這里的check_period告訴nagios檢查服務的時間段。
max_check_attempts 3 ; nagios對服務的最大檢查次數(shù)。
normal_check_interval 5 ; 此選項是用來設置服務檢查時間間隔,也就是說,nagios這一次檢查和下一次檢查之間所隔的時間;
; 這里是5分鐘。
retry_check_interval 2 ; 重試檢查時間間隔,單位是分鐘。
contact_groups ts ; 指定聯(lián)系人組
notification_options w,u,c,r ; 這個定義的是“通知可以被發(fā)出的情況”。w即warn,表示警告狀態(tài);
; u即unknown,表示不明狀態(tài);
; c即criticle,表示緊急狀態(tài),r即recover,表示恢復狀態(tài);
; 也就是在服務出現(xiàn)警告狀態(tài)、未知狀態(tài)、緊急狀態(tài)和重新恢復后都發(fā)送通知給使用者。
notification_interval 10 ; Re-notify about service problems every hour
notification_period 24x7 ; 指定“發(fā)送通知”的時間段,也就是可以在什么時候發(fā)送通知給使用者。
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
define service{
name local-service ; The name of this service template
use generic-service ; Inherit default values from the generic-service definition
max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state
normal_check_interval 5 ; Check the service every 5 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until a hard state can be determined
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
b. resource.cfg文件
resource.cfg是nagios的變量定義文件,文件內(nèi)容只有一行:
$USER1$=/usr/local/nagios/libexec
其中,變量$USER1$指定了安裝nagios插件的路徑,如果把插件安裝在了其它路徑,只需在這里進行修改即可。需要注意的是,變量必須先定義,然后才能在其它配置文件中進行引用。
c. commands.cfg文件
此文件默認是存在的,無需修改即可使用,當然如果有新的命令需要加入時,在此文件進行添加即可。
XML/HTML Code復制內(nèi)容到剪貼板
#notify-host-by-email命令的定義
define command{
command_name notify-host-by-email #命令名稱,即定義了一個主機異常時發(fā)送郵件的命令。
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í)行方式。
}
#notify-service-by-email命令的定義
define command{
command_name notify-service-by-email #命令名稱,即定義了一個服務異常時發(fā)送郵件的命令
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$
}
#check-host-alive命令的定義
define command{
command_name check-host-alive #命令名稱,用來檢測主機狀態(tài)。
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
# 這里的變量$USER1$在resource.cfg文件中進行定義,即$USER1$=/usr/local/nagios/libexec;
# 那么check_ping的完整路徑為/usr/local/nagios/libexec/check_ping;
# “-w 3000.0,80%”中“-w”說明后面的一對值對應的是“WARNING”狀態(tài),“80%”是其臨界值。
# “-c 5000.0,100%”中“-c”說明后面的一對值對應的是“CRITICAL”,“100%”是其臨界值。
# “-p 1”說明每次探測發(fā)送一個包。
}
define command{
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ #$ARG1$是指在調(diào)用這個命令的時候,命令后面的第一個參數(shù)。
}
define command{
command_name check_local_load
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}
define command{
command_name check_local_procs
command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}
define command{
command_name check_local_users
command_line $USER1$/check_users -w $ARG1$ -c $ARG2$
}
define command{
command_name check_local_swap
command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$
}
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
define command{
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)