3.1.2 外れ値検知によるふだんと異なる監視対象サービスの状態の検知
外れ値検知は,監視項目ごとに監視します。また,複数の監視項目を組み合わせて監視することもできます。監視項目については「3.1.1 JP1/SLMの監視方法および監視対象の種類」を参照してください。
ここでは,外れ値検知について,概要,およびベースラインと上下限値の算出方法について説明します。
(1) 外れ値検知とは
外れ値検知は,監視対象サービスのサービス性能がふだんのサービス性能と大きく異なっている場合に,サービス性能の異常の予兆として検知する監視方法です。過去に蓄積したサービス性能から平均値を算出して,平均値と大きく異なる値を外れ値として検知します。なお,過去に蓄積されたサービス性能から算出した平均値をベースラインといいます。
外れ値検知では,ベースラインを基に上下に幅を持たせた値を上下限値として使用します。現在のサービス性能が上限値を上回ったか,または下限値を下回ったら外れ値として検知することで,現在のサービス性能がベースラインから大きく離れていないか,つまりふだんのサービス性能と異なっていないかを判断します。ベースラインおよび上下限値は,60秒ごとに更新されます。
外れ値検知は,標準偏差を用いた統計手法に基づいて行います。ベースラインには過去に蓄積されたサービス性能の平均値を用いており,上下限値は過去に蓄積されたサービス性能の平均値および標準偏差を基に算出した値を用いています。
外れ値検知でふだんと異なるサービス性能が検知された例を次の図に示します。
図では平均応答時間を監視しています。時間の経過に伴ってサービス性能の値が増加していき,上限値を上回ったため検知されました。
上下限値は,監視対象サービスのサービス性能がベースラインからどれだけ離れたら検知するかを示す,感度を設定することで決定されます。感度の設定によって,検知のされやすさが変化します。
また,外れ値検知では,複数の監視項目を組み合わせて監視することもできます。
複数の監視項目を組み合わせた外れ値検知では,監視項目の相関関係を考慮することで,サービス性能の異常の予兆検知の精度を高められます。組み合わせられる監視項目は,平均応答時間とスループットです。
監視項目に相関関係がある場合,1つの監視項目だけを見ると異常に見えても,相関関係を考慮すると異常ではないことがあります。例えば,平均応答時間が増加傾向であっても,原因が監視対象サービスの利用者の増加によるスループットの増加である場合には,平均応答時間の増加はシステムの負荷の増加による正常なサービス性能の変化と見なすこともあります。複数の監視項目を組み合わせた外れ値検知では,このような相関関係に基づいたサービス性能の変化は問題ないと判断し,検知しないことで,検知の精度を高められます。
複数の監視項目を組み合わせた外れ値検知でふだんと異なるサービス性能が検知された例を次の図に示します。
図のAのように,同じ時間に平均応答時間またはスループットのどちらか片方だけが異常な増加をした場合は,サービス性能の異常の予兆として検知されます。しかし,図のBのように,同じ時間に両方とも異常な増加をした場合は,相関関係が見られるため,正常だと判断され,検知されません。
複数の監視項目を組み合わせた外れ値検知では,2つのサービス性能の相関関係がベースラインとして算出されます。このベースラインを基に算出された予兆検知の上限値を上回ったか,下限値を下回ったら,相関関係がないと見なされて,検知されます。
複数の監視項目を組み合わせた外れ値検知では,ベースラインおよび上下限値は,1時間ごとに更新されます。
外れ値検知で検知された場合,警告となって画面に表示されます。
画面に警告が表示された例を次の図に示します。
画面には,警告のアイコン,検出日時,警告の対象となったサービスグループの名称,サービスの名称などの情報が表示されます。サービス性能が連続して上限値を上回り続ける場合,または下限値を下回り続ける場合は,最初に検知された時点の警告だけが表示されます。表示された警告の前後のサービス性能はグラフで確認できます。
グラフを表示した例を次の図に示します。
グラフでは,上限値を上回ったか,または下限値を下回ったサービス性能を検知した時刻が警告のアイコンで,外れ値の原因の事象が発生したと推測される時刻が色付きの帯で表示されます。
なお,外れ値検知をするためには,[設定]画面で次の項目を設定する必要があります。
開始日数
ベースライン算出日数
-
分析期間
感度
- 開始日数
サービス性能を何日分蓄積したら外れ値検知を開始するかを設定します。外れ値検知では,ベースラインを算出するに当たって,本番環境で稼働している監視対象サービスのサービス性能を蓄積する必要があります。蓄積した日数が1日以上あれば外れ値を検知できますが,蓄積日数がベースライン算出日数より少ない場合は,ベースラインの基となるデータが不足するため,実態に合わないベースラインとなるおそれがあります。そのため,開始日数にはベースライン算出日数以上の値を設定することを推奨します。
- ベースライン算出日数
ベースラインの算出に使用するサービス性能について,蓄積した過去のサービス性能から何日分を使用するか,日数を設定します。
- 分析期間
-
外れ値検知で使用するサービス性能の期間について,Short range(直近60日間)またはLong range(直近5年間)のどちらかを選択します。Long range(直近5年間)を指定することで,現在と年単位で発生する繁忙期とでサービス性能を比較できます。
- 感度
ベースラインから上下限値までの幅を調整して,外れ値検知での検知のされやすさを設定します。感度は高・中・低から設定でき,感度を高くすると上下限値の幅が狭くなって検知されやすくなり,感度を低くすると上下限値の幅が広くなって検知されにくくなります。上下限値の幅は,高は中の1/2倍,低は中の3/2倍となります。
感度を調整して,上下限値の幅を広くした場合と狭くした場合の例を次の図に示します。
図3‒9 上下限値の幅を広くした場合と狭くした場合の例 この図では平均応答時間を監視しています。左のグラフと右のグラフのサービス性能は同じですが,左のグラフのように上下限値の幅が狭い場合は,右のグラフのように上下限値の幅が広い場合に比べて,外れ値となるサービス性能が多くなります。
- 外れ値検知の上下限値の設定
-
外れ値検知の上下限値は,JP1/SLM - Managerのシステム定義ファイル(jp1itslm.properties)中のserviceBaselineExclusionプロパティで設定できます。
trueが設定されている場合:ベースラインの上限だけの超過を検知する。
図3‒10 上限だけの超過を検知する例 falseが設定されている場合:ベースラインの上下限値両方の超過を検知する。
図3‒11 上下限値両方の超過を検知する例 システム定義ファイルを編集する方法については,「5.6.1 システム定義ファイルを編集する」を参照してください。
- JP1/PFMと連携する場合
-
JP1/PFMと連携することでシステム性能についても外れ値検知ができます。ただし,システム性能を監視する場合は,サービス性能の監視とは異なり,複数の監視項目を組み合わせた外れ値検知はできません。
システム性能の外れ値検知の上下限値は,JP1/SLM - Managerのシステム定義ファイル(jp1itslm.properties)中のsystemBaselineExclusionプロパティで設定します。システム定義ファイルを編集する方法については,「5.6.1 システム定義ファイルを編集する」を参照してください。
(2) ベースラインと上下限値の算出方法
外れ値の判定基準となるベースラインは次のように算出されます。
- サービス監視構成の場合
現在時刻から1時間前までの期間で,監視対象サービスのスループットのサービス性能の平均(平均処理件数)が算出されます。
蓄積されたサービス性能から,現在と同一時間帯の平均処理件数が現在の平均処理件数に近い日のサービス性能が選択されます。
選択された日のサービス性能から,現在時刻から1時間先までの平均値(ベースライン)が各監視項目について1分ごとに算出されます。
- システム監視構成の場合
-
-
現在時刻から1時間前までの期間で,選択した監視対象のシステム測定値の平均が算出されます。
-
蓄積されたシステム性能から,同一時間帯で現在の平均に近い日が選択されます。
-
選択された日のシステム性能から,現在時刻から1時間先までの平均値(ベースライン)が各監視項目について1分ごとに算出されます。
-
例えば,平日と休日で処理件数が大きく異なる監視対象サービスなど,同一時間帯でも日によってサービス性能に大きく差がある場合,平日と休日それぞれの過去のサービス性能を基にベースラインを算出することで,実態に合ったベースラインとなります。
60日分のサービス性能を蓄積した場合に,ベースラインの算出に使用する過去のサービス性能を平均処理件数の近い順に選択した例を次の図に示します。
1時間前から現在時刻までの期間での平均処理件数と近い日のサービス性能が,過去に蓄積されたサービス性能から選択されます。図では,現在の平均処理件数が300件であるため,過去60日の中から平均処理件数が近い1日前や60日前のサービス性能が選択されています。2日前のサービス性能は,平均処理件数との差が大きいため選択されません。算出に使用するサービス性能は[設定]画面の[ベースライン算出日数]で指定した日数分だけ,過去に蓄積されたサービス性能から選択されます。
過去のサービス性能の選択には,次のような規則があります。
平均処理件数が同一の日は,日にちが現在に近いサービス性能から優先して選択されます。
選択される日について,サービス性能の取得数は考慮しません。ただし,サービス性能をまったく取得していない日は選択されません。
監視を一度停止して開始した直後など,1時間前から現在時刻までの平均処理件数の情報がない場合は,その日の前日から順に選択されます。
規則に従って,予兆検知設定の[ベースライン算出日数]で指定した日数の過去のサービス性能か,または蓄積しているすべての日を選択し終わるまで過去のサービス性能が選択されます。過去のサービス性能の選択は,毎時0分ちょうどに実施されます。
ベースラインは入力した過去情報から優先度順に使う日を選択して算出します。
外れ値検知は,1日分以上のサービス性能が蓄積されている状態であれば開始できます。ただし,サービス性能がベースライン算出日数分蓄積されるまでは,実態に合わないベースラインとなるおそれがあります。ベースラインを実態に近づけるため,ベースライン算出日数分のサービス性能が蓄積されている状態で外れ値検知を開始することを推奨します。
サービス性能を何日蓄積してから外れ値検知を開始するかは,[設定]画面の[開始日数]で指定します。
ベースライン算出日数と開始日数の関係を次の図に示します。
ベースライン算出日数には15日を,開始日数には5日を設定しています。
この場合,JP1/SLMの稼働開始日から5日目に外れ値検知が開始されます。この時点で,蓄積した5日分の過去のサービス性能からベースラインが算出されますが,ベースライン算出日数よりも少ない日数で算出しているため,実態に合わないベースラインとなるおそれがあります。JP1/SLMの稼働開始日から15日目には,ベースライン算出日数分のサービス性能が蓄積されるため,ベースラインが最も実態に合った状態になります。
なお,複数の監視項目を組み合わせる場合,ベースラインの算出方法が一部異なります。
複数の監視項目を組み合わせた外れ値検知の場合は,スループットの平均(平均処理件数)から過去のサービス性能を選択したあと,選択した日から平均応答時間とスループットの平均的な相関関係を算出してベースラインを算出します。
ただし,検知に使用するベースラインが異なるため,通常の外れ値検知の外れ値と複数の監視項目を組み合わせた外れ値検知の外れ値では,次のように意味が異なります。
通常の外れ値検知での外れ値
現在のサービス性能について,ふだんのサービス性能と大きく異なっていることを意味しています。
複数の監視項目を組み合わせた外れ値検知での外れ値
現在のサービス性能について,同時刻の複数の監視項目に相関関係がないことを意味しています。
そのため,通常の外れ値検知では上限値を上回った外れ値となっても,複数の監視項目を組み合わせた外れ値検知では下限値を下回った外れ値となる場合や,通常の外れ値検知では下限値を下回った外れ値となっても,複数の監視項目を組み合わせた外れ値検知では上限値を上回った外れ値となる場合があります。
複数の監視項目を組み合わせた外れ値検知で外れ値が検知された例を次の図に示します。
図では平均応答時間とスループットを監視しています。監視項目同士のグラフ上でベースラインが算出され,その上限値を上回るか下限値を下回ると外れ値となり,監視項目同士に相関関係がないと見なされます。
外れ値検知および複数の監視項目を組み合わせた外れ値検知の上下限値は,ベースラインを算出するときに選択された過去のサービス性能のばらつきと,検知のされやすさを調整する感度によって決定されます。
- JP1/PFMと連携する場合
-
システム性能を監視する場合のベースラインも,サービス性能を監視する場合と同様の基準で選出されたシステム性能から算出されます。ただし,ほかの監視項目で優先度が高い日でも,システム性能を取得していない日は選択されず,次に優先度の高い日が選択されます。そのため,監視項目によってベースラインの算出に使用する日が異なることがあります。
また,システム性能を監視する場合は,監視項目ごとにベースラインの算出に使用する日数を設定できます。
(3) 検知される基準
外れ値検知では,一過性の外れ値を検知することを防止するため,継続的に外れ値が発生した場合に検知されます。
外れ値が検知される基準を,サービス性能を監視する場合とシステム性能を監視する場合のそれぞれについて説明します。
- サービス性能を監視する場合
検知される基準は,60秒間に測定したサービス性能の数と,JP1/SLM - Managerのシステム定義ファイル(jp1itslm.properties)中のoutlierRateプロパティの指定値によって変化します。outlierRateプロパティの値はすべての監視対象サービスの外れ値検知に適用されます。
システム定義ファイルを編集する場合は,「5.6.1 システム定義ファイルを編集する」を参照してください。
outlierRateプロパティの値と,外れ値検知の挙動の関係を次の表に示します。
表3‒2 outlierRateプロパティの値と外れ値検知の挙動の関係 項番
outlierRateプロパティの値(n)
外れ値検知の挙動
1
1
1回でも上限値を上回った,または下限値を下回ったら検知されます。
60秒間で1回も上限値を上回ったり下限値を下回ったりしなければ正常に戻ったと判断されます。
2
2〜98
60秒間でS×n/100(小数点以下切り上げ)回上限値を上回った,または下限値を下回ったら検知されます。
60秒間の超過がS×n/100(小数点以下切り上げ)回未満になったら正常に戻ったと判断されます。
3
99〜100
60秒の間,常に上限値を上回り続けた,または下限値を下回り続けたら検知されます。
1回でも上下限値内になったら正常に戻ったと判断されます。
- (凡例)
S:60秒間に測定したサービス性能の数
n:JP1/SLM - Managerのシステム定義ファイル(jp1itslm.properties)中のoutlierRateプロパティの値
なお,継続的な外れ値は,上限値に継続して外れ値が発生した場合と,下限値に継続して外れ値が発生した場合に分けて判定されます。上限値と下限値を超える外れ値が連続して発生しても,継続的な外れ値とはなりません。
また,次の場合のサービス性能は,上限値を上回った,または下限値を下回ったときも外れ値となりません。
平均応答時間,スループットがともに0の場合の平均応答時間(スループットは外れ値となる)
エラー率,スループットがともに0の場合のエラー率(スループットは外れ値となる)
これは,スループットが0件の場合は情報がないことを示すためです。ただし,スループット自体は値が0であれば処理件数0件というサービス性能であるため,値が0の場合も上限値を上回った,または下限値を下回ったときは外れ値となります。
このとき,平均応答時間とエラー率が外れ値とならなくても,その状態が平常の状態といえる場合もあるため,ベースラインを算出する基となる過去のサービス性能としては使用されます。
- システム性能を監視する場合
-
検知される基準は,直近の測定回数で何回超過したらイベントを発生させるかで決めます。超過回数と測定回数は,[設定]画面の[監視設定]エリアの予兆検知設定の[発生頻度]で設定します。設定した値と外れ値が検知される基準の対応を次の表に示します。
表3‒3 外れ値が検知される基準 項番
[発生頻度]の設定
外れ値が検知される基準
1
超過回数と測定回数の両方に1を設定している
現在時刻の性能データが予兆検知の上下限値を超過している場合は,外れ値が検知されます。
2
超過回数と測定回数のどちらか,または超過回数と測定回数の両方に1以外の値を設定している
次の両方の条件を満たす場合に,外れ値が検知されます。
-
現在時刻の性能データが予兆検知の上下限値を超過している。
-
直近の測定回数で,超過回数以上予兆検知の上下限値を超過している。取得回数が測定回数未満のときは,その時点での全計測値で超過回数以上予兆検知の上下限値を超過している。
外れ値検知を判定する際の注意事項を次に示します。
-
通知の実施後,正常に戻るまでは条件を満たしても通知はしません。
-
監視を停止した場合,計測値の取得回数と上下限値の超過回数は0に初期化されます。再度監視を開始したあとの判定には,停止前の計測値は使用しません。
-
直近にエラーが発生して計測値を取得できなかった時刻がある場合,その時刻は無視して指定回数分の判定ができるまで計測値をさかのぼって判定します。
-
判定する時刻にベースラインとなる過去情報が1つもない場合,その時刻は上限値および下限値をともに超過していないものとして判定します。
-
(4) 正常に戻ったと判断される基準
上限値を上回った,または下限値を下回った状態から回復して正常に戻ったことを判断する基準を,サービス性能を監視する場合とシステム性能を監視する場合のそれぞれについて説明します。
- サービス性能を監視する場合
判断の基準は,60秒前から現在時刻までの期間のサービス性能のうち,上限値を上回った,または下限値を下回った件数がS×n/100(小数点以下切り上げ)件以下になった場合です。
Sは60秒間に測定したサービス性能の数,nはJP1/SLM - Managerのシステム定義ファイル(jp1itslm.properties)中のoutlierRateプロパティの指定値です。
システム定義ファイルを編集する場合は,「5.6.1 システム定義ファイルを編集する」を参照してください。
例えば,Sが60,nが10の場合,60秒間のサービス性能のうち上限値を上回った,または下限値を下回った件数が6件未満になったときに正常に回復したと判断されます。上限値と下限値は個別に判定され,両方が正常となった場合に回復したと判断されます。一時的にベースラインに近づいた値になっても,回復したとは判断されません。
- システム性能を監視する場合
-
判断の基準は,[設定]画面の[監視設定]エリアで監視対象サービスに設定した,予兆検知設定の[発生頻度]の値によって変化します。
予兆検知設定の[発生頻度]の設定については「3.2.10 システム性能の監視項目を設定する(JP1/PFMと連携する場合)」を参照してください。
設定した値と回復したと判断される基準の対応を次の表に示します。
表3‒4 上限値を上回った,または下限値を下回った状態から回復したと判断される基準 項番
予兆検知設定の[発生頻度]の設定
回復したと判断される基準
1
M,Nの両方に1を設定している
現在時刻の性能データが上限値,下限値のどちらも超過していない場合は,回復したと見なされます。
2
M,Nのどちらか,またはM,Nの両方に1以外の値を設定している
直近のM回の計測値で,予兆検知の上限値の超過がN回未満かつ下限値の超過がN回未満のときは回復したと見なされます。
取得回数がM回未満の場合は,その時点での全計測値で予兆検知の上限値の超過がN回未満かつ下限値の超過がN回未満のときに回復したと見なされます。
- (凡例)
-
M:予兆検知設定の[発生頻度]に設定した測定回数
N:予兆検知設定の[発生頻度]に設定した超過回数
回復の判定は,通知した監視項目の値が更新されるときに実施されます。そのため,回復の判定はその監視項目の情報の取得間隔での実施となります。
状態の回復については,[ホーム]画面または[リアルタイム監視]画面で確認できます。[ホーム]画面の確認方法については「4.3.1 すべてのサービスグループの監視対象サービスの状況を確認する」を,リアルタイム画面の確認方法については,「4.3.2 特定のサービスグループの監視対象サービスの状況を確認する」を参照してください。
(5) 補足事項
ベースラインを算出するためのサービス性能の蓄積については,1日のうちでサービス性能を測定できていない時間帯がある場合でも,一度でもサービス性能が測定されていればサービス性能が蓄積された日数に数えられます。そのため,1日のうちでサービス性能を測定できていない時間帯がある場合,一部の時間帯では蓄積されたサービス性能が不足して,ベースラインが表示されない場合があります。
-
外れ値検知が開始されるタイミングの判定は,分析期間によって利用するデータが異なります。分析期間がShort rangeの場合は性能データ,Long rangeの場合はレポートデータの取得日数を利用して判定します。
サービス性能の外れ値検知が開始されるタイミングは,[設定]画面で設定した開始日数分の情報を蓄積しているかによって変わります。外れ値検知が開始されるタイミングを次に示します。
現在の日を除いたサービス性能の蓄積日数が予兆検知設定の開始日数以上の場合は,監視を開始して最初にJP1/SLM - URが取得したサービス性能の時刻+60秒(分析期間がLong rangeの場合は最大5分)以降の時刻から開始します。
現在の日を除いたサービス性能の蓄積日数が予兆検知設定の開始日数未満の場合は,現在の日を除いたサービス性能の蓄積日数が開始日数に達した日の00:00:00以降の時刻から開始します。
-
システム性能の外れ値検知が開始されるタイミングは,[設定]画面で設定した開始日数分の情報を蓄積しているかによって変わります。外れ値検知が開始されるタイミングを次に示します。
-
現在の日を除いたシステム性能の蓄積日数が予兆検知設定の開始日数以上の場合は,監視を開始して最初にJP1/PFM - AgentまたはJP1/PFM - RMが取得したシステム性能の時刻から開始します。
-
現在の日を除いたシステム性能の蓄積日数が予兆検知設定の開始日数未満の場合は,現在の日を除いたシステム性能の蓄積日数が開始日数に達した日の00:00:00以降の時刻から開始します。
-
-
収集間隔の長いシステム性能の監視項目は直近1時間の過去情報の量が少ないため,ベースライン,上限値,および下限値の精度が下がることがあります。精度を上げるためには,JP1/PFMで収集間隔を短くするか,ベースライン算出日数を多く設定し,使用する過去情報の量を増やしてください。
-
収集間隔が24時間以上の監視項目で予兆検知をすると,最新の情報の1つ前に取得した情報がベースラインの算出に使用されません。そのため,予兆検知をする監視項目は,JP1/PFMでの収集間隔を24時間未満に設定してください。
監視を停止してから24時間以上経過したあとに再び監視を開始した場合,停止前に取得した最後の1分間の情報がベースラインの算出に使用されないときがあります。そのときは,1時間以上監視を継続するか,一度監視を停止してから再び監視を開始することで修正できます。