zabbixで学ぶ統計解析入門
TRANSCRIPT
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 nn2
線形近似
一変数多項式近似(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