nagios3.4.1監(jiān)控window與linux,并實(shí)現(xiàn)飛信報(bào)警

一,實(shí)驗(yàn)環(huán)境,

成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)公司已向成百上千家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。

1,監(jiān)控端:希望用網(wǎng)頁界面來顯示監(jiān)控結(jié)果,因此需要安裝apache和php,如果希望將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中還需要安裝MySQL。centos 6.3 64,nrpe-2.13.tar.gz, nagios-3.4.1.tar.gz
nagios-plugins-1.4.16.tar.gz。

二,配置安裝監(jiān)控端:

1,安裝環(huán)境,

  1. # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql  

  2. 由于我這是服務(wù)器是從數(shù)據(jù)庫。因此少安裝了mysql-server,mysql已經(jīng)編譯好了,如果你主機(jī)上沒有mysql則可以執(zhí)行下面這條命令

  3. # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server

  4. # yum -y groupinstall 'Development tools'

2,添加nagios運(yùn)行行需要用戶和組

  1. # groupadd  nagcmd 這個(gè)用戶組用于從web接口執(zhí)行外部命令

  2. # useradd -G nagcmd nagios ,不能加-s /sbin/nologin,下面啟動(dòng)nagios服務(wù)需要用到,如果加了

  3. -s /sbin/nogloin啟動(dòng)服務(wù)時(shí)會(huì)提示Starting nagios:This account is currently not available.

  4. # passwd nagios  

  5. 把a(bǔ)pache加入到nagcmd組,以便于在通過web Interface操作nagios時(shí)能夠具有足夠的權(quán)限:

  6. # usermod -a -G nagcmd apache

三,編譯nagios

  1. # tar zxf nagios-3.4.1.tar.gz  

  2. # cd nagios

  3. # ./configure --with-command-group=nagcmd --enable-event-broker  

  4. # make all

  5. # make install

  6. # make install-init

  7. # make install-commandmode

  8. # make install-config

  9. # make install-webconf  在/etc/httpd/conf.d/生成了nagios.conf

  10. # cd /usr/local/nagios

  11. # ls

  12. bin  etc  libexec  sbin  share  var 如果有這個(gè)五個(gè)目錄則nagios安裝成功

  13. #創(chuàng)建一個(gè)登錄nagios web程序的用戶,這個(gè)用戶帳號(hào)在以后通過web登錄nagios認(rèn)證時(shí)所用:

  14. # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

四,編譯nagios-plugin

nagios的所有監(jiān)控工作都是通過插件完成的,因此,在啟動(dòng)nagios之前還需要為其安裝官方提供的插件。

  1. # tar zxf nagios-plugins-1.4.16.tar.gz  

  2. # cd nagios-plugins-1.4.16

  3. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios

  4. # make

  5. # make install

  6. 如果出現(xiàn)下面錯(cuò)誤則需要安裝 yum -y install openssl openssl-devel

  7. check_http.c:312: error: ?.sl_version?.undeclared (first use in this function)

  8. check_http.c:312: error: (Each undeclared identifier is reported only once

  9. check_http.c:312: error: for each function it appears in.)

  10. make[2]: *** [check_http.o] Error 1

  11. make[2]: Leaving directory `/root/nagios-plugins-1.4.16/plugins'

  12. make[1]: *** [all-recursive] Error 1

  13. make[1]: Leaving directory `/root/nagios-plugins-1.4.16'

  14. make: *** [all] Error 2

  15. #make clean

  16. #make && make install

五、配置并啟動(dòng)Nagios

(1)把nagios添加為系統(tǒng)服務(wù)并將之加入到自動(dòng)啟動(dòng)服務(wù)隊(duì)列:

# chkconfig --add nagios

# chkconfig nagios on

(2)檢查其主配置文件的語法是否正確:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3)如果上面的語法檢查沒有問題,接下來就可以正式啟動(dòng)nagios服務(wù)了:

# service nagios start

#啟動(dòng)http服務(wù) service httpd start

# /etc/init.d/iptables stop

(4)配置selinux

如果系統(tǒng)開啟了selinux服務(wù),則默認(rèn)為拒絕nagios web cgi程序的運(yùn)行。

#setenforce 0 表示暫時(shí)關(guān)閉

如果想完全關(guān)閉selinux,可以通過編輯/etc/sysconfig/selinux文件,將其中的selinux后面的值“forceing”修改為“disabled”即可,但是需要重啟。

當(dāng)然,也可以通過以下方式將nagios的CGI程序運(yùn)行于SELinux/targeted模式而不用關(guān)閉selinux:

# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin

# chcon -R -t httpd_sys_content_t /usr/local/nagios/share

(5)通過web界面查看nagios:192.168.1.15是我監(jiān)控端的IP.

http://192.168.1.15/nagios

登錄時(shí)需要指定前面設(shè)定的web認(rèn)證帳號(hào)和密碼。

打開網(wǎng)頁如果看到:HTTP WARNING: HTTP/1.1 403Forbidden

因?yàn)閚agios監(jiān)控/var/www/html/下面的index.html文件,若沒有就會(huì)提示錯(cuò)誤,創(chuàng)建一個(gè)文件即可!

echo "welcome" > /var/www/html/index.html

(6)Nagios的主配置文件

1,Nagios的主配置文件/usr/local/nagios/etc/nagios.cfg,其語法非常簡(jiǎn)潔,通常#開頭的行為注釋行,而參數(shù)的設(shè)置格式為<parameter>=<value>;其中,有些參數(shù)是可以重復(fù)出現(xiàn)的。其中常用的參數(shù)說明如下:

log_file: 設(shè)定Nagios的日志文件;

cfg_file: Nagios對(duì)象定義的相關(guān)文件,此參數(shù)可重復(fù)使用多次以指定多個(gè)文件;

cfg_dir:  設(shè)定Nagios對(duì)象定義的相關(guān)文件所在的目錄,此目錄中的所有文件都會(huì)被作為對(duì)象定義的文件;此參數(shù)可重復(fù)使用多次以指定多個(gè)目錄;

resource_file: 設(shè)定Nagios附加的宏定義的相關(guān)文件;

status_file: 設(shè)定Nagios存儲(chǔ)所有主機(jī)和服務(wù)當(dāng)前狀態(tài)信息的文件;

status_update_interval: 設(shè)定status_file指定的文件中狀態(tài)信息的更新頻率;

service_check_timeout: 設(shè)定服務(wù)檢測(cè)的超時(shí)時(shí)間,默認(rèn)為60秒;

host_check_timeout: 設(shè)定主機(jī)檢測(cè)的超時(shí)時(shí)間,默認(rèn)為30秒;

notification_timeout: 設(shè)定通知信息發(fā)送嘗試的超時(shí)時(shí)間,默認(rèn)為30秒;

2、resource_file和宏定義

在主配置文件中,參數(shù)resource_file用于定義所有用戶變量(即“宏”)的存儲(chǔ)文件,它用于存儲(chǔ)對(duì)象定義中的可以訪問的額外信息,如訪問某服務(wù)的密碼等;因此,這些信息通常都是些敏感數(shù)據(jù),一般不允許通過Web接口來訪問。此文件中可以定義的宏可多達(dá)32個(gè),它們分別為$USER1$,$USER2$...$USER32,這些宏一般在check命令中引用。通常情況下$USER1$用于引用Nagios插件所在目錄這個(gè)路徑信息,因此,一般不建議修改其值。

3,Nagios事先定義了許多宏,它們的值通常依賴于其上下文。如下:

HOSTNAME: 用于引用host_name指定所定義的主機(jī)的主機(jī)名;每個(gè)主機(jī)的主機(jī)名都是唯一的;

HOSTADDRESS: 用于引用host對(duì)象中的address指令的值,它通??梢詾镮P地址或主機(jī)名;

HOSTDISPLAYNAME: 用于引用host對(duì)象中alias指令的值,用以描述當(dāng)前主機(jī),即主機(jī)的顯示名稱;

HOSTSTATE:某主機(jī)的當(dāng)前狀態(tài),為UP,DOWN,UNREACHABLE三者之一;

HOSTGROUPNAMES: 用于引用某主機(jī)所屬的所有主機(jī)組的簡(jiǎn)名,主機(jī)組名稱之間以逗號(hào)分隔;

LASTHOSTCHECK:用于引用某主機(jī)上次檢測(cè)的時(shí)間和日期,Unix時(shí)間戳格式;

LISTHOSTSTATE:用于引用某主機(jī)前一次檢測(cè)時(shí)的狀態(tài),為UP,DOWN或UNREACHABLE三者之一;

SERVICEDESC: 用于引用對(duì)應(yīng)service對(duì)象中的desccription指令的值;

SERVICESTATE: 用于引用某服務(wù)的當(dāng)前狀態(tài),為OK,WARNING,UNKOWN或CRITICAL四者之一;

SERVICEGROUPNAMES: 用于引用某服務(wù)所屬的所有服務(wù)組的簡(jiǎn)名,服務(wù)組名稱之間以逗號(hào)分隔;

CONTACTNAME: 用于引用某contact對(duì)象中contact_name指令的值;

CONTACTALIAS: 用于引用某contact對(duì)象中alias指令的值;

CONTACTEMAIL: 用于引用某contact對(duì)象中email指令的值;

CONTACTGROUPNAMES: 用于引用某contact所屬的所有contact組的簡(jiǎn)名,contact組名稱之間以逗號(hào)分隔;

4,Nagios 3還支持自定義宏,只是它的定義和使用方式比較獨(dú)特。管理員可以在某類型對(duì)象的定義中使用額外的指令,并能夠在命令中使用特別格式的宏來引用此指令的值。其引用方式根據(jù)對(duì)象類型的不同也有所不同,具體如下:

$_HOST<variable>$ – 引用在主機(jī)對(duì)象中定義的指令的值;

$_SERVICE<variable>$ – 引用在服務(wù)對(duì)象中定義的指令的值;

$_CONTACT<variable>$ – 引用在聯(lián)系人對(duì)象中定義的指令的值;

六、基于NRPE監(jiān)控遠(yuǎn)程Linux主機(jī)

1,Nagios監(jiān)控遠(yuǎn)程主機(jī)的方法有多種,其方式包括SNMP、NRPE、SSH和NCSA等。這里介紹其通過NRPE監(jiān)控遠(yuǎn)程Linux主機(jī)的方式。

2,NRPE(Nagios Remote Plugin Executor)是用于在遠(yuǎn)端服務(wù)器上運(yùn)行檢測(cè)命令的守護(hù)進(jìn)程,它用于讓Nagios監(jiān)控端基于安裝的方式觸發(fā)遠(yuǎn)端主機(jī)上的檢測(cè)命令,并將檢測(cè)結(jié)果輸出至監(jiān)控端。而其執(zhí)行的開銷遠(yuǎn)低于基于SSH的檢測(cè)方式,而且檢測(cè)過程并不需要遠(yuǎn)程主機(jī)上的系統(tǒng)帳號(hào)等信息,其安全性也高于SSH的檢測(cè)方式。

2、安裝配置被監(jiān)控端

1)先添加nagios用戶

# useradd -s /sbin/nologin nagios

2)NRPE依賴于nagios-plugins,因此,需要先安裝

  1. # tar zxf nagios-plugins-1.4.16.tar.gz  

  2. # cd nagios-plugins-1.4.16

  3. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios

  4. # make all

  5. # make instal

3)安裝NRPE

  1. # tar -zxvf nrpe-2.13.tar.gz

  2. # cd nrpe-2.13.tar.gz

  3. # ./configure --with-nrpe-user=nagios \

  4. --with-nrpe-group=nagios \

  5. --with-nagios-user=nagios \

  6. --with-nagios-group=nagios \

  7.     --enable-command-args \

  8.     --enable-ssl

  9. # make all

  10. # make install-plugin

  11. # make install-daemon  安裝成守護(hù)進(jìn)程

  12. # make install-daemon-config  守護(hù)進(jìn)程的配置文件

  13. 修改nrpe配置文件

  14. #vim /usr/local/nagios/etc/nrpe.cfg

  15. allowed_hosts=192.168.1.15 監(jiān)控端的IP

4)啟動(dòng)NRPE

  1. # /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

為了便于NRPE服務(wù)的啟動(dòng),可以將如下內(nèi)容定義為/etc/init.d/nrped腳本:

  1. #!/bin/bash

  2. # chkconfig: 2345 88 12

  3. # description: NRPE DAEMON

  4. NRPE=/usr/local/nagios/bin/nrpe

  5. NRPECONF=/usr/local/nagios/etc/nrpe.cfg

  6. case "$1" in

  7.    start)

  8.        echo -n "Starting NRPE daemon..."

  9.        $NRPE -c $NRPECONF -d

  10.        echo " done."

  11.        ;;

  12.    stop)

  13.        echo -n "Stopping NRPE daemon..."

  14.        pkill -u nagios nrpe

  15.        echo " done."

  16.    ;;

  17.    restart)

  18.        $0 stop

  19.        sleep 2

  20.        $0 start

  21.        ;;

  22.    *)

  23.        echo "Usage: $0 start|stop|restart"

  24.        ;;

  25.    esac

  26. exit 0

七、在監(jiān)控端安裝NRPE

  1. # tar -zxvf nrpe-2.13.tar.gz

  2. # cd nrpe-2.13.tar.gz

  3. # ./configure --with-nrpe-user=nagios \

  4. --with-nrpe-group=nagios \

  5. --with-nagios-user=nagios \

  6. --with-nagios-group=nagios \

  7.     --enable-command-args \

  8.     --enable-ssl

  9. # make all

  10. # make install-plugin

八,使用nrpe監(jiān)控Linux主機(jī)

  1. 1)在監(jiān)控端,測(cè)試遠(yuǎn)程主機(jī)(被監(jiān)控端)

  2. #cd /usr/local/nagios/libexec/

  3. # ./check_nrpe -H 192.168.1.12

  4. NRPE v2.13

  5. 表示命令能夠正常監(jiān)控

  6. 2)定義如何監(jiān)控遠(yuǎn)程主機(jī)及服務(wù):

  7. 通過NRPE監(jiān)控遠(yuǎn)程Linux主機(jī)要使用chech_nrpe插件進(jìn)行,其語法格式如下:

  8. check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]

  9. #cd /usr/local/nagios/etc/objects

  10. #vim command.cfg

  11. 3)定義監(jiān)控遠(yuǎn)程Linux主機(jī)的命令:

  12. define command

  13.    {

  14.        command_name check_nrpe

  15.        command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c $ARG1$

  16.    }

  17. 4)定義被監(jiān)控機(jī)的主機(jī)

  18. #vim  linuxhost.cfg

  19. define host{

  20.        use             linux-server    

  21.        host_name       linuxhost      

  22.        alias           My linux host    

  23.        address         192.168.1.12    

  24.        }

  25. define service{

  26.        use                     generic-service

  27.        host_name               linuxhost

  28.        service_description     CHECK USERS

  29.        check_command           check_nrpe!check_users

  30.        }

  31. define service{

  32.        use                     generic-service

  33.        host_name               linuxhost

  34.        service_description     load

  35.        check_command           check_nrpe!check_load

  36.        }        

  37. define service{

  38.        use                     generic-service

  39.        host_name               linuxhost

  40.        service_description     disk sda1

  41.        check_command           check_nrpe!check_sda1

  42.        }

  43. define service{

  44.        use                     generic-service

  45.        host_name               linuxhost

  46.        service_description     Zombile procs

  47.        check_command           check_nrpe!check_zombie_procs

  48.        }

  49. define service{

  50.        use                     generic-service

  51.        host_name               linuxhost

  52.        service_description     total procs

  53.        check_command           check_nrpe!check_total_procs

  54.        }    

  55. check_nrpe!后面接的命令是在 /usr/local/nagios/etc/nrpe.cfg里寫定義好的命令,如下面只有五個(gè),中括號(hào)內(nèi)的為命令名

  56. command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

  57. command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

  58. command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

  59. command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

  60. command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200  

  61. 5)啟用linuxhost.cfg文件

  62. vim /usr/local/nagios/etc/nagios.cfg添加一行

  63. cfg_file=/usr/local/nagios/etc/objects/linuxhost.cfg

  64. 檢查語法錯(cuò)誤:

  65. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  

  66. 沒有提示錯(cuò)誤,則下一步

  67. service  nagios restart

  68. 打開http://192.168.1.15/nagios

九,使用check_nt監(jiān)控windows主機(jī)

在window主機(jī)上需要先安裝nsclient,根據(jù)自己的系統(tǒng)下載。
http://nsclient.org/nscp/downloads,在安裝過程選擇默認(rèn)。安裝到這里需要填寫監(jiān)控端的ip,與監(jiān)控這臺(tái)主機(jī)的密碼。把下面都選中所支持的都選中。

nagios 3.4.1監(jiān)控window與linux,并實(shí)現(xiàn)飛信報(bào)警

安裝完之后在window命令行窗口查看沒有沒有啟動(dòng)5666和12489端口,如果有表示正常。

nagios 3.4.1監(jiān)控window與linux,并實(shí)現(xiàn)飛信報(bào)警

十,在監(jiān)控端操作,用命令能否正常監(jiān)控被監(jiān)控端,192.168.1.5為被監(jiān)控端

  1. #cd /usr/local/nagios/bin/

  2. #./check_nt -h 查看幫助

  3. #./check_nt -H 192.168.1.5 -v UPTIME  

  4. 沒有指定端口,而默認(rèn)的端口是1248

  5. CRITICAL - Socket timeout after 10 seconds

  6. # ./check_nt -H 192.168.1.5 -v UPTIME -p 12489  

  7. 沒有指定密碼

  8. NSClient - ERROR: Invalid password.

  9. # ./check_nt -H 192.168.1.5 -v UPTIME -p 12489 -s admin

  10. System Uptime - 0 day(s) 0 hour(s) 24 minute(s)

  11. # ./check_nt -H 192.168.1.5 -p 12489 -v CPULOAD -w 80 -c 90  -l 5,80,90 -s admin

  12. CPU Load 10% (5 min average) |   '5 min avg Load'=10%;80;90;0;100

  13. 一般信息             |  資源的性能信息

  14. 他們之間輸出要用|隔開,如果自己開發(fā)插件必須使用這種格式,如果

  15. 只輸出一般信息一行就行。

  16. -w 警告比例 -c 緊急比例 -l 表示過去5分鐘的平均值,80%為警告,90%為緊急

  17. # ./check_nt -H 192.168.1.5 -p 12489 -v USEDDISKSPACE -w 80 -c 90 -l C -s admin

  18. C:\ - total: 50.01 Gb - used: 18.94 Gb (38%) - free 31.07 Gb (62%) | 'C:\ Used Space'=18.94Gb;40.01;45.01;0.00;50.01

十一,在監(jiān)控端定義好被監(jiān)控端的主機(jī),服務(wù),命令
(1)定義命令

  1. cd /usr/local/nagios/etc/objects

  2. vim commands.cfg 在最后新增下列

  3. define command{

  4.    command_name    check_nt  

  5.    \\定義命令的名字,可以跟插件的名字相同,

  6.    command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s admin -v $ARG1$ $ARG2$

  7.    \\$..$表示系統(tǒng)內(nèi)置的宏,也就是所謂的變量

  8.    \\$USER1$表示插件所在的目錄  

  9.    \\-H 指定主機(jī)地址  

  10.    \\$HOSTADDRESS$ 應(yīng)用到哪個(gè)主機(jī),就用哪個(gè)主機(jī)的地址

  11.    \\$ARG1$傳遞的參數(shù)

  12. \\-s指定密碼,如果有需要加,如上面安裝時(shí)設(shè)置了密碼為admin

  13.    }

(2)定義主機(jī)

  1. #cd /usr/local/nagios/etc/objects

  2. vim window.cfg 修改原來默認(rèn)的,將主機(jī)組一段注釋。

  3. define host{

  4.        use             windows-server  ; 使用模板,分號(hào)后面的表示注釋

  5.        host_name       winhost    ; 在nagios網(wǎng)頁顯示的主機(jī)名,修改成自己服務(wù)器的編號(hào)最好,方便記憶

  6.        alias           My Windows host      ; A longer name associated with the host

  7.        address         192.168.1.5    ; 被監(jiān)控機(jī)的IP

  8.        }

  9. define service{

  10.        use                     generic-service

  11.        host_name               winhost

  12.        service_description     NSClient++ Version

  13.        check_command           check_nt!CLIENTVERSION //傳遞給-v 的參數(shù)第一個(gè)參數(shù)

  14.        }

  15. define service{

  16.        use                     generic-service

  17.        host_name               winhost

  18.        service_description     Uptime

  19.        check_command           check_nt!UPTIME

  20.        }

  21. define service{

  22.        use                     generic-service

  23.        host_name               winhost

  24.        service_description     CPU Load

  25.        check_command           check_nt!CPULOAD!-l 5,80,90 //傳遞兩過參數(shù)!CPULOAD 和-! -l 5,80,90

  26.        }

  27. :.,$s@winserver@winhost@g  表示在當(dāng)行到最后后,將所有的winserver替換成winhost  

(3)啟用windows配置文件

  1. #cd /usr/local/nagios/etc/

  2. #vim nagios.cfg

  3. # Definitions for monitoring a Windows machine

  4. cfg_file=/usr/local/nagios/etc/objects/windows.cfg  

  5. 將此行的#刪除,啟用windows配置文件

  6. 由于剛才修改過文件,最好檢查配置文件語法有沒有錯(cuò)誤

  7. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

  8. Reading configuration data...

  9.   Read main config file okay...

  10. Processing object config file '/usr/local/nagios/etc/objects/commands.cfg'...

  11. Warning: Duplicate definition found for command 'check_nt' (config file '/usr/local/nagios/etc/objects/commands.cfg', starting on line 240)

  12. 表示重復(fù)定義了一個(gè)check_nt命令,在commands.cfg中有一個(gè)錯(cuò)誤,240行

  13. Error: Could not add object property in file '/usr/local/nagios/etc/objects/commands.cfg' on line 241.

  14.   Error processing object config files!

  15. 在command.cfg中本來已經(jīng)有一個(gè)check_nt,因此需要將其后面添加的命令注釋。在原來的check_nt的命令行添加

  16. -s admin,因?yàn)樵诎惭b時(shí)設(shè)置了密碼

  17.   define command{

  18.        command_name    check_nt

  19.        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s admin

  20.        }

  21. 提示錯(cuò)誤,因此按剛才的提示修正好錯(cuò)誤

  22. #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg繼續(xù)檢查一次

  23. Total Warnings: 0

  24. Total Errors:   0

  25. Things look okay - No serious problems were detected during the pre-flight check

  26. 提示ok

  27. 重新啟動(dòng)nagios服務(wù)

  28. #service nagios restart

  29. #打開http://192.168.1.15/nagios可以看到剛才的監(jiān)控的winhost

十二,監(jiān)控mysql與http

  1. # ./check_http -H 192.168.1.12 先測(cè)試192.168.1.12上面的web服務(wù) #cd /usr/local/nagios/etc/objects

  2. 1)監(jiān)控http

  3. 定義命令

  4. 在commands.cfg已經(jīng)存在檢測(cè)命令,因此無需添加,只需要在linuxhost.cfg文件定義好主機(jī)

  5. vim commands.cfg

  6. # 'check_http' command definition  

  7. define command{

  8.        command_name    check_http

  9.        command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$

  10.        }

  11. 定義服務(wù)

  12. vim linuxhost.cfg  在最后一行再添加一個(gè)服務(wù)

  13. define service{

  14.        use                     generic-service

  15.        host_name               linuxhost

  16.        service_description     web service

  17.        check_command           check_http

  18.        }

  19. #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

  20. # service nagios restart

  21. 2)檢測(cè)mysql

  22. vim commands.cfg 添加如下行

  23.   define command {

  24.        command_name check_mysql

  25.        command_line  $USER1$/check_mysql -H $HOSTAADDRESS$ -u $ARG1$ -p $ARG2$

  26.        }

  27. vim linuxhost.cfg 添加如下行 由于此文件存儲(chǔ)了mysql的用戶名與密碼,需要額外小心

  28.    define service{

  29.        use                     generic-service

  30.        host_name               linuxhost

  31.        service_description     mysql server

  32.        check_command           check_mysql  -uroot -p123456

  33.        }

  34. # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

  35. # service nagios restart

十三,定義向管理員發(fā)起通知

  1. #cd /usr/local/nagios/etc/objects

  2. [root@test1 objects]#vim templates.cfg  

  3.  define service{

  4.        name                            local-service            

  5.        use                             generic-service 表示繼承了generic-service里的全部屬性,因此服務(wù)資源監(jiān)控的聯(lián)系人還是admins組      

  6.        max_check_attempts              4                        

  7.        normal_check_interval           5                        

  8.        retry_check_interval            1                      

  9.        register                        0                        

  10.        }

  11. 查看contacs.cfg里定義的

  12. [root@test1 objects]# vim  contacts.cfg  

  13. define contact{

  14.        contact_name       nagiosadmin              

  15.        use                generic-contact  繼承g(shù)eneric-contact里的屬性,打開templates.cfg,generic-contact里定義什么時(shí)間接收郵件等一些屬性      

  16.        alias              Nagios Admin            

  17.        email              nagios@qq.com 會(huì)發(fā)送到這個(gè)郵箱,這個(gè)郵箱可以修改成互聯(lián)網(wǎng)的上的,但是本機(jī)需要有smtp客戶端,

  18. 查看是否有netstat -tan |grep 25 centos 6.0版本的系統(tǒng)已經(jīng)改用postfix
               }

  19. define contactgroup{

  20.        contactgroup_name       admins

  21.        alias                   Nagios Administrators

  22.        members                 nagiosadmin

  23.        }

  24. [root@test1 objects]#vim commands.cfg 查看generic-service里的notify-host-by-email與notify-service-by-email

  25.  define command{

  26.        command_name    notify-host-by-email

  27.        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$

  28.        }

  29. # 'notify-service-by-email' command definition

  30. define command{

  31.        command_name    notify-service-by-email

  32.        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$

  33.        }

十四,定義飛信改送通知。http://blog.51yip.com/server/1397.html這個(gè)大師寫得不借,我也按他的方式安裝的。飛信命令已經(jīng)上傳至附件中,還需要下載飛信的依賴的庫文件。如果不想下載,則到下載中心,下載,我已將飛信和飛信命令都上傳。解壓完后,再上傳到linux中,
wget  http://www.it-adv.net/fetion/cenos54X64_20101113.rar
wget http://www.it-adv.net/fetion/linuxso_20101113.rar

如果到下載中心下載我上傳的飛信壓縮包,則按下面步驟安裝飛信

  1. #在fetion目錄中應(yīng)該有fetion程序和lib目錄

  2. #mv fetion /usr/local/

  3. # vim /etc/ld.so.conf.d/fetion添加一行

  4. /usr/local/fetion/lib

  5. # ldconfig /usr/local/fetion/lib/ 后面每次執(zhí)行一次都會(huì)下面的提示,不用管。

  6. ldconfig: /usr/local/fetion/lib/libstdc++.so.6 is not a symbolic link

  7. ldconfig: /usr/local/fetion/lib/libpamc.so.0 is not a symbolic link

  8. ldconfig: /usr/local/fetion/lib/libpam_misc.so.0 is not a symbolic link

  9. ldconfig: /usr/local/fetion/lib/libcap.so.1 is not a symbolic link

  10. ldconfig: /usr/local/fetion/lib/libcom_err.so.2 is not a symbolic link

  11. ldconfig: /usr/local/fetion/lib/libpcre.so.0 is not a symbolic link

  12. ldconfig: /usr/local/fetion/lib/libpam.so.0 is not a symbolic link

  13. ldconfig: /usr/local/fetion/lib/ld-linux.so.2 is not a symbolic link

  14. #chown nagios:nagios /usr/local/fetion

  15. # chmod +x /usr/local/fetion/fetion

  16. # /usr/local/fetion/fetion  

  17. -bash: /usr/local/fetion/fetion: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

  18. #yum -y install ld-linux.so.2

  19. #ldconfig /usr/local/fetion/lib

  20. # /usr/local/fetion/fetion  

  21. /usr/local/fetion/fetion: error while loading shared libraries: libACE-5.7.2.so: cannot open shared object file: No such file or directory

  22. #yum -y install openssl-devel

  23. #ldconfig /usr/local/fetion/lib

  24. # /usr/local/fetion/fetion  

  25. /usr/local/fetion/fetion: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

  26. #yum -y install libgcc_s.so.1

  27. #ldconfig /usr/local/fetion/lib

  28. # /usr/local/fetion/fetion  

  29. /usr/local/fetion/fetion: error while loading shared libraries: libgssapi_krb5.so.2: cannot open shared object file: No such file or directory

  30. #yum -y install libgssapi_krb5.so.2

  31. #ldconfig /usr/local/fetion/lib

  32. # /usr/local/fetion/fetion  

  33. /usr/local/fetion/fetion: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

  34. #yum -y install libz.so.1

  35. #ldconfig /usr/local/fetion/lib

  36. #/usr/local/fetion 顯示這個(gè)表示飛信能正常使用

  37. Usage:

  38. --mobile=[mobile]

  39. --sid=[sid]

  40. --pwd=[pwd]

  41. --config=[config file] *format:index mobile password

  42. --index=[index no in config file,refer to sample.conf]

  43.    --debug  *debug mode on

  44.    --hide  *login fetion in hidden state

  45. --to=[mobile/sid]

1)飛信安裝好后,先測(cè)試能否發(fā)送,現(xiàn)在飛信可以用聯(lián)通號(hào)注冊(cè),但是這個(gè)飛信程序只支持移動(dòng)號(hào)碼,因此需要用移動(dòng)號(hào)碼的飛信來測(cè)試。先送給自己試下,再給自己的飛信好友發(fā)送。

  1. [root@test1 ~]# /usr/local/fetion/fetion --mobile=1361263XXXX--pwd=xxxxx--to=1361263xxxx--msg-utf8="test"

2)上面ok,則修改nagios

  1. cd /usr/local/nagios/etc/objects/

  2. 1,定義命令 vim command.cfgs 添加下面內(nèi)容

  3. define command {

  4.        command_name notify-host-by-fetion

  5.        command_line    /usr/local/fetion/fetion --mobile=1361265xxxx--pwd=123456--msg-utf8="$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time: $LONGDATETIME$"--to=$CONTACTPAGER$

  6. }

  7. define command {

  8.        command_name notify-service-by-fetion

  9.        command_line    /usr/local/fetion/fetion --mobile=1361265xxxx--pwd=123456--msg-utf8=" $NOTIFICATIONTYPE$ Service: $SERVICEDESC$ Host: $HOSTALIAS$ Address: $HOSTADDRESS$ State: $SERVICESTATE$ Date/Time: $LONGDATETIME$ Additional Info: $SERVICEOUTPUT$"--to=$CONTACTPAGER$

  10. }

  11. 注解:$CONTACTNAME$: 用于引用某contact對(duì)象中contact_name指令的值;也就是contacts.cfg定義的contact_name定義命令,當(dāng)然也可將$CONTACTPAGER$直接修改成手機(jī)號(hào)碼

  12. 2,定義聯(lián)系人

  13. vim contacts.cfg  

  14. define contact{

  15.        contact_name                    nagiosadmin             ; Short name of user

  16.        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)

  17.        alias                           Nagios Admin            ; Full name of user

  18.        email                           nagios@qq.com      ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

  19.        pager                           123478934

  20.    }

  21. 3,修改模板

  22. vim templates.cfgs

  23. 在defind contacat中  下面兩行分別添加fetion通知

  24.   service_notification_commands   notify-service-by-email,notify-service-by-fetion        

  25.   host_notification_commands      notify-host-by-email,notify-host-by-fetion    

3,重啟nagios,service nagios restart 將一臺(tái)虛擬機(jī)掛起,并測(cè)試。

附件:http://down.51cto.com/data/2361855

新聞標(biāo)題:nagios3.4.1監(jiān)控window與linux,并實(shí)現(xiàn)飛信報(bào)警
當(dāng)前URL:http://bm7419.com/article0/goegoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、域名注冊(cè)網(wǎng)站收錄、網(wǎng)頁設(shè)計(jì)公司、定制網(wǎng)站、網(wǎng)站制作

廣告

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

網(wǎng)站托管運(yùn)營(yíng)