nagios實現定時發送通知

最近在做nagios監控,需要實現定時通知功能。找了一些資料,後邊加上了自己配置的詳細過程。

這個是原文:

在Nagios配置基礎中,我已介紹了通知配置方法.當某個受監控系統不再可達時,Nagios會發送告警通知.默認情況下,Nagios以郵件方式,將通知發送給指定聯繫人.在本章中,你將學會如何配置系統,實現在不同時間段,發送通知給不同管理員.
    Nagios通知默認配置介紹
    在學習如何配置之前,我們先簡單介紹一下默認配置.配置文件位於/etc/nagios/objects/contacts.cfg,默認情況下,文件中包含一個聯繫人與一個聯繫組.具體內容如下所示:
    efine contact{
    contact_name   nagiosadmin
    use        generic-contact
    alias          Nagios Administration
    email          nagios@localhost
    }
    define contactgroup{
    contactgroup_name  admins
    alias              Nagios Administrators
    members        nagiosadmin
    }
    在默認配置中,告警幾乎不怎麼起作用.要讓系統將通知發送至某個收件箱,用戶需要有指定的電子郵箱,並經常檢查通知郵件.在通知郵件發出,到用戶打開郵箱閱讀,可能會經過很長的時間.
    讓Nagios在不同時間段發送通知
    默認情況下,所有告警會晝夜不停的發送.你可以通過建立多種方案來實現在不同時間段發送通知.我們從/etc/nagios/objects/timeperiods配置文件開始介紹,此文件用於設定時間段.舉例說明,你可以通過以下設置,定義“夜晚”的時間段:
    define timeperiod{
    timeperiod_name    night
    alias              do not disturb
    sunday             00:00-06:00
    monday             00:00-06:00
    tuesday            00:00-06:00
    wednesday          00:00-06:00
    thursday           00:00-06:00
    friday             00:00-06:00
    saturday           00:00-06:00
    }
    我們可以利用這些時間段,給不同用戶帳號設置不同值守時間,併爲不同事件設置不同的動作.這樣可以確保告警在半夜也可以發送給適當的人.
    如果已經通過定義contacts.cfg定義了多個通信帳號,並按照上面介紹的方法定義了時間段,我們現在可以設置讓任何主機或者服務,在特定時間段內,將通知發送給不同的人.
    因此,你可以根據一天的時間段,爲不同的主機定義不同的動作,將事件信息發送給不同的管理員.例如,以下配置信息可以讓你將“check-host-alive”(檢測主機在線情況)檢查任務設置成在夜裏每一小時檢查一次,當然,你可以調整檢查頻率,實現每15分鐘檢查一次:
    define host{
    host_name                my-server
    hostgroups               linuxservers
    ...
    check_command            check-host-alive
    ...
    check_period    night
    contact  nagiosadmin
    notification_interval   60
    notification_period      night
    notification_options     d,u
    此配置與默認配置一起使用,可以針對夜晚時間段進行主機監控.
    現在,你已經知道如何利用多Nagios聯繫名單與時間段定義,建立自定義告警通知.活用這些技巧可以讓你確保適合的人在適合的時間,收到正確的Nagios通知.

下面是一些配置過程:

指定服務,指定聯繫人,指定通知方式。

爲了實現對指定服務,實現指定聯繫人的通知方式,

在 timeperiods.cfg 中加入發送通知時間

define timeperiod{

        timeperiod_name notify_at_8

        alias once_a_day

        sunday 08:00-09:00

        monday 08:00-09:00

        tuesday 08:00-09:00

        wednesday 08:00-09:00

        thursday 09:00-10:00

        friday 08:00-09:00

        saturday 08:00-09:00

}

定義需要通知的聯繫人:

define contact {

        contact_name notifyadmin

                alias wu

                use generic-contact

                service_notification_commands   notify-service-by-qqemail   #通知命令

                email [email protected]

}

我們在指定的主機中加入服務

define service{

        host_name localhost

                use local-service

                service_description notify_at_800 

                contacts   notifyadmin   # 指定聯繫人

                check_command   notify_at_800  #定義一個服務檢查命令來觸發通知發送。

                check_period    notify_at_8   #定義檢測時間。 

                notification_period  notify_at_8  #檢測間隔

   

}

重啓服務就可以實現在指定時間段發送消息。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章