自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

nagios插件程序提供兩個(gè)返回值:一個(gè)是插件的退出狀態(tài)碼,另一個(gè)是插件在控制臺(tái)上打印的第一行數(shù)據(jù)。退出狀態(tài)碼可以被nagios主程序

成都創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):成都電信服務(wù)器托管,成都服務(wù)器租用,成都電信服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。

作為判斷被監(jiān)控系統(tǒng)服務(wù)狀態(tài)的依據(jù),控制臺(tái)打印的第一行數(shù)據(jù)可以被nagios主程序作為被監(jiān)控系統(tǒng)服務(wù)狀態(tài)的補(bǔ)充說(shuō)明

會(huì)顯示在管理頁(yè)面里面。

為了管理nagios插件,nagios每查詢一個(gè)服務(wù)的狀態(tài)時(shí),就會(huì)產(chǎn)生一個(gè)子進(jìn)程,并且它使用來(lái)自該命令的輸出和退出狀態(tài)碼來(lái)

確定具體的狀態(tài)。nagios主程序可識(shí)別的狀態(tài)碼和說(shuō)明如下:

OK            退出代碼 0--表示服務(wù)正常的工作

warning       退出代碼 1--表示服務(wù)處于告警狀態(tài)

critical      退出代碼 2--表示服務(wù)處于緊急,嚴(yán)重狀態(tài)

unknown       退出代碼 3--表示服務(wù)處于未知狀態(tài)

[root@RS1 services]# head -7 /usr/local/nagios/libexec/utils.sh 

#! /bin/sh

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

STATE_DEPENDENT=4

示例一:判斷/etc/passwd文件是否變化,利用nrpe的被動(dòng)模式

原理:利用md5sum進(jìn)行指紋收集 md5sum /etc/passwd > /etc/passwd.md5

利用md5sum -c /etc/passwd.md5對(duì)指紋進(jìn)行判別,出現(xiàn)OK則沒(méi)有變化,反之則變化了

監(jiān)控密碼文件是否被更改:

先做指紋庫(kù)

md5sum /etc/passwd > /etc/passwd.md5

在client上創(chuàng)建腳本vim /usr/local/nagios/libexec/check_passwd

#!/bin/bash

char=`md5sum -c /etc/passwd.md5 2>&1 |grep "OK"|wc -l`

if [ $char -eq 1 ];then

  echo "passwd is OK"

  exit 0      

else

  echo "passwd is changed"

  exit 2

fi

######給腳本執(zhí)行權(quán)限

chmod +x /usr/local/nagios/libexec/check_passwd

#####定義check_passwd命令

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

command[check_passwd]=/usr/local/nagios/libexec/check_passwd

#####重啟nrpe服務(wù)

######在nagios主程序先手動(dòng)抓取數(shù)據(jù)

[root@RS1 libexec]# ./check_nrpe -H 192.168.1.11 -c check_passwd

passwd is OK

######在nagios主程序上定義service配置

vim /usr/local/nagios/etc/objects/services.cfg(主動(dòng)模式和被動(dòng)模式各自的services.cfg配置文件,各自分別管理)

define service{

        use                     generic-service

        host_name               client02

        service_description     check_passwd

        check_command           check_nrpe!check_passwd

}

然后在nagios服務(wù)端進(jìn)行手動(dòng)抓取數(shù)據(jù):

/usr/local/nagios/libexec/check_nrpe -H 192.168.1.11 -c check_passwd

出現(xiàn)數(shù)據(jù),表明基本已經(jīng)沒(méi)有問(wèn)題,重啟服務(wù),觀察web平臺(tái)頁(yè)面,如下圖:

自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

自定義監(jiān)控web url,用主動(dòng)模式監(jiān)控

[root@RS1 ~]# curl -I http://192.168.1.11/index.html 2>/dev/null|grep "OK"

HTTP/1.1 200 OK

[root@RS1 ~]# curl -I http://192.168.1.11/index.html 2>/dev/null|grep "OK"|wc -l

1

1、編寫執(zhí)行腳本

cd /usr/local/nagios/libexec

vim check_web_url

#!/bin/bash

char=`curl -I http://192.168.1.11/index.html 2>/dev/null|grep "OK"|wc -l`

if [ $char -eq 1 ];then

  echo "the url is OK"

  exit 0

else

  echo "the url is wrong"

  exit 2

fi

chmod +x check_web_url

2、添加check_web_url這個(gè)命令到commands.cfg配置文件中

############define command check_web_url##########

define command{

        command_name     check_web_url

        command_line     $USER1$/check_web_url

 }

3、編輯servers.cfg文件

cd /usr/local/nagios/etc/services

vim web_url.cfg

define service{

        use     generic-service

        host_name       client02      監(jiān)控的主機(jī)192.168.1.11在hosts.cfg有定義

        service_description     web_url

        check_period 24x7

        check_interval 5

        retry_interval 1

        max_check_attempts 3

        check_command      check_web_url    因?yàn)槭侵鲃?dòng)模式

        notification_period 24x7

        notification_interval 30

        notification_options  w,u,c,r

        contact_groups admins

}

4、檢測(cè)錯(cuò)誤,重啟服務(wù)

[root@RS1 services]# /etc/init.d/nagios checkconfig

Running configuration check...

 OK.

[root@RS1 services]# /etc/init.d/nagios reload

Running configuration check...

Reloading nagios configuration...

done

成功截圖:

自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

看下整體監(jiān)控效果:

自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

實(shí)現(xiàn)郵件報(bào)警功能:

配置告警的步驟:

1、添加聯(lián)系人和聯(lián)系組contacts.cfg

define contact{       

        contact_name                    huang            

        use                             generic-contact      ---》這里使用的模板就是模板文件中的contact定義      

        alias                           Nagios Admin           

        email                           13817419446@139.com       

        }

將定義的contact_name添加到一個(gè)新組中

新增聯(lián)系組:

define contactgroup{

        contactgroup_name       mail_users            這里可以定義郵件組,手機(jī)短信組,等等

        alias                   Nagios Administrators

        members                 huang

        }

2、添加報(bào)警的命令commands.cfg,這里使用默認(rèn)的命令,當(dāng)然你也可以自己編寫shell腳本或者其他語(yǔ)言腳本

3、調(diào)整聯(lián)系人的默認(rèn)模板

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 

        host_notification_commands      notify-host-by-email    如果定義了手機(jī),這里可以加上notify-host-by-email,notify-host-by-pager,這里使用郵件告警,所以無(wú)需設(shè)置

        register                        0                       

        }

4、在hosts、services配置文件中添加報(bào)警聯(lián)系人及報(bào)警組

然后修改模板中service、host的定義,將

contact_groups                  admins改為

contact_groups                  mail_users 

當(dāng)然也可以不在模板中定義,在hosts、services配置文件中各自定義不同的報(bào)警方式和報(bào)警組

實(shí)驗(yàn):

將網(wǎng)站目錄下面的index.html文件mv到tmp目錄下,使他warning并觸發(fā)告警

mv /var/www/html/index.html /tmp

可以看見(jiàn)web平臺(tái)出現(xiàn)warning狀態(tài),查看nagios日志如圖:

自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

然后查看郵件,發(fā)現(xiàn)沒(méi)有收到告警郵件,看日志發(fā)現(xiàn)是找不到mail命令,于是

yum -y install mailx

由于定義的services告警參數(shù):

service_notification_options    w,u,c,r,f,s,表示監(jiān)控恢復(fù)正常也會(huì)觸發(fā)郵件于是將index.html重新放到網(wǎng)站目錄下

mv /tmp/index.html /var/www/html

稍微過(guò)幾分鐘可以發(fā)現(xiàn)監(jiān)控正常,查看nagios日志

自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

再次查看郵件,如下:

自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警

簡(jiǎn)單基于mail告警功能實(shí)現(xiàn)

新建菜鳥學(xué)習(xí)交流群:584498750

網(wǎng)頁(yè)名稱:自定義nagios插件實(shí)現(xiàn)主動(dòng)被動(dòng)模式以及nagios基于mail的簡(jiǎn)單告警
新聞來(lái)源:http://bm7419.com/article20/goicjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、搜索引擎優(yōu)化小程序開發(fā)、ChatGPT、品牌網(wǎng)站制作網(wǎng)站營(yí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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化