Zabbix 3.0 の予測機能のための数学的理解

42
Zabbix 3.0 予予予予予予予予予予予 予予 Zabbix3.0 予予予予予予 予予予予 ? Zabbix3.0 予予予予予 LT 2016/03/16
  • Upload

    -
  • Category

    Science

  • view

    1.882
  • download

    3

Transcript of Zabbix 3.0 の予測機能のための数学的理解

Page 1: Zabbix 3.0 の予測機能のための数学的理解

Zabbix 3.0 予測機能のための数学的理解

Zabbix3.0 リリース記念!世界最速 ? Zabbix3.0 ハンズオン

LT2016/03/16

Page 2: Zabbix 3.0 の予測機能のための数学的理解

CN:九龍真乙(くりゅうまおと) 所属:自宅ラック勉強会 :株式会社サーバーワークス Twitter @qryuu

2016/03/16

著者紹介

2

Page 3: Zabbix 3.0 の予測機能のための数学的理解

今回のLTは Zabbix Advent Calendar 2015 最終日に掲載したZabbix 3.0 の予測機能についての数学的考察

を基にした解説、補追LTです。

2016/03/163

はじめに

Page 4: Zabbix 3.0 の予測機能のための数学的理解

Zabbix3.0 予測機能とは

2016/03/164

Page 5: Zabbix 3.0 の予測機能のための数学的理解

新たに導入された forecast /timeleft 関数によって未来時点の数値を予測する機能です。

最新値に対してではなく未来の予測値に対して閾値を設定することが可能となります。

これにより高値安定なリソースをアラートと対象から外し、実際に枯渇しそうなリソースのみをアラートとする事が可能となります。

2016/03/165

Zabbix3.0 予測機能とは

Page 6: Zabbix 3.0 の予測機能のための数学的理解

Forecast関数はマシンラーニングやディープラーニングのような今流行の深層学習ではありません。

「最小二乗法による近似曲線の延長による未来時点の数値予測」関数です。

2016/03/166

forecast 関数とは

Page 7: Zabbix 3.0 の予測機能のための数学的理解

timeleft 関数はマシンラーニングやディープラーニングのような今流行の深層学習ではありません。

「最小二乗法による近似曲線の延長による未来時点の数値予測」関数です。

2016/03/167

timeleft 関数とは

Page 8: Zabbix 3.0 の予測機能のための数学的理解

最小二乗法とは残差の二乗和を最小とするような係数を決定し、その係数による近似を行う手法のことを言います。

2016/03/168

最小二乗法とは

Page 9: Zabbix 3.0 の予測機能のための数学的理解

2016/03/169

最小二乗法とは

y=ax+b y: 従属変数 変数 x により変動する値 x: 独立変数 変数 y を変化させる任意の値 a: 傾き 変数 x が変化したときの y の変化量 b: 切片 独立変数が 0 もしくは 1 の時の y の値

作成者
Page 10: Zabbix 3.0 の予測機能のための数学的理解

y=ax+b y=2x+5 傾き: 2 、切片 5

2016/03/1610

最小二乗法とは

傾き

切片

Page 11: Zabbix 3.0 の予測機能のための数学的理解

forecast (sec|#num,<time_shift>,time,<fit>,<mode>)

sec|#num : 最小二乗法に利用するデータの期間もしくは個数

time_shift :過去時点の sec|#num を利用したい場合に、指定するパラーメータ( avg 関数などと同様:オプション)

time :数値予測する時間 fit :予測関数:

linear,polynomialN,exponential,logarithmic,power mode : value,max,min,delta,avg

2016/03/1611

forecast 関数の書式

Page 12: Zabbix 3.0 の予測機能のための数学的理解

timeleft (sec|#num,<time_shift>,threshold,<fit>) sec|#num : 最小二乗法に利用するデータの期間もし

くは個数 time_shift :過去時点の sec|#num を利用したい場合

に、指定するパラーメータ( avg 関数などと同様:オプション)

threshold :到達値とする値 fit :予測関数

linear,polynomialN,exponential,logarithmic,power

2016/03/1612

timeleft 関数の書式

Page 13: Zabbix 3.0 の予測機能のための数学的理解

mode 計算式 解説

value f(now + time) time で指定された未来時刻での値を示します

max maxnow <= t <= now + time f(t)

現在から time で指定された未来時刻までの間の最大値を示します

min minnow <= t <= now + time f(t) 現在から time で指定された未来時刻までの間の最小値を示します

delta max - min 現在から time で指定された未来時刻までの間で

の最大値と最小値の差を示します

avgaverage of f(t) (now <= t <= now + time) according to definition

現在から time で指定された未来時刻までの間の平均値を示します。

2016/03/1613

forecast 関数の mode

Page 14: Zabbix 3.0 の予測機能のための数学的理解

予測関数の種類

2016/03/1614

Page 15: Zabbix 3.0 の予測機能のための数学的理解

fit 数式 解説

linear y = ax+b 線形関数として横軸を伸ばした場合の縦軸の値を予測します

polynomialN y = a0 + a1*x + a2*x^2 + … + an*x^n

N の上限は 6 6 次までの一変数多項式として値を予測します、

exponential y = a*exp(b*x) 指数関数として横軸を伸ばした場合の縦軸の値を予測します

logarithmic y = a*log(x)+b 対数関数として横軸の常用対数から縦軸を予測します

power y = a*x^b累乗関数として、横軸をべき乗じたものが縦軸の値になる予測を行います

2016/03/1615

予測関数 <fit> の種類

Page 16: Zabbix 3.0 の予測機能のための数学的理解

linear線形近似

2016/03/1616

Page 17: Zabbix 3.0 の予測機能のための数学的理解

2016/03/1617

linear y=ax+b

Page 18: Zabbix 3.0 の予測機能のための数学的理解

2016/03/1618

linear 普通のグラフで直線となるのが linear 型 fit です。 時間がたつにつれて一定の傾きで値が増えていく

場合この近似により、将来の値を推測することができます。

適用例: ディスクサイズ、 ログファイルサイズ、 メモリーリークしている場合のメモリ使用量 など

Page 19: Zabbix 3.0 の予測機能のための数学的理解

polynomial多項式近似

2016/03/1619

Page 20: Zabbix 3.0 の予測機能のための数学的理解

polynomialN(N=1 ~ 6) 1次から6次までの多項式 y = a0 + a1*x + a2*x^2 + … + an*x^n

2016/03/1620

polynomial

Page 21: Zabbix 3.0 の予測機能のための数学的理解

多項式は直線的な増加や減少ではなく、増減を行う振幅のようなグラフに適用が可能。

増減を行う式となるので mode 指定が重要となる。 適用例:

X 線回折によるミラー指数ごとの面指数から格子定数決定

Zabbix で扱いそうな数値ではおそらく無い

2016/03/1621

polynomial

Page 22: Zabbix 3.0 の予測機能のための数学的理解

対数のおさらい

2016/03/1622

Page 23: Zabbix 3.0 の予測機能のための数学的理解

1,10,100・・・↔0,1,2・・・  10 の 0 乗=1

10 の 1 乗= 1010 の 2 乗=100  ・  ・  ・

x = 10a ⇔ a = log10 x log10 10=1 log10 100=2

2016/03/1623

常用対数 (log) とは

Page 24: Zabbix 3.0 の予測機能のための数学的理解

2016/03/1624

対数グラフ(常用対数)

片対数グラフ 両対数グラフ

Page 25: Zabbix 3.0 の予測機能のための数学的理解

対数計算  x = 10a ⇔ a = log10 xを計算しなくてもそのまま数値を記録すれば、対数スケールで記録出来るグラフ

対数グラフでは0はありません。

2016/03/1625

対数グラフ

Page 26: Zabbix 3.0 の予測機能のための数学的理解

exponential指数関数近似

2016/03/1626

Page 27: Zabbix 3.0 の予測機能のための数学的理解

2016/03/1627

exponential y = a*exp(b*x)

Page 28: Zabbix 3.0 の予測機能のための数学的理解

2016/03/1628

exponential 片対数グラフで書いた場合、切片= a,

傾き= exp(b) となる

Page 29: Zabbix 3.0 の予測機能のための数学的理解

Y 軸を対数目盛とした片対数グラフで直線となる 適用例(傾きがマイナスの場合)

高温物体の温度低下 半減期

2016/03/1629

exponential

Page 30: Zabbix 3.0 の予測機能のための数学的理解

logarithmic対数関数近似

2016/03/1630

Page 31: Zabbix 3.0 の予測機能のための数学的理解

y = a*log(x)+b

2016/03/1631

logarithmic

Page 32: Zabbix 3.0 の予測機能のための数学的理解

片対数グラフで書いた場合、切片=b ,傾き= a となる

2016/03/1632

logarithmic

Page 33: Zabbix 3.0 の予測機能のための数学的理解

X 軸を対数目盛とした片対数グラフで直線となる 適用例

疎密波の減衰(音波、地震波など)

2016/03/1633

logarithmic

Page 34: Zabbix 3.0 の予測機能のための数学的理解

power累乗関数近似

2016/03/1634

Page 35: Zabbix 3.0 の予測機能のための数学的理解

y = a*x^b

2016/03/1635

power

Page 36: Zabbix 3.0 の予測機能のための数学的理解

両対数グラフで書いた、切片= a,傾き= b となる

2016/03/1636

power

Page 37: Zabbix 3.0 の予測機能のための数学的理解

両対数グラフで書いた場合に直線となる 適用例

経済物理学における、資産分布や株価変動 破片のサイズと個数の関係(画像認識)

2016/03/1637

power

Page 38: Zabbix 3.0 の予測機能のための数学的理解

で、つかうの?

2016/03/1638

Page 39: Zabbix 3.0 の予測機能のための数学的理解

Zabbix のデータである以上、 X 軸は時間変数となる。

時系列において変化するデータ出なければならない

時系列に依存するコンピュータリソースであればlinear で。

IoT やセンサーデータ解析であれば、その他の関数も使う可能性がある。

2016/03/1639

用途

Page 40: Zabbix 3.0 の予測機能のための数学的理解

変化自体は linear 傾きが急激に変化する場合:

sec|#num を調整して、評価期間を傾きの変化周期に合わせる

2016/03/1640

要注意パラメータ

Page 41: Zabbix 3.0 の予測機能のための数学的理解

ついてこれたかな?

2016/03/1641

Page 42: Zabbix 3.0 の予測機能のための数学的理解

Zabbix でLet’s  データサイエンティ

スト

2016/03/1642