中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自定義nagios插件實現主動被動模式以及nagios基于mail的簡單告警

發布時間:2020-07-27 15:53:43 來源:網絡 閱讀:2148 作者:落軒易離落 欄目:移動開發

nagios插件程序提供兩個返回值:一個是插件的退出狀態碼,另一個是插件在控制臺上打印的第一行數據。退出狀態碼可以被nagios主程序

作為判斷被監控系統服務狀態的依據,控制臺打印的第一行數據可以被nagios主程序作為被監控系統服務狀態的補充說明

會顯示在管理頁面里面。

為了管理nagios插件,nagios每查詢一個服務的狀態時,就會產生一個子進程,并且它使用來自該命令的輸出和退出狀態碼來

確定具體的狀態。nagios主程序可識別的狀態碼和說明如下:

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

warning       退出代碼 1--表示服務處于告警狀態

critical      退出代碼 2--表示服務處于緊急,嚴重狀態

unknown       退出代碼 3--表示服務處于未知狀態


[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的被動模式

原理:利用md5sum進行指紋收集 md5sum /etc/passwd > /etc/passwd.md5

利用md5sum -c /etc/passwd.md5對指紋進行判別,出現OK則沒有變化,反之則變化了

監控密碼文件是否被更改:

先做指紋庫

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

在client上創建腳本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


######給腳本執行權限

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服務


######在nagios主程序先手動抓取數據

[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(主動模式和被動模式各自的services.cfg配置文件,各自分別管理)

define service{

        use                     generic-service

        host_name               client02

        service_description     check_passwd

        check_command           check_nrpe!check_passwd

}


然后在nagios服務端進行手動抓取數據:

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

出現數據,表明基本已經沒有問題,重啟服務,觀察web平臺頁面,如下圖:

自定義nagios插件實現主動被動模式以及nagios基于mail的簡單告警


自定義監控web url,用主動模式監控

[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、編寫執行腳本

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這個命令到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      監控的主機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    因為是主動模式

        notification_period 24x7

        notification_interval 30

        notification_options  w,u,c,r

        contact_groups admins

}


4、檢測錯誤,重啟服務

[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插件實現主動被動模式以及nagios基于mail的簡單告警

看下整體監控效果:

自定義nagios插件實現主動被動模式以及nagios基于mail的簡單告警


實現郵件報警功能:

配置告警的步驟:

1、添加聯系人和聯系組contacts.cfg

define contact{       

        contact_name                    huang            

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

        alias                           Nagios Admin           

        email                           13817419446@139.com       

        }

將定義的contact_name添加到一個新組中

新增聯系組:

define contactgroup{

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

        alias                   Nagios Administrators

        members                 huang

        }


2、添加報警的命令commands.cfg,這里使用默認的命令,當然你也可以自己編寫shell腳本或者其他語言腳本


3、調整聯系人的默認模板

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    如果定義了手機,這里可以加上notify-host-by-email,notify-host-by-pager,這里使用郵件告警,所以無需設置

        register                        0                       

        }


4、在hosts、services配置文件中添加報警聯系人及報警組

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

contact_groups                  admins改為

contact_groups                  mail_users 

當然也可以不在模板中定義,在hosts、services配置文件中各自定義不同的報警方式和報警組


實驗:

將網站目錄下面的index.html文件mv到tmp目錄下,使他warning并觸發告警

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

可以看見web平臺出現warning狀態,查看nagios日志如圖:

自定義nagios插件實現主動被動模式以及nagios基于mail的簡單告警

然后查看郵件,發現沒有收到告警郵件,看日志發現是找不到mail命令,于是

yum -y install mailx


由于定義的services告警參數:

service_notification_options    w,u,c,r,f,s,表示監控恢復正常也會觸發郵件于是將index.html重新放到網站目錄下

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

稍微過幾分鐘可以發現監控正常,查看nagios日志

自定義nagios插件實現主動被動模式以及nagios基于mail的簡單告警

再次查看郵件,如下:

自定義nagios插件實現主動被動模式以及nagios基于mail的簡單告警

簡單基于mail告警功能實現

新建菜鳥學習交流群:584498750

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东平县| 长宁县| 太谷县| 乐安县| 苍南县| 务川| 温州市| 西安市| 沙坪坝区| 屯昌县| 和平县| 金平| 勃利县| 改则县| 化隆| 云安县| 长治县| 延津县| 自贡市| 沙雅县| 甘德县| 山丹县| 沙河市| 澎湖县| 汽车| 浦北县| 綦江县| 许昌市| 林口县| 府谷县| 东兰县| 赤峰市| 嘉禾县| 满洲里市| 台中市| 绵竹市| 遵化市| 昂仁县| 丰台区| 阳新县| 简阳市|