Nagiosで複数のサーバー・サービスを監視しているのだが、障害があったのに、通知が来なかった。
監視のタイミングを微妙にすり抜けてしまったのかと思ったが、nagios のHistoryをみてみると「SERVICE FLAPPING ALERT」として検知されている。

[02-20-2013 08:12:57] SERVICE FLAPPING ALERT: www.somedomain.com;HTTPS;STARTED; Service appears to have started flapping (21.3% change >= 20.0% threshold)
[02-20-2013 08:12:57] SERVICE ALERT: www.somedomain.com;HTTPS;OK;HARD;1;HTTP OK: HTTP/1.1 200 OK - 282 bytes in 0.149 second response time
[02-20-2013 08:08:07] SERVICE ALERT: www.somedomain.com;HTTPS;CRITICAL;HARD;1;CRITICAL - Socket timeout after 10 seconds

Flappingってなに?なんで通知がこないのだろう。
あまり調べている時間が無いので、ざっと調べてみた。
・Flappingは小刻みに異常→正常を繰り返す場合らしい。
flap = ひらひらする,はためく,平手うち,興奮状態,騒動 とかの意味があるので、このへんの意味合いなんだろう。
・Nagios3系でデフォルト有効みたい。


Detection and Handling of State Flapping

に解説がある。詳しく読めてません。
・通知が来ないのはよくわからないけど、設定でなんとかできそうな気がする。
・Flappingと検知する閾値も設定できるみたい。
・Flappingの検知自体をOFFにできるみたい。
今回はFlappingの検知自体をOFFにしてみた。
xxx.cfgファイルのhostやserviceにflap_detection_enabled 0を追加すればよいみたい。

define host{
        use                     generic-host            ; Name of host template to use
        host_name               testhost
        alias                   testhost
        address                 127.0.0.1
        check_command           check-host-alive
        max_check_attempts      10
ココ     flap_detection_enabled  0     			; Flap detection is enabled
        notification_interval   120
        notification_period     24x7
        notification_options    d,r
        contact_groups  admins
        }


define service{
        use                             generic-service         ; Name of service template to use
        host_name                       router
        service_description             PING
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              4
        normal_check_interval           5
        retry_check_interval            1
ココ     flap_detection_enabled  0      			; Flap detection is enabled
        contact_groups                  admins
	notification_options		w,u,c,r
        notification_interval           960
        notification_period             24x7
	check_command			check_ping!500.0,20%!1000.0,60%
        }

設定して、Nagios再起動(checkconfigを忘れずに!)してみたら、Flap Detection がOFFになった。
nagios_flapdetection

しばし、これで運用してみよう。Alertが来ると良いな。いや、違うかな。