web-dev-qa-db-ja.com

ロードアラートを消音するにはどうすればよいですか?

Nagiosサーバーを構成するファイルの大規模なセット内には、負荷のサービスチェックがあります。

define service{
        use                             generic-service
        name                            check-load
        hostgroup_name                  nrpe-hosts,!webnodes,!build-cluster
        notification_options            c,r
        service_description             NRPE - Load
        check_command                   check_nrpe!check_load
        contacts                        irc
}

そして2つの連絡先:

define contact{
        contact_name                    irc
        alias                           ircbot
        Host_notification_period        24x7
        service_notification_period     24x7
        Host_notification_options       d,u,r,f
        service_notification_options    w,u,c,r,f
        service_notification_commands   notify-by-epager
        Host_notification_commands      Host-notify-by-epager
        pager                           [email protected]
        }

define contact {
       contact_name                             pagerduty
       alias                                    PagerDuty Pseudo-Contact
       service_notification_period              24x7
       Host_notification_period                 24x7
       service_notification_options             u,c,r
       Host_notification_options                d,r
       service_notification_commands            notify-service-by-pagerduty
       Host_notification_commands               notify-Host-by-pagerduty
       pager                                    lol-no
}

編集:また、サービス継承のもの:

define service{
        name                            generic-service
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           3
        retry_check_interval            1
        notification_interval           0
        notification_period             24x7
        notification_options            w,c,r
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}

Edit2:そして、疑わしい人のためだけに、notifyコマンドの定義;):

# 'notify-by-epager' command definition
define command{
        command_name    notify-by-epager
        command_line    /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nDate: $LONGDATETIME$" | /bin/mail -s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
}

Edit3:そしてホスト定義:

define Host{
        Host_name                       vmprod1
        alias                           vmprod1.example.com
        address                         192.1.1.123
        use                             generic-Host
        hostgroups                      nrpe-hosts,vm-hosts,vm-prod,dellraid-hosts
        contact_groups                  example,example-pager
}

これは、サービスの説明が「NRPE-ロード」である唯一のチェックです。私の読書では、これはircの連絡先にのみ警告し、pagerdutyの連絡先には警告しないはずです。それでも、先月PagerDutyで100を超える「NRPE-Load」アラートを受け取りました。

何が足りないのですか?

2
jldugger

卒業の借金を返済するために、私は自分の質問に答えます。 サービスは暗黙的にホストから継承します であることが判明したため、上記のサービスチェックには連絡先設定と継承されたcontact_groupがありました。

サービスチェックを簡単に修正すると、次のようになります。

define service{
        use                             generic-service
        name                            check-load
        hostgroup_name                  nrpe-hosts,!webnodes,!build-cluster
        notification_options            c,r
        service_description             NRPE - Load
        check_command                   check_nrpe!check_load
        contacts                        irc
        contact_groups
}
1
jldugger