Copyright © Xchange Solutions All right reserved.
KIXS Vol.000 インフラLTの祭典
Zabbixで学ぶ統計解析入門
株式会社エクスチェンジ ソリューションズ
野田 健夫
2016.08.26
2
Copyright © Xchange Solutions All right reserved.
こんにちは!
野田 健夫(のだたけお)
https://twitter.com/nodatakeo
https://www.facebook.com/nodatakeo
株式会社エクスチェンジ ソリューションズ
3
Copyright © Xchange Solutions All right reserved.
今日の内容
1. これまでの監視ツール遍歴
2. Zabbixについて
1. Zabbixの主な機能
2. Zabbixで収集するデータ
3. Zabbixの概略図
3. 時系列データの検査を行うトリガー関数群
1. 移動平均
2. 予測値・予測到達時間
4. まとめ
4
Copyright © Xchange Solutions All right reserved.
これまでの監視ツール遍歴
2004~2009年ごろ:BigBrother / Hobbit / Xymon
http://xymon.sourceforge.net/
5
Copyright © Xchange Solutions All right reserved.
これまでの監視ツール遍歴
2008~2012年ごろ:Nagios
https://www.nagios.org/
6
Copyright © Xchange Solutions All right reserved.
これまでの監視ツール遍歴
2012年~現在 :Zabbix
http://www.zabbix.com/jp/
7
Copyright © Xchange Solutions All right reserved.
Zabbixの主な機能
収集したデータに閾値を設定して異常監視
を行い、通知。
サーバやネットワークの状態をデータ化し、
保存。
収集したデータをもとにグラフ化。
8
Copyright © Xchange Solutions All right reserved.
Zabbixで収集するデータ
CPU使用率
ディスク使用率
ディスクI/O
LoadAverage
プロセス数
ポート状態
などなど
すべて
時系列のデータ
としてDBに
保存される。
9
Copyright © Xchange Solutions All right reserved.
Zabbix障害検知の概略図
データ収集項目
アイテム
トリガー アクション
データ
検知閾値
トリガーに対して
メディア処理
メディア
メール・
SMS連携設定
ホスト
ウェブ
ページアクセス
テンプレート ユーザー
データ収集に関する設定 アラートに関する設定
10
Copyright © Xchange Solutions All right reserved.
監視における異常検知とのせめぎあい
Big Brother Nagios Zabbix
フラップ検知機能で抑止 フラップ検知機能はない。
短時間に障害と復旧を
繰り返すことをフラッ
ピングという。Nagios
では過去21回分の変化
率で測定。
※特になし
トリガー関数で対応
データを保存してい
るから関数で分析で
きる。
11
Copyright © Xchange Solutions All right reserved.
時系列データの検査を行うトリガー関数群
 avg 移動平均
 last 最終値
 diff 差異検知
 nodata データなし検知
 count 期間回数
 forecast 予測値
 timeleft 予測到達時間
v3.0より追加
12
Copyright © Xchange Solutions All right reserved.
avg: (単純)移動平均(SMA)
avg (sec|#num,<time_shift>)
書式:
引数
sec|#num 必須。秒数(sec)もしくは直近の件数(#num)
<time_shift> 任意。過去にずらす秒数
例:
{Template OS Linux:system.cpu.util[,iowait].avg(5m)}>20
Disk I/O overload
13
Copyright © Xchange Solutions All right reserved.
移動平均とは
 単純移動平均 (Simple Moving Average;
SMA) は、株価や温度変化の傾向など時系列
データの幅広い分野で使われている分析手法。
 毎分取得するようなデータだと5分平均、10分
平均の値がよく使われている。
 移動平均をとることで瞬間的な外れ値が発生し
ても平滑化され誤検知を避けることができる。
14
Copyright © Xchange Solutions All right reserved.
移動平均の代表例: Load Average
・1分平均
・5分平均
・15分平均
平均をとる期間が長いほど平滑化される
(=変化を平均化してなめらかにするフィルター)
Load Averageは、 移動平均を行った実行待ちプロセス数。
15
Copyright © Xchange Solutions All right reserved.
forecast: 予測値
forecast (sec|#num,<time_shift>,time,<fit>,<mode>)
書式:
引数
sec|#num 必須。何時間(sec)もしくは直近の件数(#num)
<time_shift> 任意。過去にずらす秒数
time 必須。何時間後のデータを予測するか。
<fit> 任意。予測モデル。linear, polynomialN, exponential,
logarithmic, powerを指定できる。デフォルトは、linear。
<mode> 任意。予測で出力する値。value,max,min,delta,avg。デ
フォルトは、value。
16
Copyright © Xchange Solutions All right reserved.
forecast: 予測モデル
fit x = f(t)
linear x = a + b*t
polynomialN x = a + a *t + a *t + … + a *t
exponential x = a*exp(b*t)
logarithmic x = a + b*log(t)
power x = a*tb
0 1 2 n
n2
線形近似
一変数多項式近似(n≦6)
指数近似
対数近似
累乗近似
linear
logarithmic
polynominalN exponential
power
17
Copyright © Xchange Solutions All right reserved.
forecast: 予測値
mode 予測結果
value f(now + time)
max maxnow <= t <= now + time f(t)
min minnow <= t <= now + time f(t)
delta max - min
avg average of f(t) (now <= t <= now + time)
時間経過後の予測値
期間内予測値の最小値
期間内予測値の最大値ー最小値
予測値の移動平均
期間内予測値の最大値
例:
{Zabbix server:vfs.fs.size[/,free].forecast(1h,0,24h,linear,value)}<0
Run out of disk space on Zabbix server (forecast)
18
Copyright © Xchange Solutions All right reserved.
timeleft: 予測到達時間
timeleft (sec|#num,<time_shift>,threshold,<fit>)
書式:
引数
sec|#num 必須。何時間(sec)もしくは直近の件数(#num)
<time_shift> 任意。過去にずらす秒数
threshold 必須。到達値。
<fit> 任意。予測モデル。linear, polynomialN, exponential,
logarithmic, powerを指定できる。デフォルトは、linear。
※予測モデルはforecastと同じ
例:
{Zabbix server:vfs.fs.size[/,free].timeleft(1h,0,0,linear)}<24h
Run out of disk space on Zabbix server (timeleft)
19
Copyright © Xchange Solutions All right reserved.
予測値をグラフに表示するには?
http://www.zabbix.com/jp/whats_new.php
20
Copyright © Xchange Solutions All right reserved.
トリガー関数はアイテムの計算でも使える
 グラフに予測値を含めたいときは、予測値用のアイテムを追加す
る。
 アイテムタイプ「計算」を選択することで、トリガー関数をアイ
テムにおいても使うことが可能。
 使い方は、第1引数にアイテムキー名を追加。
 データ型は、「数値(浮動小数点)」を指定するなど適宜要調整。
 データ量が少ない場合は、-1になってしまうので注意。
forecast (“アイテムキー名”, sec|#num,<time_shift>,time,<fit>,<mode>)
forecast("Zabbix server:vfs.fs.size[/,free]", 1h,0,24h,linear,value)
例:
21
Copyright © Xchange Solutions All right reserved.
まとめ
 監視における時系列データ解析は、変化を検知するの
が基本。
 予測検知は、ディスクなどリソース計画にも役立つ。
 予測モデルは線形近似以外はあまり使われない。
 予測検知するためには、検知のためのモデル作りが重
要。データ収集→解析→の流れでいくと可視化の拡張
(GrafanaとかKibanaなど)についても注目。
22
Copyright © Xchange Solutions All right reserved.
参考: Grafana/Kibana
https://grafana.net https://www.elastic.co/jp/products/kibana

Zabbixで学ぶ統計解析入門

  • 1.
    Copyright © XchangeSolutions All right reserved. KIXS Vol.000 インフラLTの祭典 Zabbixで学ぶ統計解析入門 株式会社エクスチェンジ ソリューションズ 野田 健夫 2016.08.26
  • 2.
    2 Copyright © XchangeSolutions All right reserved. こんにちは! 野田 健夫(のだたけお) https://twitter.com/nodatakeo https://www.facebook.com/nodatakeo 株式会社エクスチェンジ ソリューションズ
  • 3.
    3 Copyright © XchangeSolutions All right reserved. 今日の内容 1. これまでの監視ツール遍歴 2. Zabbixについて 1. Zabbixの主な機能 2. Zabbixで収集するデータ 3. Zabbixの概略図 3. 時系列データの検査を行うトリガー関数群 1. 移動平均 2. 予測値・予測到達時間 4. まとめ
  • 4.
    4 Copyright © XchangeSolutions All right reserved. これまでの監視ツール遍歴 2004~2009年ごろ:BigBrother / Hobbit / Xymon http://xymon.sourceforge.net/
  • 5.
    5 Copyright © XchangeSolutions All right reserved. これまでの監視ツール遍歴 2008~2012年ごろ:Nagios https://www.nagios.org/
  • 6.
    6 Copyright © XchangeSolutions All right reserved. これまでの監視ツール遍歴 2012年~現在 :Zabbix http://www.zabbix.com/jp/
  • 7.
    7 Copyright © XchangeSolutions All right reserved. Zabbixの主な機能 収集したデータに閾値を設定して異常監視 を行い、通知。 サーバやネットワークの状態をデータ化し、 保存。 収集したデータをもとにグラフ化。
  • 8.
    8 Copyright © XchangeSolutions All right reserved. Zabbixで収集するデータ CPU使用率 ディスク使用率 ディスクI/O LoadAverage プロセス数 ポート状態 などなど すべて 時系列のデータ としてDBに 保存される。
  • 9.
    9 Copyright © XchangeSolutions All right reserved. Zabbix障害検知の概略図 データ収集項目 アイテム トリガー アクション データ 検知閾値 トリガーに対して メディア処理 メディア メール・ SMS連携設定 ホスト ウェブ ページアクセス テンプレート ユーザー データ収集に関する設定 アラートに関する設定
  • 10.
    10 Copyright © XchangeSolutions All right reserved. 監視における異常検知とのせめぎあい Big Brother Nagios Zabbix フラップ検知機能で抑止 フラップ検知機能はない。 短時間に障害と復旧を 繰り返すことをフラッ ピングという。Nagios では過去21回分の変化 率で測定。 ※特になし トリガー関数で対応 データを保存してい るから関数で分析で きる。
  • 11.
    11 Copyright © XchangeSolutions All right reserved. 時系列データの検査を行うトリガー関数群  avg 移動平均  last 最終値  diff 差異検知  nodata データなし検知  count 期間回数  forecast 予測値  timeleft 予測到達時間 v3.0より追加
  • 12.
    12 Copyright © XchangeSolutions All right reserved. avg: (単純)移動平均(SMA) avg (sec|#num,<time_shift>) 書式: 引数 sec|#num 必須。秒数(sec)もしくは直近の件数(#num) <time_shift> 任意。過去にずらす秒数 例: {Template OS Linux:system.cpu.util[,iowait].avg(5m)}>20 Disk I/O overload
  • 13.
    13 Copyright © XchangeSolutions All right reserved. 移動平均とは  単純移動平均 (Simple Moving Average; SMA) は、株価や温度変化の傾向など時系列 データの幅広い分野で使われている分析手法。  毎分取得するようなデータだと5分平均、10分 平均の値がよく使われている。  移動平均をとることで瞬間的な外れ値が発生し ても平滑化され誤検知を避けることができる。
  • 14.
    14 Copyright © XchangeSolutions All right reserved. 移動平均の代表例: Load Average ・1分平均 ・5分平均 ・15分平均 平均をとる期間が長いほど平滑化される (=変化を平均化してなめらかにするフィルター) Load Averageは、 移動平均を行った実行待ちプロセス数。
  • 15.
    15 Copyright © XchangeSolutions All right reserved. forecast: 予測値 forecast (sec|#num,<time_shift>,time,<fit>,<mode>) 書式: 引数 sec|#num 必須。何時間(sec)もしくは直近の件数(#num) <time_shift> 任意。過去にずらす秒数 time 必須。何時間後のデータを予測するか。 <fit> 任意。予測モデル。linear, polynomialN, exponential, logarithmic, powerを指定できる。デフォルトは、linear。 <mode> 任意。予測で出力する値。value,max,min,delta,avg。デ フォルトは、value。
  • 16.
    16 Copyright © XchangeSolutions All right reserved. forecast: 予測モデル fit x = f(t) linear x = a + b*t polynomialN x = a + a *t + a *t + … + a *t exponential x = a*exp(b*t) logarithmic x = a + b*log(t) power x = a*tb 0 1 2 n n2 線形近似 一変数多項式近似(n≦6) 指数近似 対数近似 累乗近似 linear logarithmic polynominalN exponential power
  • 17.
    17 Copyright © XchangeSolutions All right reserved. forecast: 予測値 mode 予測結果 value f(now + time) max maxnow <= t <= now + time f(t) min minnow <= t <= now + time f(t) delta max - min avg average of f(t) (now <= t <= now + time) 時間経過後の予測値 期間内予測値の最小値 期間内予測値の最大値ー最小値 予測値の移動平均 期間内予測値の最大値 例: {Zabbix server:vfs.fs.size[/,free].forecast(1h,0,24h,linear,value)}<0 Run out of disk space on Zabbix server (forecast)
  • 18.
    18 Copyright © XchangeSolutions All right reserved. timeleft: 予測到達時間 timeleft (sec|#num,<time_shift>,threshold,<fit>) 書式: 引数 sec|#num 必須。何時間(sec)もしくは直近の件数(#num) <time_shift> 任意。過去にずらす秒数 threshold 必須。到達値。 <fit> 任意。予測モデル。linear, polynomialN, exponential, logarithmic, powerを指定できる。デフォルトは、linear。 ※予測モデルはforecastと同じ 例: {Zabbix server:vfs.fs.size[/,free].timeleft(1h,0,0,linear)}<24h Run out of disk space on Zabbix server (timeleft)
  • 19.
    19 Copyright © XchangeSolutions All right reserved. 予測値をグラフに表示するには? http://www.zabbix.com/jp/whats_new.php
  • 20.
    20 Copyright © XchangeSolutions All right reserved. トリガー関数はアイテムの計算でも使える  グラフに予測値を含めたいときは、予測値用のアイテムを追加す る。  アイテムタイプ「計算」を選択することで、トリガー関数をアイ テムにおいても使うことが可能。  使い方は、第1引数にアイテムキー名を追加。  データ型は、「数値(浮動小数点)」を指定するなど適宜要調整。  データ量が少ない場合は、-1になってしまうので注意。 forecast (“アイテムキー名”, sec|#num,<time_shift>,time,<fit>,<mode>) forecast("Zabbix server:vfs.fs.size[/,free]", 1h,0,24h,linear,value) 例:
  • 21.
    21 Copyright © XchangeSolutions All right reserved. まとめ  監視における時系列データ解析は、変化を検知するの が基本。  予測検知は、ディスクなどリソース計画にも役立つ。  予測モデルは線形近似以外はあまり使われない。  予測検知するためには、検知のためのモデル作りが重 要。データ収集→解析→の流れでいくと可視化の拡張 (GrafanaとかKibanaなど)についても注目。
  • 22.
    22 Copyright © XchangeSolutions All right reserved. 参考: Grafana/Kibana https://grafana.net https://www.elastic.co/jp/products/kibana