jojo's blog--快樂憂傷都與你同在
          為夢想而來,為自由而生。 性情若水,風起水興,風息水止,故時而激蕩,時又清平……
          posts - 11,  comments - 30,  trackbacks - 0
          著名的開源服務監(jiān)系統(tǒng)nagios擁有強大的功能,可謂服務器監(jiān)控之神。它的功能之一就是故障告警。一旦出現(xiàn)問題,它可以第一時間通知工作人員。那么如此強大的告警提醒功能如果出現(xiàn)了問題,要如何定位問題?配置文檔中的相關參數(shù)又表示什么意義呢?下面我會逐個向大家介紹。

          問題闡述:無法發(fā)送告警提醒信息(email、傳真、短信等)
          解決方法:順藤摸瓜,根據告警提醒功能運作的原理,一層一層去檢查設置。
          ps:
          如果你還沒有設置你的告警,也可以順著我的敘述來設置你的告警 ^-^

          (1)所有提醒任務首先要查看hosts.cfg或者services.cfg,在這兩個文件中有如下幾個參數(shù)關系到提醒:

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

          contact_groups: 定義接受提醒的聯(lián)系人組,如果hosts.cfg文件中所有的條件都符合,那么提醒任務將會繼續(xù)檢查contactgroup.cfg文件。

          notification_interval: 重復發(fā)送提醒信息的最短間隔時間。默認間隔時間是60分鐘。如果這個值設置為0,將不會發(fā)送重復提醒。

          notification_period: 發(fā)送提醒的時間段。非常重要的主機(服務)我定義為7×24,一般的主機(服務)就定義為上班時間。如果不在定義的時間段內,無論什么問題發(fā)生,都不會發(fā)送提醒。

          notification_options: 這個參數(shù)定義了發(fā)送提醒包括的情況:d = 狀態(tài)為DOWN, u = 狀態(tài)為UNREACHABLE , r = 狀態(tài)恢復為OK ,  f = flapping。,n=不發(fā)送提醒。



          綜上,如果要提醒信息順利通過hosts.cfg文件,并且發(fā)出提醒的話,要滿足:

          notifications_enabled 值為1

          contact_groups 的組已經定義正確。見(3)

          notification_period 定義的時間段包括出問題的時間,檢查方法如見(2)

          notification_options 定義的包括需要提醒的狀態(tài)改變。

          (2)檢查timeperiod的配置,一般在主配置文件中,或者在timeperiod.cfg等配置文件中可以找到:

          define timeperiod {
                  timeperiod_name 24x7
                  alias           24 Hours A Day, 7 Days A Week
                  sunday          00:00-24:00
                  monday          00:00-24:00
                  tuesday         00:00-24:00
                  wednesday       00:00-24:00
                  thursday        00:00-24:00
                  friday          00:00-24:00
                  saturday        00:00-24:00
                  }

          這個配置就是定義了一個名字是"24×7"的時間段,包括從周一到周日中每天的24小時。這個時間段里,系統(tǒng)會將故障告警信息發(fā)送給聯(lián)系人。


          3)檢查contactgroup.cfg的配置


          define contactgroup{

          contactgroup_name novell-admins

          alias Novell Administrators

          members jdoe,rtobert,tzach

          }

          此配置定義了一個名字叫 novell-admins 的聯(lián)系人組,包括成員 jdoe,rtobert,tzach 等三個人。你要確定(1)中contact_groups 的值在這里有定義。

          4)要檢查各個聯(lián)系人的配置,就要查看contacts.cfg文件:


          define contact{

          contact_name jdoe

          alias John Doe

          service_notification_period 24x7

          host_notification_period 24x7

          service_notification_options w,u,c,r

          host_notification_options d,u,r

          service_notification_commands notify-by-email

          host_notification_commands host-notify-by-email

          email jdoe@localhost.localdomain

          pager 555-5555@pagergateway.localhost.localdomain

          address1 xxxxx.xyyy@icq.com

          address2 555-555-5555

          }

          這個配置文件例子頂一了一個jdoe的聯(lián)系方式和另外一些參數(shù)。注意這里的參數(shù)也可能會造成提醒信息沒有發(fā)送。emailpageraddress分別對應該聯(lián)系人的email地址、傳真地址、其他地址等等。這里解釋一下其他相關的參數(shù):

          host_notification_period: 主機類提醒發(fā)送時間。定義主機類提醒發(fā)給該聯(lián)系人的時間段。在hosts.cfg中已經定義了一個notification_period那個定義是是定義所有該主機需要提醒的人接受提醒的時間段。這里的這個時間段則是說明這個人接受提醒信息的時間段,也就是說提醒發(fā)送的時間必須同時滿足主機配置文件和此配置文件中的時間段才會正常發(fā)送給聯(lián)系人jdoe。這個參數(shù)對于那些24小時3班導的人,或者10點之后起床的老板,是很有用的。

          service_notification_period: 這個參數(shù)類似于host_notification_period,不多說了。

          host_notification_commands: 這個參數(shù)說明發(fā)送主機提醒信息的命令。呵呵,如果以上的配置都沒有問題,但是沒有接受到提醒的話,要留意這里!

          service_notification_commands: 這個參數(shù)說明發(fā)送服務提醒信息的命令。

          host_notification_options:定義接受提醒的主機狀態(tài)改變:d = DOWN , u = UNREACHABLE, r=UP or OK,  f = flappingn =什么都不發(fā)送。

          service_notification_options: 定義接受提醒的服務狀態(tài)改變。參數(shù)意義同host_notification_options

          5小結。根據以上的分析,如果關于服務狀態(tài)改變、提醒信息發(fā)送時間段、聯(lián)系人的聯(lián)系地址等都沒有問題,那么可能的問題就是發(fā)送提醒信息的命令出現(xiàn)問題。查看這些命令之前,請確定nagios系統(tǒng)的服務器上有mailsendmail等發(fā)送郵件的軟件包,且工作正常。如果你有一些短信貓,或者用了其他的提醒腳本,請確定其工作正常。

          另外,nagios還包括一個名為 Notification Escalations 的模塊,用來擴展已經很強大的提醒體系。

          舉例說明一下這個模塊的功能:你定義一臺主機的提醒,首次發(fā)現(xiàn)問題不提醒,直到連續(xù)三次重復出現(xiàn)問題時,主機管理員A會收到提醒,然后過了一段時間,問題還沒有修復,這是又繼續(xù)發(fā)送第4次提醒給A(此時A共收到2次提醒),在第五次提醒的時候,就發(fā)給了管理員B,……,在第十次提醒的時候就發(fā)給了管理員的老板……如果你用到這個模塊,也需要檢查其是否配置正確。

          6)提醒命令

          一般的提醒命令名稱如 xxx-notify-by-xxx,他只是一個名字,具體是用什么來實現(xiàn)這個提醒的具體工作的,要查看command.cfg文件中,關于此命令的定義,舉個例子:


          # 'notify-by-email' command definition

          define command{

          command_name notify-by-email

          command_line /usr/bin/printf "%b" "*****Nagios2.9*****"n"nNotification Type: $NOTIFICATIONTYPE$"n"nService: $SERVICEDESC$"nHost: $HOSTALIAS$"nAddress: $HOSTADDRESS$"nState: $SERVICESTATE$"n"nDate/Time: $LONGDATETIME$"n"nAdditional Info:"n"n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ }


          上例中,定義了一個名字為
          "notify-by-email"的命令,這個命令的內容,就是command_line對應的命令行定義的。如果你是用獨立的腳本來完成提醒功能,可能會類似下面的情況:


          #host-notify-by-sms

          define command {
          command_name host-notify-by-sms

          command_line /nagios/sms.sh

          }

          posted on 2009-05-13 13:52 Blog of JoJo 閱讀(266) 評論(0)  編輯  收藏 所屬分類: 每日一記

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 铅山县| 天柱县| 辽阳县| 望奎县| 云安县| 宁德市| 抚松县| 台东县| 永修县| 房山区| 康定县| 贵南县| 丰都县| 金堂县| 淳化县| 桓仁| 平定县| 天气| 巢湖市| 郴州市| 新邵县| 沂南县| 扶沟县| 招远市| 忻城县| 利辛县| 黔南| 盐边县| 于都县| 绥芬河市| 沿河| 花垣县| 吉林省| 宜良县| 安图县| 广东省| 清镇市| 台北市| 古田县| 噶尔县| 霍城县|