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」アラートを受け取りました。
何が足りないのですか?
卒業の借金を返済するために、私は自分の質問に答えます。 サービスは暗黙的にホストから継承します であることが判明したため、上記のサービスチェックには連絡先設定と継承された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
}