圖文實例講解nagios介紹和安裝

步驟:1.nagios的介紹

         2.安裝服務端

          3.安裝客戶端

          4.服務端添加監控的主機

          5.郵箱預警


 nagios的介紹


Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。


Nagios 可以監控的功能有: 1、監控網絡服務(SMTP、POP3、HTTP、NNTP、PING等); 2、監控主機資源(處理器負荷、磁盤利用率等);


3、簡單地插件設計使得用戶可以方便地擴展自己服務的檢測方法;

4、並行服務檢查機制;

5、具備定義網絡分層結構的能力,用"parent"主機定義來表達網絡主機間的關係,這種關係可被用來發現和明晰主機宕機或不可達狀態;

6、當服務或主機問題產生與解決時將告警發送給聯繫人(通過EMail、短信、用戶定義方式);

7、具備定義事件句柄功能,它可以在主機或服務的事件發生時獲取更多問題定位;

8、自動的日誌回滾;

9、可以支持並實現對主機的冗餘監控;

10、可選的WEB界面用於查看當前的網絡狀態、通知和故障歷史、日誌文件等;


nagios:監控服務,只告訴你有哪些服務不正常




服務端操作(192.168.0.25)





1.Centos6默認的yum源裏沒有nagios相關的rpm包,但是我們可以安裝一個epel的擴展源: 


安裝epel源

wget  www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_32.noarch.rpm 


rpm -ivh epel-release-6-8_32.noarch.rpm


wKioL1hSiU6h8T6RAADvUhrQhcE714.png-wh_50


yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe


wKioL1hSiVzToBhJAACcKQKrCMA468.png-wh_50

2.設置登錄nagios後臺的用戶和密碼:


htpasswd -c /etc/nagios/passwd nagiosadmin

password:123456

wKiom1hSiWjz8XUBAAAXKhpKVcg353.png-wh_50

3.查看配置文件

vim /etc/nagios/nagios.cfg


nagios -v /etc/nagios/nagios.cfg 檢測配置文件


Total Warnings: 0

Total Errors:   0

wKiom1hSiXHgF18VAACUcpY3wu0426.png-wh_50


4.啓動服務:service httpd start; service nagios start

wKioL1hSiXvjE594AAAPQXpOxf4247.png-wh_50


5.谷歌瀏覽器訪問: http://192.168.0.25/nagios


wKiom1hSiYXgdMcXAAJvZZTvBWU827.png-wh_50


services 介紹



wKiom1hSiZSh_yw6AAIfC1-uQss712.png-wh_50



 客戶端的操作(192.168.0.5)





1.安裝epel源

wget  www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_32.noarch.rpm 


rpm -ivh epel-release-6-8_32.noarch.rpm


wKioL1hSidLDidJzAADvUhrQhcE783.png-wh_50


yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe


wKioL1hSidrTMRHcAACcKQKrCMA335.png-wh_50

2.修改配置文件


vim /etc/nagios/nrpe.cfg 


找到“allowed_hosts=127.0.0.1” 改爲 “allowed_hosts=127.0.0.1,192.168.0.25 後面的ip爲服務端ip;


wKioL1hSifLzHX3jAAB-HzNmRwA694.png-wh_50


找到” dont_blame_nrpe=0” 改爲  “dont_blame_nrpe=1”


wKiom1hSifry2FWjAAAfhiV3Ox0770.png-wh_50


啓動客戶端 /etc/init.d/nrpe start






服務端操作監控中心(192.168.0.25)添加被監控主機(192.168.0.5)





1.新建監控的參數


cd /etc/nagios/conf.d/


vim 192.168.0.5.cfg  (被監控的主機)

 

添加內容


define host{

        use                     linux-server            ; Name of host template to use

                                                        ; This host definition will inherit all variables that are defined

                                                        ; in (or inherited by) the linux-server host template definition.

        host_name               192.168.0.5

        alias                   0.5

        address                 192.168.0.5

        }


define service{

        use                     generic-service

        host_name               192.168.0.5

        service_description     check_ping

        check_command           check_ping!100.0,20%!200.0,50%

        max_check_attempts 5

        normal_check_interval 1

}


define service{

        use                     generic-service

        host_name               192.168.0.5

        service_description     check_ssh

        check_command           check_ssh

        max_check_attempts      5

        normal_check_interval 1

}


define service{

        use                     generic-service

        host_name               192.168.0.5

        service_description     check_http

        check_command           check_http

        max_check_attempts      5

        normal_check_interval 1

}


wKioL1hSigzwhkvAAACPbYZctYA010.png-wh_50



 配置文件的簡單說明

我們定義的配置文件中一共監控了三個service:ssh, ping, http 這三個項目是使用本地的nagios工具去連接遠程機器,也就是說即使客戶端沒有安裝nagios-plugins以及nrpe也是可以監控到的。其他的一些service諸如負載、磁盤使用等是需要服務端通過nrpe去連接到遠程主機獲得信息,所以需要遠程主機安裝nrpe服務以及相應的執行腳本(nagios-plugins)
max_check_attempts 5  #當nagios檢測到問題時,一共嘗試檢測5次都有問題纔會告警,如果該數值爲1,那麼檢測到問題立即告警
normal_check_interval 1#重新檢測的時間間隔,單位是分鐘,默認是3分鐘

notification_interval           60 #在服務出現異常後,故障一直沒有解決,nagios再次對使用者發出通知的時間。單位是分鐘。如果你認爲,所有的事件只需要一次通知就夠了,可以把這裏的選項設爲0。


2.檢測是否有錯


nagios -v /etc/nagios/nagios.cfg


wKiom1hSih6jDk1fAACWwZ5wulQ993.png-wh_50


3.重啓服務


service nagios restart


打開瀏覽器查看nagios的Hosts 和services


wKiom1hSiwrBoos-AACwQEYUaDY266.png-wh_50

wKioL1hSiwqAGwfGAABUyf7Fb70602.png-wh_50


nagios 中check_http 拒絕連接 錯誤解決辦法 


wKiom1hSix-BZ3UXAAAl4GAhvGA262.png-wh_50


客戶端啓動服務即可


/etc/init.d/nginx start




添加服務




服務端操作


1.修改配置文件


vim /etc/nagios/objects/commands.cfg


增加:define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

        }


如何查看check_load文件


客戶端打開配置文件  vi /etc/nagios/nrpe.cfg


wKiom1hSizvjtzRhAABY4Q_LekA420.png-wh_50


沒有hda1 把/dev/hda1修改爲/dev/sda1


wKioL1hSi0egLa1bAAATM79Gy2E606.png-wh_50


在添加一行 


wKioL1hSi1DALlfHAAE-K5fe5DM646.png-wh_50




2.服務端繼續編輯


vim /etc/nagios/conf.d/192.168.0.5.cfg 


增加如下內容:


define service{

        use     generic-service

        host_name       192.168.0.5

        service_description     check_load

        check_command           check_nrpe!check_load

        max_check_attempts 5

        normal_check_interval 1

}



define service{

        use     generic-service

        host_name       192.168.0.5

        service_description     check_disk_sda1


spacer.gif


3.服務端重新啓動服務


service nagios restart





客戶端編輯


check_nrpe!check_load :這裏的check_nrpe就是在commands.cfg剛剛定義的,check_load是遠程主機上的一個檢測腳本
在遠程主機上vim /etc/nagios/nrpe.cfg 搜索check_load,這行就是在服務端上要執行的腳本了,我們可以手動執行這個腳本
把check_hda1更改一下:/dev/hda1 改爲 /dev/sda1

再加一行command[check_hda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2

#主服務器上的 service_description     check_disk_hda2            

#改爲  service_description     check_disk_sda2


客戶端上重啓一下nrpe服務: service nrpe restart

服務端也重啓一下nagios服務: service nagios restart

  

服務端查看日誌

tail /var/log/nagios/nagios.log





配置圖形顯示 pnp4nagios


(1)安裝
yum install pnp4nagios rrdtool 

(2)配置主配置文件

vim /etc/nagios/nagios.cfg  //修改如下配置


process_performance_data=1    

host_perfdata_command=process-host-perfdata

service_perfdata_command=process-service-perfdata 

enable_environment_macros=1     


(3)修改commands.cfg


vim /etc/nagios/objects/commands.cfg 

//註釋掉原有對process-host-perfdata和process-service-perfdata,重新定義



define command {  

       command_name    process-service-perfdata  

       command_line    /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl  

}  


define command {  

       command_name    process-host-perfdata  

       command_line    /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA  

}



  (4)修改配置文件templates.cfg


vim /etc/nagios/objects/templates.cfg


define host {  
        name       hosts-pnp  
        register   0  
        action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_  
        process_perf_data               1  
}  
define service {  
        name       srv-pnp  
        register   0  
        action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ 
        process_perf_data               1  

}  



(5)修改host和service配置


vim /etc/nagios/conf.d/192.168.0.25.cfg 



把 “define host{
        use                     linux-server” 
改爲:
define host{
        use                     linux-server,hosts-pnp

修改對應的service,比如

define service{
        use     generic-service
        host_name       192.168.0.25
        service_description     check_disk_hda1
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}
改爲:
define service{
        use     generic-service,srv-pnp
        host_name       192.168.0.25
        service_description     check_disk_sda1
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}


define service{
        use     generic-service
        host_name       192.168.0.19
        service_description     check_disk_sda2
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}
改爲:
define service{
        use     generic-service,srv-pnp
        host_name       192.168.0.19
        service_description     check_disk_sda2
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1

}


(6) 重啓和啓動各個服務:
service nagios restart
service httpd restart

service npcd start



(7) 訪問測試
兩種訪問方法:
ip/nagios/

ip/pnp4nagios/




配置郵件告警



1.修改參數


vim /etc/nagios/objects/contacts.cfg 


先定義組和用戶


添加一些內容



define contactgroup{

        contactgroup_name       admins

        alias                   Nagios Administrators

        members                 nagiosadmin

        }

#group的作用是用來區分不同的用戶


define contact{

        contact_name               123

        use                             generic-contact

        alias                          lz

        email              [email protected]

        }


define contact{

        contact_name               456

        use                             generic-contact

        alias                            aaa

        email              [email protected]

        }


define contactgroup{           #定義的組名,裏面包含的用戶

        contactgroup_name           common

        alias                                  common

        members                          123,456

        }

想要哪個服務報警,就需要添加一行代碼

 打開

vim /etc/nagios/conf.d/192.168.0.19.cfg


如果需要給load做警告, 需要告警的服務裏面加上contactgroup

define service{

        use     generic-service

        host_name       192.168.0.19

        service_description     check_load

        check_command           check_nrpe!check_load

        max_check_attempts 5

        normal_check_interval 1

        contact_groups        common   #需要添加的代碼

        notification_period  24*7

        notification_options c,r

}

10.  幾個重要參數說明
notifications_enabled : 是否開啓提醒功能。1爲開啓,0爲禁用。一般,這個選項會在主配置文件(nagios.cfg)中定義,效果相同。
notification_interval: 之前剛介紹過,表示重複發送提醒信息的最短間隔時間。默認間隔時間是60分鐘。如果這個值設置爲0,將不會發送重複提醒。
notification_period: 發送提醒的時間段。非常重要的主機(服務)我定義爲24×7,一般的主機(服務)就定義爲上班時間。如果不在定義的時間段內,無論什麼問題發生,都不會發送提醒。

notification_options: 這個參數定義了發送提醒包括的情況:d = 狀態爲DOWN, u = 狀態爲UNREACHABLE , r = 狀態恢復爲OK ,  f = flapping。,n=不發送提醒。












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