七,服務器端Nagios圖形監控顯示和管理
前面搭建的Nagios服務雖然能顯示信息,能報警。可是在企業工做中還會須要一個歷史趨勢圖,跟蹤每個業務的長期趨勢,而且能以圖形的方式展現,例如:根據磁盤的剩餘趨勢,肯定是否須要提早購買磁盤。php
7.1 服務器端安裝PNP生成圖形監控曲線
PNP是一款配合Nagios出圖的軟件,官方站點爲:http://www.pnp4nagios.orghtml
7.1.1 PNP出圖基礎依賴軟件安裝
[root@Nagios 6]# yum -y install cairo pango zlib zlib-devel freetype freetype-devel gd gd-devel [root@Nagios 6]# rpm -qa cairo pango zlib zlib-devel freetype freetype-devel gd gd-devel freetype-2.3.11-17.el6.x86_64 zlib-1.2.3-29.el6.x86_64 zlib-devel-1.2.3-29.el6.x86_64 freetype-devel-2.3.11-17.el6.x86_64 gd-2.0.35-11.el6.x86_64 gd-devel-2.0.35-11.el6.x86_64 cairo-1.8.8-6.el6_6.x86_64 pango-1.28.1-11.el6.x86_64 #而後安裝rrdtool依賴的libart_lgpl相關軟件包,這個軟件包要優先於rrdtool安裝 [root@Nagios 6]# yum -y install libart_lgpl libart_lgpl-devel [root@Nagios 6]# rpm -qa libart_lgpl libart_lgpl-devel libart_lgpl-2.3.20-5.1.el6.x86_64 libart_lgpl-devel-2.3.20-5.1.el6.x86_64 #PNP工具最終是經過rrdtool實現的畫圖,所以須要提早安裝rrdtool [root@Nagios 6]# yum -y install rrdtool rrdtool-devel [root@Nagios 6]# rpm -qa rrdtool rrdtool-devel rrdtool-1.3.8-10.el6.x86_64 rrdtool-devel-1.3.8-10.el6.x86_64 [root@Nagios 6]# which rrdtool /usr/bin/rrdtool
7.1.2 安裝出圖web界面展現軟件PNP
此處選擇0.4.14的PNP版本,若是選擇高版本在出圖方面可能會有坑,正常狀況下,選04版本已經足夠了,所以,若是沒有特殊需求,建議最好徹底按照書本測試步驟,在弄清楚以後再變通版本。linux
PNP軟件沒法yum安裝,可經過編譯的方式進行安裝,操做過程以下:ios
[root@Nagios ~]# yum -y install perl-Time-HiRes [root@Nagios ~]# cd nagios/ [root@Nagios nagios]# ll pnp-0.4.14.tar.gz -rw-r--r--. 1 root root 455593 Aug 12 12:22 pnp-0.4.14.tar.gz [root@Nagios nagios]# tar xf pnp-0.4.14.tar.gz -C /usr/src/ [root@Nagios nagios]# cd /usr/src/pnp-0.4.14/ [root@Nagios pnp-0.4.14]# ./configure \ > --with-rrdtool \ > --with-perfdata-dir=/usr/local/nagios/share/perfdata/ [root@Nagios pnp-0.4.14]# make all [root@Nagios pnp-0.4.14]# make install [root@Nagios pnp-0.4.14]# make install-config [root@Nagios pnp-0.4.14]# make install-init [root@Nagios pnp-0.4.14]# ll /usr/local/nagios/libexec/ | grep process -rwxr-xr-x 1 nagios nagios 31813 Aug 19 23:04 process_perfdata.pl
若是configure後出現以下警告信息,請忽略:nginx
################# # WARNING:The RRDs Perl Modules are not found on your System # Using RRDs will speedup things in larg ##################
PNP提供了一個獲取數據出圖的Perl腳本,能夠用以下命令查到:web
[root@Nagios pnp-0.4.14]# ll /usr/local/nagios/libexec/ | grep process -rwxr-xr-x 1 nagios nagios 31813 Aug 19 23:04 process_perfdata.pl
7.1.3 Nagios出圖相關配置
1)執行編輯命令vi,須要改nagios.cfg主配置文件833行,將以下參數對應的值從0改成1,表示記錄數據。面試
[root@Nagios nagios]# sed -n '833p' /usr/local/nagios/etc/nagios.cfg process_performance_data=0 #默認0,改成1 #而後繼續向下大概在845,846行的位置,找到以下兩項,取消參數開頭的註釋。 [root@Nagios nagios]# sed -n '845,846p' /usr/local/nagios/etc/nagios.cfg #host_perfdata_command=process-host-perfdata #取消註釋 #service_perfdata_command=process-service-perfdata #取消註釋
2)執行編輯命令vi,須要修改commands.cfg配置文件,定義出圖獲取數據的命令。shell
[root@Nagios nagios]# sed -n '227,238p' /usr/local/nagios/etc/objects/commands.cfg # 'process-host-perfdata' command definition define command{ command_name process-host-perfdata command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >>/usr/local/nagios/var/host-perfdata.out } # 'process-service-perfdata' command definition define command{ command_name process-service-perfdata command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >>/usr/local/nagios/var/service-perfdata.out }
如今刪除上述的默認配置,而後將其修改成以下的配置內容:vim
[root@Nagios nagios]# sed -n '227,238p' /usr/local/nagios/etc/objects/commands.cfg
# 'process-host-perfdata' command definition define command{ command_name process-host-perfdata command_line /usr/local/nagios/libexec/process_perfdata.pl } # 'process-service-perfdata' command definition define command{ command_name process-service-perfdata command_line /usr/local/nagios/libexec/process_perfdata.pl }
3)執行檢查語法命令瀏覽器
[root@Nagios nagios]# /etc/init.d/nagios checkconfig #..以上省略若干... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check OK
4)執行命令使Nagios配置文件生效。
[root@Nagios nagios]# /etc/init.d/nagios reload Running configuration check...done. Reloading nagios configuration...done
5)此時打開瀏覽器訪問「http://192.168.0.200/nagios/pnp/」,應該會出現以下圖所示的圖形界面,可是沒有業務數據顯示。
若是同窗們打開出現以下錯誤:
若是出現上圖中的錯誤,先彆着急,可能過一下子從新訪問上述地址就會恢復正常。
若是過了很長時間從新訪問上述地址還不正常,能夠執行以下命令看看,而後再訪問試試:
yum -y install php-gd gd gd-devel
7.2 配置主機及服務獲取狀態數據出圖
7.1結尾的圖形是沒有具體的業務數據圖形趨勢的,由於那時尚未爲Nagios的各個主機和具體要監控的服務配置獲取數據信息,下面是讓各個主機或服務獲取數據的配置。
7.2.1 設置讓被監控的主機記錄數據
若是要讓全部的主機獲取數據並出趨勢圖,則需編輯Nagios的主機hosts.cfg文件,不過,只要在每個被監控主機的配置下面增長同一個參數項「process_perf_data 1」便可。操做步驟以下:
[root@Nagios nagios]# cd /usr/local/nagios/etc/objects/ [root@Nagios objects]# cat hosts.cfg # Define a host for the local machine define host{ use linux-server host_name web01 alias web01 address 192.168.0.223 process_perf_data 1 #爲web01增長1此行,表示記錄web01主機狀態數據 } define host{ use linux-server host_name web02 alias web02 address 192.168.0.224 process_perf_data 1 #爲Web02增長此行,表示記錄web02主機狀態數據 } define hostgroup{ hostgroup_name linux-servers alias Linux Servers members web01,web02
7.2.2 設置讓被監控主機對應的服務記錄數據
若是須要全部的主機對應的服務獲取數據並出趨勢圖,則要編輯Nagios的服務配置文件services.cfg,固然,也只須要在每個對應服務下面增長同一個參數項便可,即「process_perf_data 1」,配置步驟以下:
[root@Nagios objects]# cat /usr/local/nagios/etc/objects/services.cfg define service { use generic-service host_name web01,web02 service_description Disk Partition check_command check_nrpe!check_disk process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01,web02 service_description Swap Useage check_command check_nrpe!check_swap process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01,web02 service_description MEM Useage check_command check_nrpe!check_mem process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01,web02 service_description Current Load check_command check_nrpe!check_load process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01,web02 service_description Disk lostat check_command check_nrpe!check_iostat!5!11 process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01,web02 service_description PING check_command check_ping!100.0,20%!500.0,60% process_perf_data 1 #爲每一個service添加此行 } #url examples http://www.yunjisuan.com define service { use generic-service host_name web01 service_description www_url check_command check_weburl! -H www.yunjisuan.com process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01 service_description www_url check_command check_http process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01 ervice_description www_static_url check_command check_weburl! -H www.yunjisuan.com -u /static/test.html process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01 service_description www_yunjisuan_url check_command check_weburl! -H www.yunjisuan.com -u "/article/index.phpm=article&a=list&id=670" process_perf_data 1 #爲每一個service添加此行 } #tcp examples define service { use generic-service host_name web01 service_description ssh_22 check_command check_tcp! 22 process_perf_data 1 #爲每一個service添加此行 } define service { use generic-service host_name web01 service_description http_80 check_command check_tcp! 80 process_perf_data 1 #爲每一個service添加此行 }
因爲每一個主機對應的服務內容太多了,所以能夠採起在全部服務對應的統一模板裏添加配置參數的方式,這樣可以使全部的服務均可以生效。這裏每一個服務使用的模板就是由服務裏的「use generic-service」這個選項肯定的,查看與模板文件裏服務模板generic-service名對應的服務參數:
[root@Nagios objects]# sed -n '154,177p' /usr/local/nagios/etc/objects/templates.cfg | awk -F ";" '{print $1}' name generic-service active_checks_enabled 1 passive_checks_enabled 1 parallelize_check 1 obsess_over_service 1 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 failure_prediction_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 10 retry_check_interval 2 contact_groups admins notification_options w,u,c,r notification_interval 60 notification_period 24x7 register 0 }
提示:
爲了看的清晰,這裏去掉了全部註釋,服務的模板裏默認已經配置了「process_perf_data 1」,即凡是使用templates.cfg模板文件里名字爲generic-service的模板,均做爲服務的模板,這樣就至關於全部服務都執行generic-service模板裏的配置了。
配置完畢重啓Nagios服務:
[root@Nagios objects]# /etc/init.d/nagios reload Running configuration check...done. Reloading nagios configuration...done
到此,若是等一段時間,而後查看PNP URL就能夠發現生成了圖形數據,有些數據須要壓力測試或者真實環境才能看到,例如主機負載等。趨勢圖以下圖所示:
7.3 整合PNP URL超連接到Nagios Web界面
在整合PNP URL超連接到Nagios Web界面後,會在全部的主機或主機對應服務的前面,出現一個閃電樣的超連接1圖標,單擊超連接,就能夠查看到對應的主機或服務實際的監控狀態趨勢圖。
7.3.1 給被監控的全部主機添加超連接圖標
默認狀況PNP的URL爲http://192.168.0.200/nagios/pnp/index.php和Nagios不在一個界面裏,因此查看主機或服務對應的趨勢圖很費勁。那麼如何完善呢?
咱們能夠直接在host.cfg裏在但願出圖的主機裏配置以下一行參數:
action_url /nagios/pnp/index.php?host=$HOSTNAME$ #實際上就是給URL傳個主機參數
而後編輯host.cfg,增長上述配置。配置結果以下:
[root@Nagios objects]# cat /usr/local/nagios/etc/objects/hosts.cfg # Define a host for the local machine define host{ use linux-server host_name web01 alias web01 address 192.168.0.223 process_perf_data 1 action_url /nagios/pnp/index.php?host=$HOSTNAME$ #添加超連接圖標 } define host{ use linux-server host_name web02 alias web02 address 192.168.0.224 process_perf_data 1 action_url /nagios/pnp/index.php?host=$HOSTNAME$ #添加超連接圖標 } define hostgroup{ hostgroup_name linux-servers alias Linux Servers members web01,web02 }
接着,檢查語法從新加載Nagios
[root@Nagios objects]# /etc/init.d/nagios reload Running configuration check...done. Reloading nagios configuration...done
若是配置過程都正確,打開瀏覽器訪問Nagios界面,最終能夠看到以下圖所示的圖形。圖中,右邊方框裏標記的白色方格里,中間帶波浪線的就是超連接圖標。單擊進去便可看到一個主機全部的服務圖。
7.3.2 給被監控主機指定的服務添加超連接圖標
和上述主機添加超連接圖標的配置幾乎同樣,執行「vi /usr/local/nagios/etc/objects/services.cfg」,添加以下內容:
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
#實際上就是給URL傳了一個主機的參數和一個主機對應服務的參數
給具體服務增長超連接配置方法是,直接在define service {}大括號中增長參數便可,具體配置的內容以下「action_url參數部分」:
[root@Nagios objects]# cat /usr/local/nagios/etc/objects/services.cfg define service { use generic-service host_name web01,web02 service_description Disk Partition check_command check_nrpe!check_disk process_perf_data 1 action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ #給具體服務增長超連接配置 } define service { use generic-service host_name web01,web02 service_description Swap Useage check_command check_nrpe!check_swap process_perf_data 1 action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ #給具體服務增長超連接配置 } define service { use generic-service host_name web01,web02 service_description MEM Useage check_command check_nrpe!check_mem process_perf_data 1 action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ #給具體服務增長超連接配置 } define service { use generic-service host_name web01,web02 service_description Current Load check_command check_nrpe!check_load process_perf_data 1 } define service { use generic-service host_name web01,web02 service_description Disk lostat check_command check_nrpe!check_iostat!5!11 process_perf_data 1 } define service { use generic-service host_name web01,web02 service_description PING check_command check_ping!100.0,20%!500.0,60% process_perf_data 1 } #url examples http://www.yunjisuan.com define service { use generic-service host_name web01 service_description www_url check_command check_weburl! -H www.yunjisuan.com process_perf_data 1 } define service { use generic-service host_name web01 service_description www_url check_command check_http process_perf_data 1 } define service { use generic-service host_name web01 service_description www_static_url check_command check_weburl! -H www.yunjisuan.com -u /static/test.html process_perf_data 1 } define service { use generic-service host_name web01 service_description www_yunjisuan_url check_command check_weburl! -H www.yunjisuan.com -u "/article/index.phpm=article&a=list&id=670" process_perf_data 1 } #tcp examples define service { use generic-service host_name web01 service_description ssh_22 check_command check_tcp! 22 process_perf_data 1 } define service { use generic-service host_name web01 service_description http_80 check_command check_tcp! 80 process_perf_data 1 }
配置完成後的效果圖以下:
也能夠快速設置讓所有的服務出圖,找到templates.cfg模板文件,找到默認的服務名generic-service,在這個服務名大括號的內部結尾增長「action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ 」一行便可。
[root@Nagios objects]# sed -n '153,178p' /usr/local/nagios/etc/objects/templates.cfg | awk -F ";" '{print $1}' define service{ name generic-service active_checks_enabled 1 passive_checks_enabled 1 parallelize_check 1 obsess_over_service 1 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 failure_prediction_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 10 retry_check_interval 2 contact_groups admins notification_options w,u,c,r notification_interval 60 notification_period 24x7 register 0 action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ #在最後添加此行 }
這樣全部主機的全部服務都將增長出圖的超連接圖標了。
如今,人要檢查語法並從新加載Nagios
[root@Nagios objects]# /etc/init.d/nagios reload Running configuration check...done. Reloading nagios configuration...done
所有主機和服務的監控圖最終結果以下圖所示:
此時,單擊任意一個超連接圖標,就能夠查看對應的主機或服務的業務趨勢圖了,到此,Nagios的主機和服務出圖的配置就完成了,是否是很簡單?
7.3.3 Nagios出圖獲取的數據存放路徑
想真正繪製出業務的趨勢圖全靠下面命令生成的數據。這些歷史數據要備份好。
[root@Nagios objects]# ll /usr/local/nagios/share/perfdata/ total 8 drwxr-xr-x 2 nagios nagios 4096 Aug 20 02:10 web01 drwxr-xr-x 2 nagios nagios 4096 Aug 20 02:03 web02 [root@Nagios objects]# tree /usr/local/nagios/share/perfdata/ /usr/local/nagios/share/perfdata/ |-- web01 | |-- Current_Load.rrd | |-- Current_Load.xml | |-- Disk_Partition.rrd | |-- Disk_Partition.xml | |-- Disk_lostat.rrd | |-- Disk_lostat.xml | |-- MEM_Useage.rrd | |-- MEM_Useage.xml | |-- PING.rrd | |-- PING.xml | |-- Swap_Useage.rrd | |-- Swap_Useage.xml | |-- http_80.rrd | |-- http_80.xml | |-- ssh_22.rrd | |-- ssh_22.xml | |-- www_static_url.rrd | |-- www_static_url.xml | |-- www_url.rrd | |-- www_url.xml | |-- www_yunjisuan_url.rrd | `-- www_yunjisuan_url.xml `-- web02 |-- PING.rrd `-- PING.xml 2 directories, 24 files
八,實現將Nagios故障報警給管理員
要將Nagios故障報警給管理員時,經常使用的方式包括郵件報警和手機報警,下面分別介紹
8.1 郵件報警
- 普通郵件報警就是在故障發生或恢復時,將報警信息發到系統管理員或相關維護人員的信箱中,通常來講最好使用公司內部信箱做爲報警信箱。同窗們回家學習測試時若是用QQ,126等信箱可能會有收不到郵件的狀況或者被看成垃圾郵件了。
- 通常白天上班時,郵件報警還算比較及時,可是若是人不在計算機旁,郵件報警就不行了,所以,郵件報警只適合不是特別重要的業務,或者做爲發送大量報警信息中的一個輔助方式,如硬盤,內存,及日誌相關等不須要及時解決的服務報警。故而,在生產環境中,郵件報警通常會結合其餘報警方式一塊兒使用。
- 那麼,下面就來看一下郵件報警的基本配置方法。
首先,添加監控報警的接收Email地址
[root@Nagios objects]# sed -n '35p' /usr/local/nagios/etc/objects/contacts.cfg | awk -F ";" '{print $1}' email 215379068@qq.com #將本行內容改爲你的QQ郵箱
打開postfix服務
[root@Nagios objects]# /etc/init.d/postfix start Starting postfix: [ OK ] [root@Nagios objects]# echo "/etc/init.d/postfix start" >> /etc/rc.local [root@Nagios objects]# tail -3 /etc/rc.local touch /var/lock/subsys/local /etc/init.d/nagios start /etc/init.d/postfix start
用命令測試發郵件:
[root@Nagios objects]# echo "this is test email" | mail -s "yunjisuan" 215379068@qq.com #將郵件從QQ攔截名單取出,而後添加白名單
特別警示!
同窗們在家玩Nagios必定要用本身的QQ玩,誰給我發,我和誰急-_-!
8.2 關於郵件相關的配置文件的大概解釋(喜歡的同窗本身百度含義)
templates.cfg系統定義模板
#模板:generic-service [root@Nagios objects]# sed -n '153,178p' /usr/local/nagios/etc/objects/templates.cfg | awk -F ";" '{print $1}' define service{ name generic-service active_checks_enabled 1 passive_checks_enabled 1 parallelize_check 1 obsess_over_service 1 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 failure_prediction_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 is_volatile 0 check_period 24x7 #告訴Nagios檢查服務的時間段 max_check_attempts 3 #對Nagios服務的最大檢查次數 normal_check_interval 10 #兩次檢查的時間間隔 retry_check_interval 2 #從新檢查時間間隔 contact_groups admins #指定聯繫人主 notification_options w,u,c,r #定義何種異常能夠被通知(email),w即warn表示警告狀態,r即recover,表示恢復狀態 notification_interval 60 #服務出現異常,故障一直沒解決,Nagios再次對聯繫人發出通知的時間間隔 notification_period 24x7 #指定email的時間段 register 0 action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ } #模板:generic-contact [root@Nagios objects]# sed -n '28,37p' /usr/local/nagios/etc/objects/templates.cfg | awk -F ";" '{print $1}' define contact{ name generic-contact #聯繫人名稱 service_notification_period 24x7 #服務異常,發送通知時間段 host_notification_period 24x7 #主機異常,發送通知時間段 service_notification_options w,u,c,r,f,s #何種異常進行通知 host_notification_options d,u,r,f,s #何種異常進行通知 service_notification_commands notify-service-by-email #定義服務異常發送郵件命令,commands.cfg文件裏定義 host_notification_commands notify-host-by-email #定義主機異常發送郵件命令,commands.cfg文件裏定義 register 0 }
commands.cfg命令定義模板
#定義發送郵件命令 [root@Nagios objects]# sed -n '27,37p' commands.cfg # 'notify-host-by-email' command definition define command{ command_name notify-host-by-email #主機異常發送郵件命令的定義 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$ } # 'notify-service-by-email' command definition define command{ command_name notify-service-by-email #服務異常發送郵件命令的定義 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$ }
contacts.cfg聯繫人定義模板
[root@Nagios objects]# cat contacts.cfg | egrep -v "#|^$" | awk -F ";" '{print $1}' define contact{ contact_name nagiosadmin #定義成員 use generic-contact alias Nagios Admin #成員別名 email 215379068@qq.com #成員郵箱 } define contactgroup{ contactgroup_name admins #聯繫人組名 alias Nagios Administrators #別名 members nagiosadmin #組員名單定義 }
8.3 Nagios各個配置文件的相互間關係圖
九,Nagios插件開發
9.1 概述
9.1.1 什麼是Nagios插件
前文在部署Nagios服務時已經安裝了nagios-plugins-1.4.16.tar.gz,這個軟件包就是Nagios的插件安裝包,安裝後,執行ls -l /usr/local/nagios/libexec能夠看到以下插件內容:
[root@Nagios objects]# ls -l /usr/local/nagios/libexec/ total 5288 lrwxrwxrwx 1 root root 27 Aug 18 08:29 check_111 -> /service/scripts/check_test -rwxr-xr-x. 1 nagios nagios 376524 Aug 14 10:11 check_apt -rwxr-xr-x. 1 nagios nagios 2245 Aug 14 10:11 check_breeze -rwxr-xr-x. 1 nagios nagios 128296 Aug 14 10:11 check_by_ssh lrwxrwxrwx. 1 root root 9 Aug 14 10:11 check_clamd -> check_tcp -rwxr-xr-x. 1 nagios nagios 85694 Aug 14 10:11 check_cluster -r-sr-xr-x. 1 root nagios 123603 Aug 14 10:11 check_dhcp -rwxr-xr-x. 1 nagios nagios 417895 Aug 14 10:11 check_disk -rwxr-xr-x. 1 nagios nagios 9148 Aug 14 10:11 check_disk_smb -rwxr-xr-x. 1 nagios nagios 80689 Aug 14 10:11 check_dummy -rwxr-xr-x. 1 nagios nagios 3056 Aug 14 10:11 check_file_age -rwxr-xr-x. 1 nagios nagios 6318 Aug 14 10:11 check_flexlm lrwxrwxrwx. 1 root root 9 Aug 14 10:11 check_ftp -> check_tcp -rwxr-xr-x. 1 nagios nagios 520614 Aug 14 10:11 check_http -r-sr-xr-x. 1 root nagios 133689 Aug 14 10:11 check_icmp -rwxr-xr-x. 1 nagios nagios 93416 Aug 14 10:11 check_ide_smart -rwxr-xr-x. 1 nagios nagios 15137 Aug 14 10:11 check_ifoperstatus -rwxr-xr-x. 1 nagios nagios 12601 Aug 14 10:11 check_ifstatus lrwxrwxrwx. 1 root root 9 Aug 14 10:11 check_imap -> check_tcp -rwxr-xr-x. 1 nagios nagios 6890 Aug 14 10:11 check_ircd lrwxrwxrwx. 1 root root 9 Aug 14 10:11 check_jabber -> check_tcp -rwxr-xr-x. 1 nagios nagios 106573 Aug 14 10:11 check_load -rwxr-xr-x. 1 nagios nagios 6020 Aug 14