nagios搭建和郵件短信報警設置

                                       Nagios搭建與139郵箱短信報警設置

 

最近因爲工作需要搭建nagios,初次接觸,看了很多網上很多nagios的教程,歷盡千辛萬苦最終搭建了一個簡單的nagios,結合網上的教程我把自己做的配置貼出來,有錯誤歡迎指正                        

一:環境準備

由於要搭建的nagios主機是一個裸機,所以搭建nagios監控系統前需要搭建一個簡單的LAMP平臺,

這裏我就直接用yum安裝了


yum -y install http* mysql* php-*

對於英語不好的我,每做完一步我就喜歡用echo $? 驗證一下 看看返回值是不是0         如果是0說明操作正確,否則錯誤,這種方法對我很實用,誰讓英語差呢!

[root@localhost ~]# service httpd start

啓動 httpd:                                               [確定]

[root@localhost ~]# chkconfig httpd on

[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf
 231 User apache

 232 Group apache

 391 DirectoryIndex index.php index.html index.html.var

 992   #setting for nagios

 993    ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

 994   <Directory "/usr/local/nagios/sbin">

 995    AuthType Basic

 996     Options ExecCGI

 997     AllowOverride None

 998     Order allow,deny

 999     Allow from all

1000    AuthName "nagios access"

1001    AuthUserFile /usr/local/nagios/etc/htpasswd

1002    Require valid-user

1003    </Directory>

1004    Alias /nagios "/usr/local/nagios/share"

1005     <Directory "/usr/local/nagios/share">

1006   AuthType Basic

1007     Options ExecCGI

1008    AllowOverride None

1009  Order allow,deny

1010     Allow from all

1011    AuthName "nagios access"

1012    AuthUserFile /usr/local/nagios/etc/htpasswd

1013   Require valid-user

1014     </Directory>

創建apache目錄的驗證文件touch  /usr/local/nagios/etc/htpasswd
添加用戶

[root@localhost ~]# htpasswd -c /usr/local/nagios/etc/htpasswd cainiao

 

 

 

 


二:nagios安裝

(1)創建nagios程序用戶、組
[root@localhost ~]# useradd -s /sbin/nologin nagios    

[root@localhost ~]# mkdir /usr/local/nagios/    

[root@localhost ~]# chown -R nagios:nagios /usr/local/nagios/


( 2) 安裝和編譯nagios

搭建nagios所需要的軟件已經放在/nagios

[root@localhost nagios]# tar zxf nagios-3.2.0.tar.gz

[root@localhost nagios]# cd nagios-3.2.0

[root@localhost nagios-3.2.0]# ./configure --prefix=/usr/local/nagios/

[root@localhost nagios-3.2.0]# make all ; make install ; make install-init ; make install-commandmode ; make install-config

[root@localhost nagios-3.2.0]# chkconfig --add nagios

[root@localhost nagios-3.2.0]# chkconfig nagios on


(3)安裝nagios插件
[root@localhost nagios]# tar zxf nagios-plugins-1.4.14.tar.gz

[root@localhost nagios]# cd nagios-plugins-1.4.14

[root@localhost nagios-plugins-1.4.14]# ./configure --prefix=/usr/local/nagios/ ; make ; make insta


(4)安裝Nagios的漢化包

[root@localhost nagios]# tar jxf nagios-cn-3.2.0.tar.bz2

[root@localhost nagios]# cd nagios-cn-3.2.0

[root@localhost nagios-cn-3.2.0]# ./configure ; make all ; make install
 

接下來通過瀏覽器驗證nagios是否安裝成功

http:.//nagios的ip/nagios  這裏就假如nagios的服務器的ip是:192.168.1.1

 

 

 


用戶就是剛纔新建的 cainiao  密碼是剛纔新建此用戶的輸入的


接下來就是難點了

三:nagios服務器配置過程

  這裏先說一下nagios的幾個配置文件的作用

Nagios默認有如下幾個配置文件修改:

# ll /usr/local/nagios/etc/objects

commands.cfg 設定默認的指令來執行某個監控,也可以自己設定

contacts.cfg 設定聯繫人,出問題時的聯繫人與聯繫組

localhost.cfg 設定對本服務器的監控,配置其他服務時可參考此文件

timeperiods.cfg 設定週一至週五7X24小時不間斷,或自定義其他時間段

hosts.cfg 設定被監控的主機(自己創建)

services.cfg 設定被監控的服務(自己創建)

(1) 定義hosts.cfg文件

[root@localhost ~]# cd /usr/local/nagios/etc/

[root@localhost etc]# vim hosts.cfg

define host{

use     linux-server

host_name       web

alias   benet-web

address 192.168.1.100

define host{

use     linux-server

host_name       mysql

alias   benet-mysql

address 192.168.1.200

}

define hostgroup{

hostgroup_name  sa-servers

alias   sa servers

members web,mysql

}


( 2 )定義services.cfg


################- yuanlin web -##########################

define service{

use local-service

host_name web

service_description PING

check_command check_ping!100.0,20%!500.0,60%

}

define service{

use local-service

host_name web

service_description SSH

check_command check_ssh

}

define service{

use local-service

host_name web

service_description SSHD

check_command check_tcp!22

}

define service{

use local-service

host_name web

service_description http

check_command check_http

}


####################-  yuanlin  MYSQL -##########################

define service{

use local-service

host_name mysql

service_description PING

check_command check_ping!100.0,20%!500.0,60%

}

define service{

use local-service

host_name mysql

service_description SSH

check_command check_ssh

}

define service{

use local-service

host_name mysql

service_description ftp

check_command check_ftp

}

define service{

use local-service

host_name mysql

service_description mysqlport

check_command check_tcp!3306

}

 

(3) 定義cgi.cfg


[root@localhost etc]# cd /usr/local/nagios/etc/

[root@localhost etc]# vim cgi.cfg

107 default_user_name=benet

119 authorized_for_system_information=nagiosadmin,cainiao

131 authorized_for_configuration_information=nagiosadmin,cainiao

144 authorized_for_system_commands=cainiao

157 authorized_for_all_services=nagiosadmin,cainiao

158 authorized_for_all_hosts=nagiosadmin,cainiao

171 authorized_for_all_service_commands=nagiosadmin,cainiao

172 authorized_for_all_host_commands=nagiosadmin,cainiao

 

定義nagios.cfg

[root@localhost etc]# vim nagios.cfg

19 log_file=/usr/local/nagios/var/nagios.log

     30 cfg_file=/usr/local/nagios/etc/hosts.cfg

     31 cfg_file=/usr/local/nagios/etc/services.cfg

     32 cfg_file=/usr/local/nagios/etc/commands.cfg

     33 cfg_file=/usr/local/nagios/etc/contacts.cfg

     34 cfg_file=/usr/local/nagios/etc/timeperiods.cfg

     35 cfg_file=/usr/local/nagios/etc/templates.cfg

[root@localhost etc]# cd objects/

[root@localhost objects]# cp commands.cfg contacts.cfg timeperiods.cfg templates.cfg localhost.cfg /usr/local/nagios/etc/


四:Nagios的運行和維護


1) 驗證nagios主配置文件的語法正確性

[root@localhost etc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Total Warnings: 0

Total Errors:   0


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

2) 啓動與停止nagios

[root@localhost etc]# service nagios start

Starting nagios:This account is currently not available.

 done.

[root@localhost etc]# service nagios status

nagios (pid 5106) is running...

[root@localhost etc]# service nagios stop

Stopping nagios: .done.

[root@localhost etc]# service nagios restart

Running configuration check...done.

Stopping nagios: No lock file found in /usr/local/nagios//var/nagios.lock

Starting nagios:This account is currently not available.

 done.


一、 Nagios性能分析圖表的實現

1) 安裝PNP支持包rrdtool工具

[root@localhost nagios]# tar zxf rrdtool-1.4.5.tar.gz

[root@localhost nagios]# cd rrdtool-1.4.5

[root@localhost rrdtool-1.4.5]# ./configure --prefix=/usr/local/rrdtool ; make ; make install

2)安裝PNP

[root@localhost rrdtool-1.4.5]# cd /aaa/

[root@localhost nagios]# tar zxf pnp-0.4.13.tar.gz

[root@localhost nagios]# cd pnp-0.4.13

[root@localhost pnp-0.4.13]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-di

r=/usr/local/nagios/share/perfdata ; make all ; make install ; make install-config ; make install-init

3) 配置PNP

A,創建默認配置文件

[root@localhost pnp-0.4.13]# cd /usr/local/nagios/etc/pnp/

[root@localhost pnp]# cp process_perfdata.cfg-sample process_perfdata.cfg

[root@localhost pnp]# cp npcd.cfg-sample npcd.cfg

[root@localhost pnp]# cp rra.cfg-sample rra.cfg

[root@localhost pnp]# chown -R nagios:nagios /usr/local/nagios/etc/pnp/

B,修改process_perfdata.cfg

[root@localhost pnp]# vi /usr/local/nagios/etc/pnp/process_perfdata.cfg

44 LOG_LEVEL = 2

4) 修改Nagios主配置文件

A,增加小太陽圖標

[root@localhost pnp]# cd /usr/local/nagios/etc/

[root@localhost etc]# vi templates.cfg

define host{

        name    hosts-pnp

        register        0

        action_url      /nagios/pnp/index.php?host=$HOSTNAME$

        process_perf_data       1

}

define service{

        name    services-pnp

        register        0

        action_url      /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$

        process_perf_data       1

}

B、修改nagios.cfg

找到如下幾行去掉註釋

[root@localhost etc]# vi nagios.cfg

833 process_performance_data=1

845 host_perfdata_command=process-host-perfdata

846 service_perfdata_command=process-service-perfdata

C、修改commands.cfg

227 # 'process-host-perfdata' command definition

    228 define command{

    229         command_name    process-host-perfdata

    230         command_line    /usr/local/nagios/libexec/process_perfdata.pl

    231         }

    232

    233

    234 # 'process-service-perfdata' command definition

    235 define command{

    236         command_name    process-service-perfdata

    237         command_line    /usr/local/nagios/libexec/process_perfdata.pl

    238         }

D、修改hosts.cfg文件和services.cfg文件

[root@localhost ~]# vi /usr/local/nagios/etc/hosts.cfg

define host{

use     linux-server,hosts-pnp

host_name       web

alias   benet-web

address 192.168.1.100

}

define host{

use     linux-server,hosts-pnp

host_name       mysql

alias   benet-mysql

address 192.168.1.200

}

define hostgroup{

hostgroup_name  sa-servers

alias   sa servers

members web,mysql

}

[root@localhost ~]# vi /usr/local/nagios/etc/services.cfg

################- benet web -##########################

define service{

use     local-service,services-pnp

host_name       web

service_description     PING

check_command   check_ping!100.0,20%!500.0,60%

}

define service{

use     local-service,services-pnp

host_name       web

service_description     SSH

check_command   check_ssh

}

注意項:別心急看小太陽數據,等會兒就有了。

 


點擊小太陽,出現對主機或服務的監控頁面

 


五,利用插件擴展Nagios的監控功能

下面我們通過在nagios服務端和客戶端安裝NRPE插件來搭建一個更加完善的Nagios監控系統。


1)配置nagios客戶端(即遠端被監控主機192.168.1.200)

A)安裝Nagios插件

登陸192.168.1.200客戶端

[root@localhost ~]# cd /nagios/

[root@localhost nagios]# useradd -s /sbin/nologin nagios

[root@localhost nagios]# tar zxf nagios-plugins-1.4.14.tar.gz

[root@localhost nagios]# cd nagios-plugins-1.4.14

[root@localhost nagios-plugins-1.4.14]# ./configure ; make ;make install

[root@localhost nagios-plugins-1.4.14]# chown nagios:nagios /usr/local/nagios/

[root@localhost nagios-plugins-1.4.14]# chown -R nagios.nagios /usr/local/nagios/libexec/

B)安裝NRPE插件

[root@localhost nagios]# cd /aaa/

[root@localhost nagios]# tar zxf nrpe-2.12.tar.gz

[root@localhost nagios]# cd nrpe-2.12

[root@localhost nrpe-2.12]# ./configure ; make all ; make install-plugin ; make install-daemon ; make install-daemon-config

C)修改NRPE配置文件

[root@localhost nrpe-2.12]# vi /usr/local/nagios/etc/nrpe.cfg

79 allowed_hosts=127.0.0.1,192.168.1.1(nagios服務器ip)

192.168.6.199:指定nagios服務器地址

D)啓動NRPE

[root@localhost nrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

[root@localhost nrpe-2.12]# netstat -antl |grep 5666

tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN 

E)測試NRPE

[root@localhost nrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

NRPE v2.12

如果出現NRPE v2.12表明NRPE已經正常工作

定義讓nagios服務器監控我本機上的內容(當前用戶數,CPU,內存,硬盤等信息)

[root@localhost libexec]# vi /usr/local/nagios/etc/nrpe.cfg

199 command[check_users_1]=/usr/local/nagios/libexec/check_users -w 5 -c 10

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

    201 command[check_sda1_1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10        % -p /dev/sda1

    202 command[check_zombie_procs_1]=/usr/local/nagios/libexec/check_procs -w         5 -c 10 -s Z

    203 command[check_total_procs_1]=/usr/local/nagios/libexec/check_procs -w 1        50 -c 200

重啓NRPE

[root@localhost ~]# ps -elf |grep nrpe

5 S nagios   22379     1  0  75   0 -  1243 -      17:59 ?        00:00:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

0 R root     22586  4247  0  78   0 -  1039 -      18:09 pts/0    00:00:00 grep nrpe

[root@localhost ~]# kill -9 22379

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

被監控端192.168.1.100與192.168.1.200的步驟一樣,這裏就略過

2配置nagios服務器端

登陸nagios服務器端:192.168.1.1

1)安裝NRPE插件

[root@localhost etc]# cd /aaa/

[root@localhost aaa]# tar zxf nrpe-2.12.tar.gz

[root@localhost aaa]# cd nrpe-2.12

[root@localhost nrpe-2.12]# ./configure ; make ; make install-plugin

2) 測試插件能否取得與客戶端192.168.1.200的聯繫

 [root@localhost nrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.200

NRPE v2.12

出現NRPE v2.12就證明成功聯繫上客戶端

3)定義一個check_nrpe監控命令

[root@localhost nrpe-2.12]# vi /usr/local/nagios/etc/commands.cfg

define command{

        command_name check_nrpe

        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

5) 添加遠程主機監控項

[root@localhost nrpe-2.12]# vi /usr/local/nagios/etc/services.cfg

define service{

use     local-service

host_name       mysql

service_description     users

check_command   check_nrpe!check_users

}

define service{

use     local-service

host_name       mysql

service_description     load

check_command   check_nrpe!check_load

}

define service{

use     local-service

host_name       mysql

service_description     disk

check_command   check_nrpe!check_sda1

}

define servicegroup{

        servicegroup_name       servergroup

        alias           server-group

        members         web,PING,web,SSH,web,SSHD,web,http,mysql,users,mysql,load,mysql,disk

}

6)測試並重新啓動nagios服務

[root@localhost ~]# service nagios restart

 

 


                          139郵件報警和短信報警

首先要去註冊139郵箱,然後收到郵件時手機就會收到郵件

這個配置特別簡單

確定你的sendmail是否運行  service sendmail status

如果沒有安裝就直接 yum -y install sendmail

修改配置文件:contacts.cfg  只需要修改郵箱即可,如果有多個聯繫人可以用逗號隔開


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章