真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux監(jiān)控軟件之Nagios

一、簡(jiǎn)介

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)瑞金,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108


 Nagios是一款開源的電腦系統(tǒng)和網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。

 Nagios原名為NetSaint,由Ethan Galstad開發(fā)并維護(hù)至今。NAGIOS是一個(gè)縮寫形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻譯為圣徒,而"Agios"是"saint"的希臘表示方法。Nagios被開發(fā)在Linux下使用,但在Unix下也工作得非常好。

主要功能

1)網(wǎng)絡(luò)服務(wù)監(jiān)控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)

2)主機(jī)資源監(jiān)控(CPU load、disk usage、system logs),也包括Windows主機(jī)(使用NSClient++ plugin)

3)可以指定自己編寫的Plugin通過網(wǎng)絡(luò)收集數(shù)據(jù)來監(jiān)控任何情況(溫度、警告……)

4)可以通過配置Nagios遠(yuǎn)程執(zhí)行插件遠(yuǎn)程執(zhí)行腳本

5)遠(yuǎn)程監(jiān)控支持SSH或SSL加通道方式進(jìn)行監(jiān)控

6)簡(jiǎn)單的plugin設(shè)計(jì)允許用戶很容易的開發(fā)自己需要的檢查服務(wù),支持很多開發(fā)語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)

7)包含很多圖形化數(shù)據(jù)Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)

8)可并行服務(wù)檢查

9)能夠定義網(wǎng)絡(luò)主機(jī)的層次,允許逐級(jí)檢查,就是從父主機(jī)開始向下檢查

10)當(dāng)服務(wù)或主機(jī)出現(xiàn)問題時(shí)發(fā)出通告,可通過email, pager, sms 或任意用戶自定義的plugin進(jìn)行通知

11)能夠自定義事件處理機(jī)制重新激活出問題的服務(wù)或主機(jī)

12)自動(dòng)日志循環(huán)

13)支持冗余監(jiān)控

14)包括Web界面可以查看當(dāng)前網(wǎng)絡(luò)狀態(tài),通知,問題歷史,日志文件等

二、工作原理


 Nagios的功能是監(jiān)控服務(wù)和主機(jī),但是他自身并不包括這部分功能,所有的監(jiān)控、檢測(cè)功能都是通過各種插件來完成的。

 啟動(dòng)Nagios后,它會(huì)周期性的自動(dòng)調(diào)用插件去檢測(cè)服務(wù)器狀態(tài),同時(shí)Nagios會(huì)維持一個(gè)隊(duì)列,所有插件返回來的狀態(tài)信息都進(jìn)入隊(duì)列,Nagios每次都從隊(duì)首開始讀取信息,并進(jìn)行處理后,把狀態(tài)結(jié)果通過web顯示出來。

 Nagios提供了許多插件,利用這些插件可以方便的監(jiān)控很多服務(wù)狀態(tài)。安裝完成后,在nagios主目錄下的/libexec里放有nagios自帶的可以使用的所有插件,如,check_disk是檢查磁盤空間的插件,check_load是檢查CPU負(fù)載的,等等。每一個(gè)插件可以通過運(yùn)行./check_xxx –h 來查看其使用方法和功能。

 Nagios可以識(shí)別4種狀態(tài)返回信息,即 0(OK)表示狀態(tài)正常/綠色、1(WARNING)表示出現(xiàn)警告/***、2(CRITICAL)表示出現(xiàn)非常嚴(yán)重的錯(cuò)誤/紅色、3(UNKNOWN)表示未知錯(cuò)誤/深***。Nagios根據(jù)插件返回來的值,來判斷監(jiān)控對(duì)象的狀態(tài),并通過web顯示出來,以供管理員及時(shí)發(fā)現(xiàn)故障。

四種監(jiān)控狀態(tài)

Linux監(jiān)控軟件之 Nagios

 再說報(bào)警功能,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)問題不能報(bào)警那就沒有意義了,所以報(bào)警也是nagios很重要的功能之一。但是,同樣的,Nagios 自身也沒有報(bào)警部分的代碼,甚至沒有插件,而是交給用戶或者其他相關(guān)開源項(xiàng)目組去完成的。

 Nagios 安裝,是指基本平臺(tái),也就是Nagios軟件包的安裝。它是監(jiān)控體系的框架,也是所有監(jiān)控的基礎(chǔ)。

 打開Nagios官方的文檔,會(huì)發(fā)現(xiàn)Nagios基本上沒有什么依賴包,只要求系統(tǒng)是Linux或者其他Nagios支持的系統(tǒng)。不過如果你沒有安裝apache(http服務(wù)),那么你就沒有那么直觀的界面來查看監(jiān)控信息了,所以apache姑且算是一個(gè)前提條件。關(guān)于apache的安裝,網(wǎng)上有很多,照著安裝就是了。安裝之后要檢查一下是否可以正常工作。

 知道Nagios 是如何通過插件來管理服務(wù)器對(duì)象后,現(xiàn)在開始研究它是如何管理遠(yuǎn)端服務(wù)器對(duì)象的。Nagios 系統(tǒng)提供了一個(gè)插件NRPE。Nagios 通過周期性的運(yùn)行它來獲得遠(yuǎn)端服務(wù)器的各種狀態(tài)信息。它們之間的關(guān)系如下圖所示:

Linux監(jiān)控軟件之 Nagios

Nagios 通過NRPE 來遠(yuǎn)端管理服務(wù)

1)Nagios 執(zhí)行安裝在它里面的check_nrpe 插件,并告訴check_nrpe 去檢測(cè)哪些服務(wù)。

2)通過SSL,check_nrpe 連接遠(yuǎn)端機(jī)子上的NRPE daemon

3)NRPE 運(yùn)行本地的各種插件去檢測(cè)本地的服務(wù)和狀態(tài)(check_disk,..etc)

4)最后,NRPE 把檢測(cè)的結(jié)果傳給主機(jī)端的check_nrpe,check_nrpe 再把結(jié)果送到Nagios狀態(tài)隊(duì)列中。

5)Nagios 依次讀取隊(duì)列中的信息,再把結(jié)果顯示出來。

三、環(huán)境說明


Host NameIPSoftware
server192.168.0.113Apache、Php、Nagios、nagios-plugins
client192.168.0.112nagios-plugins、nrpe

Server 安裝了nagios軟件,對(duì)監(jiān)控的數(shù)據(jù)做處理,并且提供web界面查看和管理。當(dāng)然也可以對(duì)本機(jī)自身的信息進(jìn)行監(jiān)控。

Client 安裝了NRPE等客戶端,根據(jù)監(jiān)控機(jī)的請(qǐng)求執(zhí)行監(jiān)控,然后將結(jié)果回傳給監(jiān)控機(jī)。

關(guān)閉防火墻

iptables -F

SELINUX=disabled

四、Nagios安裝


1、服務(wù)端

1)安裝epel的擴(kuò)展源

Centos6默認(rèn)的yum源里沒有nagios相關(guān)的rpm包,但是我們可以安裝一個(gè)epel的擴(kuò)展源: 

[root@server ~]# yum install -y epel-release

2)安裝httpd、php、nagios相關(guān)包
yum install -y httpd php php-MySQL mysql mysql-server mysql-devel php-gd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe libjpeg libjpeg-devel libpng libpng-devel 

注:這里雖然用不上mysql,但是php可能會(huì)依賴mysql,所以一并安裝上,或許以后要用mysql呢。

3)設(shè)置登錄nagios后臺(tái)的用戶和密碼

[root@server ~]# htpasswd -c /etc/nagios/passwd nagiosadmin
password

4)啟動(dòng)服務(wù)

[root@server ~]# service httpd start

[root@server ~]# service nagios start

5)訪問nagios主頁

瀏覽器輸入: http://192.168.0.113/nagios

輸入用戶名 nagiosadmin,密碼為剛剛設(shè)置的密碼。 

此時(shí),nagios 監(jiān)控的只有 localhost,還沒有其他機(jī)器,要想添加監(jiān)控客戶機(jī),還需要在客戶端安裝 nagios 相關(guān)的軟件包,并且需要在服務(wù)端配置。

Linux監(jiān)控軟件之 Nagios

2、客戶端

1)安裝epel源

[root@client ~]# yum install -y epel-release

2)安裝Nagios插件

[root@client ~]# yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe 

五、配置


1、客戶端配置

1)編輯nrpe.cfg配置文件 

[root@client ~]# vim /etc/nagios/nrpe.cfg

找到:"allowed_hosts=127.0.0.1"

改為:"allowed_hosts=127.0.0.1,192.168.0.113"        //后面跟服務(wù)端 ip 

找到:"dont_blame_nrpe=0"

改為:"dont_blame_nrpe=1"

2)啟動(dòng)nrpe服務(wù)

[root@client ~]# /etc/init.d/nrpe start

2、服務(wù)端配置

1)編輯配置文件 

[root@server ~]# cd /etc/nagios/conf.d/

[root@server conf.d]# vim 192.168.0.112.cfg              //這里我以客戶端ip為命名,加入如下配置 

define host{ 

        use                     linux-server             

        host_name           192.168.0.112 

        alias                       0.112 

        address                 192.168.0.112 

        } 

define service{ 

        use                     generic-service 

        host_name               192.168.0.112 

        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.112 

        service_description     check_ssh 

        check_command           check_ssh 

        max_check_attempts      5   

        normal_check_interval 1    

        notification_interval           60  

 

define service{ 

        use                     generic-service 

        host_name               192.168.0.112 

        service_description     check_http 

        check_command           check_http 

        max_check_attempts      5 

        normal_check_interval 1 

說明


"max_check_attempts 5" 表示當(dāng) nagios 檢測(cè)到問題時(shí),一共嘗試檢測(cè) 5 次都有問題才會(huì)告警,如果該數(shù)值為 1,那么檢測(cè)到問題立即告警。

"normal_check_interval 1" 表示重新檢測(cè)的時(shí)間間隔,單位是分鐘,默認(rèn)是 3分鐘。

"notification_interval  60" 表示在服務(wù)出現(xiàn)異常后,故障一直沒有解決,nagios 再次對(duì)使用者發(fā)出通知的時(shí)間,單位是分鐘。如果你認(rèn)為,所有的事件只需要通知一次就夠了,則把這里的選項(xiàng)設(shè)為 0。 

        以上服務(wù)不依賴于客戶端 nrpe 服務(wù),我們可以想象,我們?cè)谧约弘娔X上可以使用 ping或者 telnet 探測(cè)遠(yuǎn)程任何一臺(tái)機(jī)器是否存活、是否開啟某個(gè)端口或服務(wù)。 而當(dāng)我們想要檢測(cè)客戶端上的某個(gè)具體服務(wù)的情況時(shí),就需要借助于 nrpe 了,比如想知道客戶端機(jī)器的負(fù)責(zé)或磁盤使用情況。


2)重啟 nagios 服務(wù) 

[root@server conf.d]# nagios -v /etc/nagios/nagios.cfg       //先檢測(cè)配置文件是否有錯(cuò)誤

[root@server conf.d]# service nagios restart 

然后在瀏覽器里訪問 nagios,刷新會(huì)兒發(fā)現(xiàn)多出來一臺(tái)主機(jī),并且多出來三個(gè)服務(wù)。

Linux監(jiān)控軟件之 Nagios

只不過這三個(gè)服務(wù)不需要和客戶端進(jìn)行通信就能獲取到。并不是我們想要的,我們想要監(jiān)控系統(tǒng)負(fù)載,監(jiān)控磁盤使用率等服務(wù),這時(shí)候就要使用 nrpe 服務(wù)了。下面繼續(xù)添加服務(wù)。

3、添加其他服務(wù)

1)服務(wù)端編輯commands.cfg配置文件

[root@server ~]# vim /etc/nagios/objects/commands.cfg         //末尾添加如下內(nèi)容

define command{ 

        command_name    check_nrpe 

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

        } 

2)繼續(xù)在服務(wù)端編輯配置文件

[root@server ~]# vim /etc/nagios/conf.d/192.168.0.112.cfg        //添加如下內(nèi)容

define service{ 

        use     generic-service 

        host_name       192.168.0.112 

        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.112 

        service_description     check_disk_sda1 

        check_command           check_nrpe!check_sda1 

        max_check_attempts 5 

        normal_check_interval 1 

說明


"check_nrpe!check_load"這里的 check_nrpe 就是在 commands.cfg 剛剛定義的,check_load 是客戶主機(jī)上檢測(cè)負(fù)載的腳本。

"check_sda1" 是客戶主機(jī)上檢測(cè)磁盤的腳本,我們可以在客戶端通過df -h命令來查看有哪些磁盤。


下面我們接著編輯客戶端配置文件

3)在客戶端上編輯 nrpe.cfg 配置文件 

[root@client ~]# vim /etc/nagios/nrpe.cfg

找到check_load,這行就是在服務(wù)端上要執(zhí)行的腳本了。然后把下行的check_hda1 更改兩處:

"command[check_hda1] "  改為  "command[check_sda1]"

"/dev/hda1"  改為  " /dev/sda1"

注意:后面定義的參數(shù)-w為 waning狀態(tài),-c 為 critical狀態(tài) 。

4)重啟服務(wù)

客戶端重啟 nrpe 服務(wù) 

[root@client ~]# service nrpe restart

服務(wù)端重啟 nagios 服務(wù) 

[root@server ~]# nagios -v /etc/nagios/nagios.cfg    //檢測(cè)配置文件

[root@server ~]# service nagios restart

此時(shí)再到瀏覽器刷新, 會(huì)看到又多出來兩個(gè)服務(wù), 稍微等一會(huì)就可以查看到具體的狀態(tài)了。

Linux監(jiān)控軟件之 Nagios

六、Nagios配置郵件告警


目前 nagios 只能在瀏覽器上查看各個(gè)機(jī)器各個(gè)服務(wù)的狀態(tài),當(dāng)某個(gè)機(jī)器宕掉或者某個(gè)服務(wù)宕掉時(shí),我們是不知道,因?yàn)槲覀儾豢赡芤恢倍⒅?wù)看。這時(shí)候,就需要用到告警系統(tǒng)了,讓它自動(dòng)化,當(dāng)發(fā)現(xiàn)問題時(shí)及時(shí)通知到我們。下面我們配置使用發(fā)郵件的方式來實(shí)現(xiàn)告警。 

以下所有操作都在服務(wù)端上完成。 

1)首先定義發(fā)郵件接收者 

[root@server ~]# vim /etc/nagios/objects/contacts.cfg        //末尾添加如下內(nèi)容

define contact{ 

        contact_name               user1 

        use                             generic-contact 

        alias                           aaa 

        email              user1@qq.com 

        } 

define contact{ 

        contact_name               user2

        use                             generic-contact 

        alias                            bbb 

        email              user2@qq.com 

        } 

define contactgroup{ 

        contactgroup_name           common 

        alias                                    common 

        members                           user1, user2

        } 

說明


contacts.cfg 里面既可以定義 user,也可以定義 group, 先定義兩個(gè) user: user2 和 user2,然后把這兩個(gè) user 加入到 common 組里面。等會(huì)發(fā)郵件就發(fā)給 common 組就可以了,那這樣 user1@qq.com 和 user2@qq.com 都會(huì)收到郵件。 


2)然后在要需要告警的服務(wù)里面加上 contactgroup 

下面針對(duì) check_load 服務(wù)增加告警相關(guān)的配置:

[root@server ~]# vim  /etc/nagios/conf.d/192.168.0.112.cfg          //增加標(biāo)紅處 

define service{ 

        use     generic-service 

        host_name       192.168.0.112 

        service_description     check_load 

        check_command           check_nrpe!check_load 

        max_check_attempts 5 

        normal_check_interval 1 

        contact_groups        common 

        notifications_enabled  1    

        notification_period   24x7        

        notification_options  w,u,c,r   

說明


notifications_enabled  1:表示是否開啟提醒功能。1 為開啟,0 為禁用。一般,這個(gè)選項(xiàng)會(huì)在主配置文件(nagios.cfg)中定義,效果相同。

notification_period   24x7:表示發(fā)送提醒的時(shí)間段。非常重要的主機(jī)(服務(wù))我定義為 7×24,一般的主機(jī)(服務(wù))就定義為上班時(shí)間。如果不在定義的時(shí)間段內(nèi),無論什么問題發(fā)生,都不會(huì)發(fā)送提醒。

notification_options  w,u,c,r:表示 service 的狀態(tài)。w 為 waning, u 為 unknown, c 為 critical, r

為 recover(恢復(fù)了),類似的還有一個(gè) host 對(duì)應(yīng)的狀態(tài):d,u,r   d 狀態(tài)為 DOWN, u 狀態(tài)為UNREACHABLE , r 狀態(tài)恢復(fù)為 OK,需要加入到 host 的定義配置里。


 

 3)編輯完配置文件后,需要重啟 nagios 服務(wù) 

[root@server ~]# nagios -v /etc/nagios/nagios.cfg

[root@server ~]# service nagios restart

拓展文檔

編譯安裝:http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html

調(diào)用短信接口:http://www.aminglinux.com/bbs/thread-7380-1-1.html

整合微信:http://www.aminglinux.com/bbs/thread-7917-1-1.html


分享文章:Linux監(jiān)控軟件之Nagios
本文鏈接:http://weahome.cn/article/jogcjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部