狠狠撸

狠狠撸Share a Scribd company logo
サーバエンジニアが異常検知をやってみた
2017/09/12
富樫健太
概要
? 異常検知を用いたシステムを作ったの
で、手法や悩みを簡単に紹介します
自己紹介
? 名前: 富樫健太
? 仕事: 某ホスティング会社 サーバエンジニア
? 興味: サーバ監視、ログ収集、異常検知
? 機械学習歴: 4 ヶ月
最初にやったこと
? 線形代数(ベクトル、行列)
? 微分、積分
? 確率、統計
? 機械学習理論(最小二乗法、ベイズ推定、SVM等)
? Python(numpy、pandas、matplotlib、scikit-learn等)
? R(Rstudio)
今取り組んでること
? 時系列データを用いた異常検知システム開発、チューニング
背景
? 日々、数千台のサーバ運用をし
ている中で抱える悩み
? サーバ障害が起きるとお客様か
ら問い合わせが殺到する
? サーバ障害が起きる前に、なん
とかしたい
モチベーション
? 機械学習で、サーバ障害の予兆
を検知したい
障害といえど
? サーバ高負荷?
? サーバ機器故障?
? ネットワーク机器故障?
サーバ高負荷
? サーバ高負荷の観点から、進め
てみよう
サーバ高負荷
? 例Load Averageに着目
イメージ
? LAが高負荷なサーバ = 将来障害が起きていたで
あ ろうサーバと都合良い解釈をした場合、
? L Aを時系列データとして扱い、通常時に比べ
て急 増していれば検知するシステム
イメー
ジ
こういう変化点を知りたい
方針
? 理論よりも手を動かすのが優先
? パッケージを積極的に使う
どんなパッケージ
? 時系列データから、異常検知できるパッ
ケージ
Anomaly Detection
? Twitter社が開発したR製のパッケージ
? 季節変動を含む時系列データの異常検知
? https://github.com/twitter/AnomalyDetection
Anomaly Detection
システム構成
解析サーバ
サービス運用中の
サーバ
ログサーバ
1.ログサーバが各サービス運用サーバのデータ(LA等)を定期的に保存
2.解析サーバが定期的にログサーバから、データを取得、解析
3.解析した結果、障害未遂のサーバ情報を対応部門へ通知(Teamsやメール)
で、検知できたの?
? L Aが上昇してきたサーバを検知することは可
能
振り返りとか課題
? パッケージを使うことで、短期間で異常検知を導入できた
? 多変量の場合は、主成分分析などを使えば、同じパッケージを使いま
わすことができる
? モデルのチューニングができるほど知見がない
? データの前処理は正規化、標準化くらいしか分からない
? 今回のシステムで、モデルの評価がわからない
=> 今は、業務担当者としてできてる、できてないという感覚値として
の判断になってる。
質問コーナー
? データはどのような形式で保持していますか。
=> 今は、CSVとして保存しています。データベー スに入れても良いと思い
ますが、どちらがいいかは 後で考えます。
? なぜ、Rを選んだのか。
=> 使用したかったパッケージがRしかなかったの で、連携周りにRを採
用しました。
質問コーナー
? 短時間で、障害の閾値に達するような場合は、予兆 しても対応が間に合わな
いと思うのですがどのよう にお考えですか。
=> 同じくそう思います。観察するパラメータとし て、LA だけでは不十分だ
と考えています。例えば、 トラフィック流量であったり、I/Oなどパラメータ を
増やし主成分分析、多変量解析を行うことで、広 く傾向を捉えることができな
いか検討しています。
質問コーナー
? 現在使用しているパッケージには、多変量解析を行 う機能はないですか。
=> 調べたところ、単変量への時系列データしか食 わせられないようです。何
かお勧めの手法があれば、 ご教授ください。
=> マハラノビス距離を使うのはどうでしょうか。
質問コーナー
? 季節変動のないデータでもそのパッケージは、有用 なのでしょうか。
=> 試したところ、季節変動が含まれないデータでも 動作してるようです。
? また、定期的な上昇値があるようなケースでもその パッケージは使用でき
るのでしょうか。
=> 多分、できないです。誤検知します。

More Related Content

Lt talk 2017_0912