web 系システムからの特徴抽出とオンライン障害検知手法
DESCRIPTION
特別セッション2: システムプラットフォーム・インテリジェンス. Web 系システムからの特徴抽出とオンライン障害検知手法. IBM 東京基礎研究所 井手剛・鹿島久嗣. 話の構成. 研究の背景 論点の整理 Web 系システムのモデル化 問題設定 特徴抽出 異常の尺度 閾値の設定 実験 まとめ. 研究の背景 1/3 アプリケーション層での異常を「オートノミック」なやり方で検知したい. コンピュータシステムの障害検知、特にアプリ層の障害検知は難しい HW 自体が壊れることは少ないが、 SW の不調は頻繁に起こる 難しさの由来はどこにあるのだろう?. - PowerPoint PPT PresentationTRANSCRIPT
Tokyo Research Laboratory
© Copyright IBM Corporation 2003
Web 系システムからの特徴抽出とオンライン障害検知手法
IBM 東京基礎研究所井手剛・鹿島久嗣
特別セッション2: システムプラットフォーム・インテリジェンス
IBIS 2004 | 2004/11/08 |Page 2
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
話の構成
研究の背景 論点の整理 Web 系システムのモデル化 問題設定 特徴抽出 異常の尺度 閾値の設定 実験 まとめ
IBIS 2004 | 2004/11/08 |Page 3
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
研究の背景 1/3アプリケーション層での異常を「オートノミック」なやり方で検知したい
コンピュータシステムの障害検知、特にアプリ層の障害検知は難しい HW 自体が壊れることは少ないが、 SW の不調は頻繁に起こる
難しさの由来はどこにあるのだろう? 自由度が大きい
複数の自由度が強く絡み合
う時間変動が激しい
IBIS 2004 | 2004/11/08 |Page 4
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
研究の背景 2/3コンピュータシステムの障害検知でありがちな想定
自由度が大きい
時間変動が激しい
複数の自由度が強く絡み合
う
「各端末にエージェントを仕込んで警報を出させればいい」 局所的に見てわかるのは自明な問題だけ(例:断線、プロセス停止)
「観測量を閾値と比べて、大小関係を見れば異常がわかる」 たとえば Web 系システムだと、トラフィックの時間的変動は猛烈
「ポリシーを蓄積してエキスパートシステムを作ればよい」 自由度の絡み合いにより、場合の数はほぼ無限大。
「応答時間やスループットを監視していれば障害がわかる」 冗長化構成になっているとそれも難しい(次ページ)。
IBIS 2004 | 2004/11/08 |Page 5
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
研究の背景 3/3冗長化されたシステム構成では更に問題は難しくなる
例: 3 層構造・ 2 重冗長の Web 系システムの潜在的障害 アプリケーションサーバーの一方が動作不全(プロセス自体は生きている)。 設計時の想定よりもはるかに低いトラフィックでシステムダウンが起こる可能性
1i
2i
3i
4i
HTTPWAS
DB
HTTP WAS
応答時間だけでは異常検知困難
IBIS 2004 | 2004/11/08 |Page 6
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
論点の整理主要な論点は 3 つある
そもそも何を観測すればいいか 部分部分の 1 点ではなく、何か部分同士の相関を取り込んだ量であるべき。
全体の振舞いをとらえるために、観測量からどういう特徴を抽出すればいいか
猛烈な時間変動に対し頑強な量であるべき システム全体の活動の縮図となるような量であるべき
抽出された特徴に対し、いかなる異常判定基準を課せばいいか オンラインで学習してくれるような仕組みであるべき 熟練者の技のようなものが不要で、普遍的な量が閾値であるべき
IBIS 2004 | 2004/11/08 |Page 7
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
Web 系システムのモデル化 1/3「サービス」の呼び出し回数を基本量として採用する
サービス (要求元、要求相手、ポート番号、アプリ
種) 二つの IP アドレスを含んでいることに注意。
サービス関連度 あるサービスが別のサービスを単位時間に何
度呼んだか 対数変換して対称化
サービス関連度行列とグラフ 一定時間おきに関連度行列が得られると考え
る 行列に対応して、サービスを頂点、サービス
関連度を辺の重みとするグラフを想像できる),,,(
),,,(
),,,(
),,,(
),,,(
),,,(
),,,(
),,,(
1233
1222
234311
234210
12239
12327
11314
11213
qpiis
qpiis
qpiis
qpiis
qpiis
qpiis
qpiis
qpiis
y
x
11s
xs 10s 9s
3s 4s
7s ys
1i
2i
3i
4i
1p 2pHTTP WAS
3pDB
1p 2pHTTP WAS
IBIS 2004 | 2004/11/08 |Page 8
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
Web 系システムのモデル化 2/3サービス呼び出しの時間変動の具体例と特徴
サービス呼び出し回数の時間変動は猛烈 数十分程度の範囲では自己回帰モデルは無理
サービス同士の相互関係が現象に本質的 各個のサービスを独立に解析することは許され
ない
サービス対の数はそれなりに多い 50 種のサービスがあれば 1000 以上のサービス
関連度。サービス関連度行列を眺めているだけでは何が起きているのか理解しがたい。 サービス 9 から 11 への呼び出し回
数
サービスの実例
回 /20 秒
IBIS 2004 | 2004/11/08 |Page 9
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
Web 系システムのモデル化 3/3サービス呼び出し回数をどう求めるか
それなりの技が必要だが、詳細省略。サービス関連度行列は所与とする。 IP パケット採取 + 推定アルゴリズム
• H. Kashima et al., “Network-based Problem Determination for Distributed Computer Systems,” ICDE 2005, to appear.
サーバーのポーリング + 推定アルゴリズム• M. Gupta et al., “Discovering Dynamic Dependencies in Enterprise Environments for
Problem Determination", Proceedings of 14th IFIP/IEEE Workshop on Distributed Systems: Operations and Management, 2003.
Dispatcher DB2
IHS WAS
IHS WAS
Browser
Host2
Host3
switch PCミラー
ポートD(t)
Host4Host1
D(t)D(t)
パケット採取によるシステム監視
IBIS 2004 | 2004/11/08 |Page 10
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問題設定解かれるべき 3 つの問題がある。
個別の関連度の変化ではなく、システム全体の「バランスの崩れた」状態を検出したい。
問 2 (異常の尺度)
異常の尺度はどう定義すればいい?
問 3 (閾値設定)
その異常度にどう閾値を設ければいい?
問 1 (特徴抽出)系全体の動態をとらえることのできる特徴量は何?
やりたいこと 時系列にサービス関連度グラフが与えられる。 そのグラフ列から、教師データなしで、異常を検出したい
解かれるべき問題
IBIS 2004 | 2004/11/08 |Page 11
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
サービス活動度ベクトルの数学的定義:
問 1 (特徴抽出)への解答 1/3 各サービスの「活動度」を表す量を抽出する
時刻 t での関連度行列
「活動度」として解釈できる理由• 最大化のためには、例えば D12 大なら、u1 と u2 の重みも大きくなければならない。• 従って、もし s1 が活発に他者を呼んでいるなら、 s1 の重みは大きいはず。
数学的には下記の固有値方程式と同等
D は非負行列!
特徴量 = 関連度行列 D の主固有ベクトル
IBIS 2004 | 2004/11/08 |Page 12
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問 1 (特徴抽出)への解答 2/3 サービス活動度ベクトルは、システムの動態の縮図である
システムのコントロールトークンの遷移強度が、サービス関連度に比例するとする 活動度ベクトルは、無限に時間が経過した後、行き着く先の状態を表す
NNN
N
N
DD
DDD
DDD
1
22221
11211
D
システムが、サービス s2 の上にコントロールトークンを持っている確率振幅
Nu
u
u
2
1
u
s1
s2
)()1( Dxx 運動方程式 定常状態
||)(||/)( xxuサービス関連度行列
サービス活動度ベクトル = システムの動態の要約
IBIS 2004 | 2004/11/08 |Page 13
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問 1 (特徴抽出)への解答 3/3 数学的にも、 Perron-Frobenius の定理が解釈の一貫性を保障
Perron-Frobenius の定理のため
活動度ベクトルは、トラフィックの一様な変動に対し不変である
(正常時の)猛烈なトラフィック変動にある程度頑強
活動度ベクトルは正ベクトルである 負の活動度は出てこない、という意味で解釈の一貫性が保障される
活動度ベクトルに縮退はない 準位交差による見かけの不安定性に悩まされるこ
とはない
規格化された固有ベクトルであるため
IBIS 2004 | 2004/11/08 |Page 14
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問題は、方向データ(規格化されたベクトル)の時系列からの異常検出問題に帰着された
computer system dependency matrix
Dtt-1
t -2
tt -1t -W t-2
...
activity vector
principaleigenvector...
問 2 (異常の尺度)
異常の尺度はどう定義すればいい?
問 3 (閾値設定)
その異常度にどう閾値を設ければいい?
問 1 (特徴抽出)系全体の動態をとらえることのできる特徴量は何?
IBIS 2004 | 2004/11/08 |Page 15
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問 2 (異常の尺度)への解答 1/2 方向データについて最も自然な分布は von Mises-Fisher 分布である
vMF 分布=方向データの世界の「正規」分布 最大エントロピー原理 + 全確率保存 + ノルム 1 の拘束 = vMF 分布 ある極軸まわりの角度の揺らぎを記述
vMF 分布の下での最も自然な類似度尺度 = コサイン尺度 vMF 分布の Fisher kernel はコサイン尺度と一致
異常度の定義
• u (t) : 時刻 t での活動度ベクトル• r (t) : 時刻 t で定義された代表パターン
u(t)
r(t)
IBIS 2004 | 2004/11/08 |Page 16
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問 2 (異常の尺度)への解答 2/2 過去の代表パターンは特異値分解により計算できる
過去の活動度の 1 次結合を考える。
係数 v は例えば下記の基準で求められる
これは下記の行列 U(t ) の SVD をすることと同じ
• U = [ u (t -1), u (t -2), …, u (t - W) ]• W : ウィンドウサイズ
結局 r (t ) は U(t ) の左特異ベクトルとして求まる
u(t)
r(t)
SVDt - 1
t - W
r (t)
IBIS 2004 | 2004/11/08 |Page 17
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
残る問題は、異常度に適切な閾値を与えること
問 2 (異常の尺度)
異常の尺度はどう定義すればいい?
問 3 (閾値設定)
その異常度にどう閾値を設ければいい?
問 1 (特徴抽出)系全体の動態をとらえることのできる特徴量は何?
IBIS 2004 | 2004/11/08 |Page 18
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問 3 (閾値設定)への解答 1/3 異常度の確率分布モデルを作りたい
もし異常度 z のうまい確率モデルが立てられれば、閾値は比較的容易に設定できる。
なお、正規分布でフィットできる余地は全然ない。
活動度ベクトル u が vMF 分布に従うと考えるのはさほど悪くない仮定
正常時は、活動度ベクトルはおおむね安定している
thz
「これらは異常。なぜなら xx % の危険域を越えているから。」 urru Tp exp),|(
異常度 z(t ) の分布を、 vMF 分布から導いてみよう
IBIS 2004 | 2004/11/08 |Page 19
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
手順 u から角度変数に変数変換。 θ に対する周辺分布を出す。 θ と z の関係を利用して、 z に確率変数を変換
•
結果 z は、自由度 N-1 のカイ2乗分布に従う
• N : 活動度ベクトルの次元( i.e. サービスの数)
重要なステップ: 形式的な次元 N を「有効次元」 n で置き換え、これをフィッティングパラメターとみなす。
各自由度の挙動には一般に著しい不均一性が存在 それをならした時、「真の自由度」はいくらになるか、という問いに答えるのが
有効次元
問 3 (閾値設定)への解答 2/3 変数変換により z の分布を求め、「有効次元モデル」を導入する
u(t)
r(t)2
)(2
tz
IBIS 2004 | 2004/11/08 |Page 20
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
二つの未知パラメターがある
通常の最尤推定は困難: モーメント法でパラメター推定 カイ二乗分布のモーメントは単純な形をしている
未知パラメター n と∑ について陽に解ける
モーメントをオンラインで求めるのは容易
問 3 (閾値設定)への解答 3/3 確率モデルのオンラインパラメター推定法
2222
)1()(,)1()( nzzdzqznzzdzqz
「角分散」有効次元
IBIS 2004 | 2004/11/08 |Page 21
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
問 1~問 3 への解答の要約
危険域 , pc
“0.5%”
z の1次と2次のモーメント
D(t)
サービス関連度行列
活動度ベクトル
u(t) 異常度z(t)
z の確率分布
下記を満たす 閾値 zth を計算警告発報条件
異常を定義する(ほぼ唯一の)パラメター
c
z
pzdzq
th
)(
IBIS 2004 | 2004/11/08 |Page 22
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
実験 1/3 実験構成。 Web 系システムでソフトウェア障害を起こす
設定 3 層構造の比較的簡単な Web 系システムで実験 二つある WAS の双方で、二つのアプリケーションが走っている (“Trade” と “ Plant
s”) サービス関連度行列は 20秒おきに生成される 最も活動度の高いクラスターには 12個のサービスがある。このクラスターだけに注目。
ソフトウェア障害 “Trade” が、時刻 tA で機能不全になり、時刻 tB で回復 サーバープロセス自体は正常なので、 TCP 層以下の挙動は正常。
1i
2i
3i
4i
1p 2pHTTP WAS
3pDB
1p 2pHTTP WAS
負荷生成
IBIS 2004 | 2004/11/08 |Page 23
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
実験 2/3 異常度の確率モデルは実験をよく再現している
システムの正常動作時に、異常度 z を観測
約 1 時間にわたり z(t) を観測し、その頻度分布をプロット(下図)。
得られた z の標本から、確率分布を学習 1 次と 2 次のモーメントを求め、有効次元
と、角分散を計算• 結果: n = 4.6
サービスの数は N=12 であったので、有効次元はそれよりもずっと小さいことがわかる。
我々のカイ二乗分布は実験結果をよく再現している
分位点プロット(上図) n の代わりに N を使った場合全然ダメ
IBIS 2004 | 2004/11/08 |Page 24
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
実験 3/3 仕込んだバグをオンラインで検知してみる
活動度ベクトルの時間変化 正常時はおおむね安定している 明確に異常区間が可視化されている 単一のサービス (#11) に直接関係するバ
グが大規模な変化を引き起こしている
異常度の時間変化 障害区間の開始と終了に対応して、二つ
の明瞭なピークが出ている• 後者はオンライン学習がうまく行っている証拠
SVD を使った過去パターン抽出はノイズ除去に効果がある。
閾値のオンライン計算 動的に状況変化に対応している この場合、 pc=0.5% に設定すれば自動検
知ができる time [min]
IBIS 2004 | 2004/11/08 |Page 25
Tokyo Research Laboratory
© Copyright IBM Corporation 2004
まとめ
コンピュータシステムの障害検知の問題を、高度に動的なグラフ時系列からの異常検知の問題として考えた。
いくつかの新しい技術を開発した。
サービス活動度ベクトル
(小さいベンチマークシステムでの話であるが)実システムでの有効性を確認した。
コサイン尺度に基づく異常尺度
有効次元モデル モーメント法によるオンライン更新則