Zabbix 3.0 の予測機能のための数学的理解
Transcript of Zabbix 3.0 の予測機能のための数学的理解
![Page 1: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/1.jpg)
Zabbix 3.0 予測機能のための数学的理解
Zabbix3.0 リリース記念!世界最速 ? Zabbix3.0 ハンズオン
LT2016/03/16
![Page 2: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/2.jpg)
CN:九龍真乙(くりゅうまおと) 所属:自宅ラック勉強会 :株式会社サーバーワークス Twitter @qryuu
2016/03/16
著者紹介
2
![Page 3: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/3.jpg)
今回のLTは Zabbix Advent Calendar 2015 最終日に掲載したZabbix 3.0 の予測機能についての数学的考察
を基にした解説、補追LTです。
2016/03/163
はじめに
![Page 4: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/4.jpg)
Zabbix3.0 予測機能とは
2016/03/164
![Page 5: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/5.jpg)
新たに導入された forecast /timeleft 関数によって未来時点の数値を予測する機能です。
最新値に対してではなく未来の予測値に対して閾値を設定することが可能となります。
これにより高値安定なリソースをアラートと対象から外し、実際に枯渇しそうなリソースのみをアラートとする事が可能となります。
2016/03/165
Zabbix3.0 予測機能とは
![Page 6: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/6.jpg)
Forecast関数はマシンラーニングやディープラーニングのような今流行の深層学習ではありません。
「最小二乗法による近似曲線の延長による未来時点の数値予測」関数です。
2016/03/166
forecast 関数とは
![Page 7: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/7.jpg)
timeleft 関数はマシンラーニングやディープラーニングのような今流行の深層学習ではありません。
「最小二乗法による近似曲線の延長による未来時点の数値予測」関数です。
2016/03/167
timeleft 関数とは
![Page 8: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/8.jpg)
最小二乗法とは残差の二乗和を最小とするような係数を決定し、その係数による近似を行う手法のことを言います。
2016/03/168
最小二乗法とは
![Page 9: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/9.jpg)
2016/03/169
最小二乗法とは
y=ax+b y: 従属変数 変数 x により変動する値 x: 独立変数 変数 y を変化させる任意の値 a: 傾き 変数 x が変化したときの y の変化量 b: 切片 独立変数が 0 もしくは 1 の時の y の値
![Page 10: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/10.jpg)
y=ax+b y=2x+5 傾き: 2 、切片 5
2016/03/1610
最小二乗法とは
傾き
切片
![Page 11: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/11.jpg)
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 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/12.jpg)
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 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/13.jpg)
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 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/14.jpg)
予測関数の種類
2016/03/1614
![Page 15: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/15.jpg)
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 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/16.jpg)
linear線形近似
2016/03/1616
![Page 17: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/17.jpg)
2016/03/1617
linear y=ax+b
![Page 18: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/18.jpg)
2016/03/1618
linear 普通のグラフで直線となるのが linear 型 fit です。 時間がたつにつれて一定の傾きで値が増えていく
場合この近似により、将来の値を推測することができます。
適用例: ディスクサイズ、 ログファイルサイズ、 メモリーリークしている場合のメモリ使用量 など
![Page 19: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/19.jpg)
polynomial多項式近似
2016/03/1619
![Page 20: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/20.jpg)
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 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/21.jpg)
多項式は直線的な増加や減少ではなく、増減を行う振幅のようなグラフに適用が可能。
増減を行う式となるので mode 指定が重要となる。 適用例:
X 線回折によるミラー指数ごとの面指数から格子定数決定
Zabbix で扱いそうな数値ではおそらく無い
2016/03/1621
polynomial
![Page 22: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/22.jpg)
対数のおさらい
2016/03/1622
![Page 23: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/23.jpg)
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 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/24.jpg)
2016/03/1624
対数グラフ(常用対数)
片対数グラフ 両対数グラフ
![Page 25: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/25.jpg)
対数計算 x = 10a ⇔ a = log10 xを計算しなくてもそのまま数値を記録すれば、対数スケールで記録出来るグラフ
対数グラフでは0はありません。
2016/03/1625
対数グラフ
![Page 26: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/26.jpg)
exponential指数関数近似
2016/03/1626
![Page 27: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/27.jpg)
2016/03/1627
exponential y = a*exp(b*x)
![Page 28: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/28.jpg)
2016/03/1628
exponential 片対数グラフで書いた場合、切片= a,
傾き= exp(b) となる
![Page 29: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/29.jpg)
Y 軸を対数目盛とした片対数グラフで直線となる 適用例(傾きがマイナスの場合)
高温物体の温度低下 半減期
2016/03/1629
exponential
![Page 30: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/30.jpg)
logarithmic対数関数近似
2016/03/1630
![Page 31: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/31.jpg)
y = a*log(x)+b
2016/03/1631
logarithmic
![Page 32: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/32.jpg)
片対数グラフで書いた場合、切片=b ,傾き= a となる
2016/03/1632
logarithmic
![Page 33: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/33.jpg)
X 軸を対数目盛とした片対数グラフで直線となる 適用例
疎密波の減衰(音波、地震波など)
2016/03/1633
logarithmic
![Page 34: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/34.jpg)
power累乗関数近似
2016/03/1634
![Page 35: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/35.jpg)
y = a*x^b
2016/03/1635
power
![Page 36: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/36.jpg)
両対数グラフで書いた、切片= a,傾き= b となる
2016/03/1636
power
![Page 37: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/37.jpg)
両対数グラフで書いた場合に直線となる 適用例
経済物理学における、資産分布や株価変動 破片のサイズと個数の関係(画像認識)
2016/03/1637
power
![Page 38: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/38.jpg)
で、つかうの?
2016/03/1638
![Page 39: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/39.jpg)
Zabbix のデータである以上、 X 軸は時間変数となる。
時系列において変化するデータ出なければならない
時系列に依存するコンピュータリソースであればlinear で。
IoT やセンサーデータ解析であれば、その他の関数も使う可能性がある。
2016/03/1639
用途
![Page 40: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/40.jpg)
変化自体は linear 傾きが急激に変化する場合:
sec|#num を調整して、評価期間を傾きの変化周期に合わせる
2016/03/1640
要注意パラメータ
![Page 41: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/41.jpg)
ついてこれたかな?
2016/03/1641
![Page 42: Zabbix 3.0 の予測機能のための数学的理解](https://reader033.fdocument.pub/reader033/viewer/2022061522/587564fe1a28abd80a8b4d95/html5/thumbnails/42.jpg)
Zabbix でLet’s データサイエンティ
スト
2016/03/1642