亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

如何實(shí)現(xiàn)nagios發(fā)送通知郵件

前言

上一篇已經(jīng)介紹了nagios如何實(shí)現(xiàn)對(duì)主機(jī)及服務(wù)的監(jiān)控,盡可能實(shí)現(xiàn)對(duì)系統(tǒng)運(yùn)行狀態(tài)的全面監(jiān)控只是初級(jí)目標(biāo),nagios還可以借助smtp服務(wù)發(fā)送通知信息給指定的聯(lián)系人。

本文所用到系統(tǒng)環(huán)境OS:CentOS release 6.8 (Final) 2.6.32-642.el6.x86_64還有一個(gè)重要環(huán)境:互聯(lián)網(wǎng)(yum、百度、Google)。各軟件包:

如何實(shí)現(xiàn)nagios發(fā)送通知郵件

nagios發(fā)送通知郵件的配置過程如下:

1. nagios服務(wù)配置內(nèi)容

  • 修改templates.cfg要讓nagios能夠發(fā)送郵件,首先要定義什么情況下可以觸發(fā)nagios來發(fā)送郵件通知,郵件的接收對(duì)象,以及通知郵件發(fā)送的時(shí)間段及頻率等,這些參數(shù)都需要事先在templates.cfg文件中定義好。示例如下:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件
  • 修改services.cfg首先要注意的是筆者的services.cfg文件中對(duì)有些服務(wù)的監(jiān)控是沒有使用check_nrpe指令的,如ping測(cè)試,ssh,http服務(wù)都是直接使用的相應(yīng)的plugin來監(jiān)測(cè)的。所以如果要修改這些服務(wù)的監(jiān)控告警閾值需要修改這個(gè)services.cfg文件,而對(duì)于其它調(diào)用了check_nrep指令的服務(wù)則同樣需要修改/usr/local/nagios/etc/nrpe.cfg,并且確保兩者中的指令名稱一樣。services.cfg示例如下:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件
  • 對(duì)于使用check_nrpe指令來啟動(dòng)的監(jiān)控對(duì)象則需要修改/usr/local/nagios/etc/nrpe.cfg中的命令參數(shù),來配置相應(yīng)的warinning和critical閾值。示例如下:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件
  • 實(shí)際工作中,根據(jù)業(yè)務(wù)需求進(jìn)行配置,上述數(shù)值只作為示例。
  • 修改commands.cfg在上面的配置模板templates.cfg中可以看到分別針對(duì)主機(jī)和服務(wù)的通知發(fā)送引用了兩個(gè)命令:notify-host-by-email和notify-service-by-email,這兩個(gè)命令具體是什么樣的,它是在commands.cfg文件中定義的。示例如下:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件
  • 修改contracts.cfg修改contracts.cfg文件的目的是為了定義當(dāng)nagios需要發(fā)送通知時(shí)nagios知道要將通知發(fā)給誰。示例如下:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件

2. 郵件服務(wù)配置

  • 檢查nagios server的smtp服務(wù)是否正常Linux主機(jī)上可以通過sendmail或者postfix來啟動(dòng)smtp服務(wù),使用ss -tnl來檢查25端口是否開啟即可。如果則檢查是否安裝了sendmail或者postfix軟件包,二者有其一即可,如果安裝了,手動(dòng)將服務(wù)啟動(dòng)即可service sendmail start或者service postfix start。
  • 配置nagios server本機(jī)發(fā)件賬戶因?yàn)檫@臺(tái)nagios服務(wù)器沒有郵件域名注冊(cè)在公網(wǎng)上,nagios系統(tǒng)默認(rèn)情況下會(huì)使用名為nagios@nagios-server-name的郵件地址給contracts.cfg中定義的郵件地址發(fā)送通知郵件,這個(gè)地址不是合法的,所以要么郵件發(fā)送不出去,要么發(fā)送出去了,會(huì)被收件者郵件服務(wù)器放到垃圾箱中,如果沒有公司郵件可以使用,那么可以配置如網(wǎng)易這類公共郵箱來進(jìn)行郵件的發(fā)送。

    需要注意1. 登錄網(wǎng)頁郵箱設(shè)置中確認(rèn)已開啟smtp服務(wù)。2. 為郵箱啟用授權(quán)碼,在設(shè)置中可以找到,163郵箱的授權(quán)碼是自己設(shè)定的的,并記好在第三方的郵件客戶端軟件中配置163郵箱時(shí)要用到。3. QQ郵箱同樣可以設(shè)置授權(quán)碼,但它是隨機(jī)變化的,每次設(shè)置時(shí)都不一樣,且它的smtp連接需要使用ssl,在Linux中筆者沒搞定,所以建議不要將QQ郵箱作為nagios通知郵件的發(fā)送方。

    給本機(jī)配置發(fā)件時(shí)使用的郵箱服務(wù)是通過修改mail.rc文件完成的,在其最后加上如下內(nèi)容:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件
  • 修改完成以后,重啟一下smtp服務(wù),sendmail或者postfix。
  • 使用mail發(fā)送測(cè)試郵件使用mail指令來發(fā)送測(cè)試郵件,以驗(yàn)證nagios server是否已可以使用剛才配置的163郵箱往指定的郵箱發(fā)送郵件了。mail指令由mailx軟件包提供,其路徑要和commands.cfg里定義的路徑一致,即/bin/mail。測(cè)試方式:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件
  • 測(cè)試nagios發(fā)送通知郵件在確保nagios服務(wù)器可以通過配置的163郵箱往外成功發(fā)送郵件以后,接著測(cè)試nagios發(fā)送通知郵件的功能是否正常。制造告警測(cè)試環(huán)境中,筆者人為將一臺(tái)名為server1上的http服務(wù)down掉nginx -s stop,然后觀察naginx web頁面監(jiān)控,及查看是否能夠收到通知郵件。觀察到的nagios web頁面監(jiān)控信息如下:

    如何實(shí)現(xiàn)nagios發(fā)送通知郵件

    nagios監(jiān)控到http不可用觸發(fā)critical告警

    時(shí)間上可以看到是:2017-04-09 16:15:51,嘗試了1/4即檢測(cè)到了一次失敗,此時(shí)還不會(huì)發(fā)送通知郵件,只有連續(xù)檢測(cè)到了4次失敗才會(huì)發(fā)送通知郵件。接著當(dāng)檢測(cè)到了4次以后情況如下:

如何實(shí)現(xiàn)nagios發(fā)送通知郵件

連續(xù)檢測(cè)到4次critical

此時(shí)nagios日志會(huì)記錄這一情況,從日志可以清楚的看到,4次 檢測(cè)間隔時(shí)間為1分鐘(以下為/var/log/messages中的情況,nagios會(huì)同時(shí)將日志記錄到syslog和它自己的日志中,默認(rèn)如此,可以改變?cè)O(shè)置):

如何實(shí)現(xiàn)nagios發(fā)送通知郵件

從上面最后一條日志可以看到nagios觸發(fā)了發(fā)送通知的操作。與此同時(shí),筆者的QQ郵箱也收到了這一通知郵件,時(shí)間相差只有3秒,反應(yīng)非常迅速。筆者開啟了微信上的QQ郵箱通知功能,雖然不具備讓nagios直接調(diào)用微信平臺(tái)公眾號(hào)推送通知的能力,但這個(gè)方式感覺也很方便。 下圖是郵件的相關(guān)信息,其中包括郵件主題,正文內(nèi)容及格式,都是可以在commands.cfg的mail部分配置的。示例如下:

如何實(shí)現(xiàn)nagios發(fā)送通知郵件

nagios通知郵件微信推送

當(dāng)處理完server1 http這一critical后,nagios會(huì)在第一次檢測(cè)成功后即發(fā)送服務(wù)恢復(fù)的郵件。這些郵件發(fā)送的時(shí)機(jī),檢測(cè)的次數(shù)這些都是在templates.cfg中定義好的。之所以連續(xù)檢測(cè)4次失敗才會(huì)發(fā)送通知郵件是由max_check_attempts決定的,默認(rèn)配置為3,表示第一次檢測(cè)失敗后,最多再嘗試3次,如果還是檢測(cè)失敗,則即刻發(fā)送通知消息。失敗之后每次間隔一分鐘檢測(cè)一次,是由retry_interval參數(shù)定義的。

3. nagios對(duì)故障的反應(yīng)時(shí)間小結(jié)

經(jīng)過實(shí)際測(cè)試現(xiàn)對(duì)nagios故障反應(yīng)時(shí)間做如下總結(jié):

  • nagios默認(rèn)情況下會(huì)按照事先定義好的check_interval來檢測(cè),主機(jī)或服務(wù)狀態(tài)變化那刻如果沒到相應(yīng)監(jiān)測(cè)項(xiàng)目的下一個(gè)檢測(cè)時(shí)間點(diǎn),nagios server是不會(huì)去檢測(cè)的,默認(rèn)情況下check_interval為5分鐘。
  • nagios server要監(jiān)控到主機(jī)或服務(wù)失敗最長(zhǎng)的間隔是距離故障發(fā)生了一個(gè)檢測(cè)周期,取決于針對(duì)這一主機(jī)或服務(wù)所配置的檢測(cè)間隔。
  • 相關(guān)人員收到nagios消息通知的時(shí)間最短也得距離故障發(fā)生有retry_interval*max_retry_attempts的時(shí)長(zhǎng)了。

針對(duì)nagios server對(duì)故障反應(yīng)的時(shí)長(zhǎng)問題,應(yīng)該可以通過用于主動(dòng)監(jiān)控的NSCA組件可以縮短,NSCA組件是用于實(shí)現(xiàn)更大規(guī)模的分布式監(jiān)控體系的,它可以讓被監(jiān)控端主動(dòng)發(fā)送監(jiān)控信息給nagios server。這一部分還有待后續(xù)學(xué)習(xí)實(shí)踐。

另外在nagios wed頁面中也可以很方便地對(duì)各個(gè)服務(wù)的郵件通知進(jìn)行Disable或者Enable操作,特殊情況下可以臨時(shí)關(guān)閉對(duì)某主機(jī)或某些服務(wù)的通知操作,便于維護(hù)工作的展開。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!