[forcast / timeleft] Zabbix 予測機能の使い方  (TechCircle #13 Zabbixハンズオン)

# この記事は何？

2016/03/16 に行われる Zabbixハンズオンの資料となります。

# ハンズオン以外でも使える？

ここに記載する内容はZabbixServer(web画面)で下記の登録方法となります
あくまで「方法」なので、ハンズオン外でも使用は可能です。

* トリガー
  * forecastを使用した予測時間判定
* 計算アイテム
  * timeleftを使用した予測値取得


# ハンズオン資料

http://www.slideshare.net/hayatowatanabe121/tech-circlezabbix30

# 内容
## Step1. ディスク増加量の予測トリガーを作成

1-1. [設定] - [ホスト]を上段メニューから選択し
表示されるホスト一覧から ”server-01”の [トリガー] を選択します

![step1-1_circle.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/27dd41a4-e66d-64ba-053c-ea4b9bc32ec3.png)


1-2. 画面右上にある[トリガーの作成]を押してください

![step1-2_circle.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/8bcbb59a-5786-a285-a8bc-f2e4677f7f28.png)

1-3. トリガー作成画面の条件式を決定するため、[追加]を押してください

![step1-3_circle.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/7732933b-2b9c-cc6a-5df7-be3cdf76b36e.png)

1-4. 条件式フォームを入力し、「挿入」を押下します

フォーム値は下記の通り

| 項目       | 値　　　　                                    　 |
|:----------:|:------------------------------------------------|
| アイテム    | server-01: Free disk space on / (persentage)  |
| 関数       | 期間Tをもとにした閾値への予想到達時間 < N             |
| 最新の(T)  | 1w [時間]　※                                    |
| タイムシフト | 2w 時間　※                                     |
| 閾値       | 0                                              |
| 近似関数   | linear                                          |
| N         | 1w　　　※                                       |

※1wとすると、zabbixが「1 week」と判断して処理します。単位無しは「sec」扱いです

![step1-4_circle.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/5ff7e362-59a7-7d6a-2297-59c135c7e95f.png)


1-5. 各項目を入力し、「追加」を押します

| 項目       | 値　　　　                                      　 |
|:----------:|:------------------------------------------------|
| 名前   　　 | ディスク増加予想トリガー                            |
| 条件式     | 1-4のフォームで入力済み                             |
| 深刻度     | 任意(今回は目立つように重度の障害)                    |

慣れると、条件式フォームを開かずに下記を直接入力したりします
`{server-01:vfs.fs.size[/,free].timeleft(1w,2w,0,linear)}<1w`

![step1-5_circle.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/652f9227-ccfb-82f0-073a-34982e87c987.png)

## Step2. トリガーでディスク増加を検知

2. 上段左にあるZABBIXロゴを押下すると、ダッシュボード画面が表示されます。
しばらくすると、先ほど設定した一週間以内にDiskがあふれる可能性があるトリガーの「ディスク増加予想トリガー」という障害が表示されます。

![step2-1.png](https://qiita-image-store.s3.amazonaws.com/0/47801/bb676c98-5f10-a61c-2018-10f2effd8053.png)

## Step3. 検知情報を基にディスク整理アクションを実施

3-1. [設定] - [アクション]を上段メニューから選択し、イベントソースを[トリガー]として[アクションの作成]を押します

![step3-1_circle.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/cac94d34-6105-a368-8202-5c3d3206cf77.png)

3-2. タブが[アクション]となっている状態で名前を入力し、タブを[アクションの実行条件]に切り替えます
※「追加」ではありません

| 項目       | 値　　　　                                      　 |
|:----------:|:------------------------------------------------|
| 名前   　　 | ディスク増加予想アクション                            |

![step3-2.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/5908cb53-513e-6782-4a01-4759f583323f.png)


3-3. タブが[アクションの実行条件]となっている状態で新規条件に以下を入力し、トリガーの追加を押下。その後、タブを[アクションの実行条件]に切り替えます

| 1          | 2          | 3          |
|:----------:|:----------:|:----------:|
| トリガー名　 | 含まれる    | ディスク増加予想トリガー |

![step3-3.PNG](https://qiita-image-store.s3.amazonaws.com/0/47801/0f867d71-301c-6a0c-05a9-d47d26070412.png)

3-4.(例)[アクションの実行条件]で、必要項目を入力し、”アクションの実行条件”の追加を押下し、下部の追加を押します

| 項目            | 値(未記載部分はデフォルト値)                     　 |
|:---------------:|:------------------------------------------------|
| 実行内容のタイプ  | リモートコマンド                     　             |
| ターゲット        | 現在のホスト（小さい追加ボタン忘れずに）             　 |
| タイプ           | カスタムスクリプト                     　            |
| 次で実行       | Zabbixエージェント                     　           |
| ※                      | /usr/bin/curl http://hogehogehoge/v1/api |


# おまけ

トリガー条件式だけでは、実際の値についてよくわからない事があります。
そういった場合は、予測機能を使用した計算アイテムを登録する事で将来的なリソースの増強等をチーム内やお客様と話す際の材料となるかもしれません。

A-1. アイテムの追加

[設定] - [ホスト]を上段メニューから選択し
表示されるホスト一覧から ”server-01”の [アイテム] を選択します

A-2. 画面右上にある[アイテムの作成]を押してください

A-3. アイテム作成欄で下記を入力し、追加を押しましょう

| 項目            | 値(未記載部分はデフォルト値)                     　 |
|:---------------:|:------------------------------------------------|
| 名前 | ディスクフル予想到達時間 |
| タイプ | 計算 |
| キー | timeleft.pfree |
| 式 | timeleft("vfs.fs.size[/,pfree]",1w,0,0,linear) |
| データ型 | 数値（浮動少数） |
| 単位 | s |

A-4. しばらくすると過去１週間分データでの増加計算による溢れ予測時間が表示されます

こんな感じで。
![chart.png](https://qiita-image-store.s3.amazonaws.com/0/47801/21def2ec-3eef-55d3-1d7e-7a0acb7e4812.png)

以上.