Exastro OASE Base (v1.3.1) ハンズオン

#はじめに
OASEのコミュニティサイトにLearn「Base」が新しく追加された。
>Exastro OASE BASE
OASEの基本機能の利用手順をご用意しました。
本書は、ポイントを絞り込んだ「座学編」、簡単にハンズオンしたい方のための「実習編」の2部構成になっております。
機能ごとの特長を分かりやすく解説し、イメージしづらい概念的な内容は図解している為、効率よく OASEの共通機能を理解することが可能です。　　
([公式コミュニティサイト_Exastro OASE Learn](https://exastro-suite.github.io/oase-docs/learn_ja.html) より引用) 


「Base【実習】」をハンズオンしてみる。


## Exastro OASE Learn MAPを見てみる
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/d188b568-d145-92ba-c36a-4df2e23de62e.png)
([公式コミュニティサイト_Exastro OASE Learn](https://exastro-suite.github.io/oase-docs/learn_ja.html) より引用) 

実際に手を動かしながら「OASE」と「ITAドライバ」を連携した一連の流れを動かしてみる。

おおまかなフローとしては「事前設定」と「作業実行」の2段構成。

>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/51a28393-b61e-b22a-0317-f594bd408693.png)
(スライドは[公式コミュニティサイト_Exastro OASE Learn](https://exastro-suite.github.io/oase-docs/learn_ja.html) より引用)

## ハンズオンを実施する前にスペックを確認する

OASEやITAをインストールする必要がある中、環境のスペックが低いとインストールができなかったり、インストールできても動かなかったりする（実際動かなくなった）。
スペックが不足しないか要確認！

###今回の環境

VM2台（OASE用・ITA用）を用意した

####OASE用

|カテゴリ|導入|
|:---|:---|
|OS|CentOS7|
|CPU|6コア|
|メモリ|8GB|
|ディスク|100GB|
|メールサーバソフトウェア|Postfix|


(参考：[システム構成ガイド システム要件](https://exastro-suite.github.io/oase-docs/OASE_documents_ja/html/system_construction/system_requirements.html#id3) )

####ITA用

|カテゴリ|導入|
|:---|:---|
|OS|CentOS7|
|CPU|2コア|
|メモリ|4GB|
|ディスク|20GB|

(参考：[Exastro-ITA_システム構成/環境構築ガイド_基本編](https://exastro-suite.github.io/it-automation-docs/asset/Documents_ja/Exastro-ITA_%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E6%88%90%EF%BC%8F%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%82%AC%E3%82%A4%E3%83%89_%E5%9F%BA%E6%9C%AC%E7%B7%A8.pdf) )

##「Base【実習】」に記載の「前提」を実施していく

###前提 ① ITAをインストール

公式のドキュメントやqiita記事を参考にインストールを実施する

- [ITA Learn オンラインインストール](https://exastro-suite.github.io/it-automation-docs/asset/Learn_ja/ITA-online-install_ja.pdf)
- [Exastro IT Automationをインストールしてみた（v1.7.2）](https://qiita.com/standsetx/items/54ff0786db151d980026)

###前提 ② ITA BASE【実習】の実施
前半の内容は今回特に使わないので、「シナリオ」スライド以降を対応する

 - [ITA BASE【実習】](https://exastro-suite.github.io/it-automation-docs/asset/Learn_ja/ITA-base_practice_ja.pdf)


シナリオ以降を実施するとディレクトリ「tmp」配下に「testdirectory」が生成される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/32f018cc-91e9-005f-b045-8ad9bd3065f4.png)


###前提 ③ OASEをインストール
公式のドキュメントやqiita記事を参考にインストールを実施する

 - [OASE Learn オンラインインストール](https://exastro-suite.github.io/oase-docs/asset/Learn_ja/OASE-online-install_ja.pdf)
 - [Exastro OASE を最速でインストールする](https://qiita.com/wreath-vine/items/46b3838ce845bba9ae4e)

OASEをインストールしている環境でメールが使えることを確認する
>一般ユーザ作成時のパスワード通知のため、インストール時にメールサーバの設定が必要
([公式コミュニティサイト_Exastro OASE Learn 「Base【実習】」](https://exastro-suite.github.io/oase-docs/asset/Learn_ja/OASE-base_ITA-Driver_practice_ja.pdf) より引用)

今回使用するメールサーバソフトウェア「Postfix」が起動しているか確認

```bash
# Postfixのプロセス確認
ps -ax | grep postfix
```

※起動しているとこうなる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/717a640f-4d8b-2324-dcb9-190c2f4cb23f.png)

※起動していないとこうなる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/9885863f-879b-069a-b5eb-afa7f718cab0.png)

以下のコマンドで再起動を実施したり、設定を見直してメールサーバソフトウェアでメールが送れるようにしておく必要がある

```bash
# Postfixの起動
systemctl start postfix
```

 - 今回はOASE側の環境にPostfixを入れたけれど、必ずしも「OASE」と「メールサーバソフトウェア」が同居している必要はないみたい
 - メールサーバソフトウェアについてはこのあたりを参考にしてみた
（参考：[Postfix 基本設定](http://www.postfix-jp.info/trans-2.3/jhtml/BASIC_CONFIGURATION_README.html)）

###前提 ④ OASE Base【座学】の確認
必要に応じて見ながら進める

###前提 ⑤ OASEへITAドライバをインストール
Base【座学】のスライドにも注釈があるけれど、インストールするディレクトリに要注意

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/9075df19-0c38-6225-b16f-3ee83499fe2b.png)

(スライドは[公式コミュニティサイト_Exastro OASE Learn 「Base【座学】」](https://exastro-suite.github.io/oase-docs/asset/Learn_ja/OASE-base_ITA-Driver_lecture_ja.pdf) より引用)

公式のドキュメントやqiita記事を参考にインストールを実施する

 - [環境構築マニュアル -ドライバインストール編-](https://exastro-suite.github.io/oase-docs/OASE_documents_ja/html/driver_install/01_install.html#id2)
 - [Exastro OASE を最速でインストールする](https://qiita.com/wreath-vine/items/46b3838ce845bba9ae4e)

※上記qiitaの後半で、ITAドライバについても資材解凍～インストールについて説明されている

##「Base【実習】」のシナリオを確認

>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/fd3f335a-011e-233e-3f89-b28333f08538.png)
(スライドは[公式コミュニティサイト_Exastro OASE Learn 「Base【実習】」](https://exastro-suite.github.io/oase-docs/asset/Learn_ja/OASE-base_ITA-Driver_practice_ja.pdf) より引用)


シナリオを絵にしてみると多分こういう流れになる

###①環境を用意

* 先述した[今回の環境](#今回の環境) 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/1b260254-3ca9-8c0f-0069-3ce1a76582c4.png)


###②必要なアイテムをインストール

* 先述した
 * [前提 ① ITAをインストール](#前提--itaをインストール) 
 * [前提 ③ OASEをインストール](#前提--oaseをインストール) ※メールサーバソフトウェアの設定も実施
 * [前提 ⑤ OASEへITAドライバをインストール](#前提--oaseへitaドライバをインストール)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/14e51612-c1a3-a965-1e6e-b5ff5b4518d6.png)


###③【前提】の実施

* 先述した
 * [前提 ② ITA BASE【実習】の実施](#前提--ita-base実習の実施)
 * [前提 ③ OASEをインストール](#前提--oaseをインストール) ※メールの疎通確認実施


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/010a5400-47f1-a738-9d86-11bfda64efb8.png)


###④【事前設定】を実施する

* 後述する
 * [①【事前設定】グループ作成](#事前設定グループ作成)
 * [②【事前設定】ユーザ作成、新規ユーザでのログイン](#事前設定ユーザ作成新規ユーザでのログイン)
 * [③【事前設定】トークン払い出し](#事前設定トークン払い出し)
 * [④【事前設定】アクション設定（ITAドライバ）](#事前設定アクション設定itaドライバ)
 * [⑤【事前設定】ディシジョンテーブル作成](#事前設定ディシジョンテーブル作成)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/c61d163e-0d12-4cc1-d8e7-6e76b22846d6.png)


###⑤【作業実行】を実施する（ルールの登録・staging（検証）まで）

* 後述する
 * [⑥【作業実行】ディシジョンテーブルファイル作成](#作業実行ディシジョンテーブルファイル作成)
 * [⑦【作業実行】ルール登録（アップロード、テストリクエスト）](#作業実行ルール登録アップロードテストリクエスト)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/e1f7d036-aeb9-b5fe-e554-f41fa8d59677.png)


###⑥【作業実行】を実施する（production(本番)環境で実行）

* 後述する
 * [⑧【作業実行】ルール判定（curlコマンドによるリクエスト送信）](#作業実行ルール判定curlコマンドによるリクエスト送信)
 * [⑨【作業実行】アクション実行結果の確認（ITA連携）](#作業実行アクション実行結果の確認ita連携)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/8000c759-ca50-cdf7-6726-07b1527c1b2f.png)


###⑦【作業実行】を実施する（未知事象の場合はメールで通知される）

* 後述する[未知事象通知](#未知事象通知) 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/c3f162f4-47db-90e2-995f-c1b8466e3c53.png)


##シナリオの１～９を実践する

【事前設定】～【作業実行】における各ステップのスライドで「こういう値が入力できるよ」とは書かれているけれど具体的な値がなかったりする。
終盤のスライド「A　付録 サンプル」に具体値は書いてあるけれど、それだけだと情報が足りない...ので、ここでは「各ステップのスライド」と「A 付録 サンプル」の良い所取りをして進めていく。

※ 「各ステップのスライド(左)」と「A 付録 サンプル(右)」の比較
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/df4fc8ca-cd82-9033-01db-eb184adb2cb3.png)
(スライドは[公式コミュニティサイト_Exastro OASE Learn 「BASE【実習】」](https://exastro-suite.github.io/oase-docs/asset/Learn_ja/OASE-base_ITA-Driver_practice_ja.pdf) より引用)


###①【事前設定】グループ作成

「test_group」という名称のグループを登録する

|項目|具体値|
|:---|:---|
|グループ名|test_group|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/ea8007bc-7654-bc31-3058-057138e13b11.png)

作成した「test_group」にアクセス権限を付与する

|項目|具体値|
|:---|:---|
|アクセス権限|すべて「更新可能」|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/8af2bf27-1e30-b9c9-e041-d474036228ad.png)



###②【事前設定】ユーザ作成、新規ユーザでのログイン

「test_user」という名称のユーザを登録する

|項目|具体値|
|:---|:---|
|ユーザ名|test_user|
|ログインID|test_user|
|メールアドレス|（自分のメールアドレス）|
|グループ|test_group|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/d7ee450e-4433-9840-8e3e-6f7f3a73a0b7.png)



###③【事前設定】トークン払い出し

「practice_token」という名称のトークンを払い出す

|項目|具体値|
|:---|:---|
|トークン名|practice_token|
|グループ別権限|test_group：権限あり|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/c22ec47e-50e4-a157-7dbf-37fb6abb33d6.png)


###④【事前設定】アクション設定（ITAドライバ）

「test_ita」という名称でITAドライバを追加する

|項目|具体値|
|:---|:---|
|名前|test_ita|
|バージョン|1.7.1|
|プロトコル|http|
|ホスト/IP|（ITAをインストールした環境のIP）|
|ポート|80|
|ユーザ名|administrator|
|パスワード|(ITAにログインできるパスワード)|
|権限の設定|test_group：更新可能|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/c8328e29-e7b1-bd92-5992-98d0e07ee896.png)

ITAにログインして、今回の「Base【実習】」で生成されるディレクトリ名に具体値を変更する

|項目|具体値|
|:---|:---|
|具体値|oase_testdirectory|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/05debfaa-af38-461e-bac9-62fbb6da72ff.png)


※「ITA_BASE【実習】」では「testdirectory」と入力させられた箇所

「ITA_BASE【実習】」では特に見なかった以下の画面にて、「廃止」ステータスの「Symphony紐付Movement一覧」メニューを「復活」させる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/177e9299-8231-d648-4ed0-eab719f058f4.png)



###⑤【事前設定】ディシジョンテーブル作成

 - 「基本情報・権限」タブ

|項目|具体値|
|:---|:---|
|ディシジョンテーブル名|test_dt|
|権限の設定|test_group：全て「更新可能」|


 - 「条件式」タブ

|項目|具体値|
|:---|:---|
|条件名①|アラートレベル|
|条件式①|正規表現に一致する|
|条件名②|対象|
|条件式②|正規表現に一致する|


 - 「未知事象通知」タブ

|項目|具体値|
|:---|:---|
|未知事象通知|メールで通知する|
|連絡先メールアドレス|（自分のメールアドレス）|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/7bf9ea38-f952-095f-d53a-ba51e718bd2c.png)

 - ディシジョンテーブルの作成は4件程度にとどめておくこと
 - 4件以上作成するとエラーになる可能性が高くなるので留意

>ディシジョンテーブル作成可能数¶
ディシジョンマネージャは環境によって作成できるディシジョンテーブル数が変動します。
ディシジョンテーブルの最大作成可能数はデフォルトでは4ファイル程度となります。
記載ルール数またはルール自体の複雑度によってディシジョンテーブル作成数が前後する可能性があります。
より多くのディシジョンテーブルの作成を実施したい場合はチューニングが必要となります。
([OASE_docs 環境構築マニュアル -基本編-](https://exastro-suite.github.io/oase-docs/OASE_documents_ja/html/settings/installation.html#id13) より引用) 


###⑥【作業実行】ディシジョンテーブルファイル作成

|ルール説明|アラートレベル|対象|ルール名|アクション種別|アクションパラメータ情報|アクション実行前パラメータ情報|リトライ間隔|リトライ回数|抑止間隔|抑止回数|条件回数|条件期間|大グループ|優先順位|小グループ|優先順位|有効日|無効日|
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
|ルール1|^.*Error.*$|^.*HDD.*$|check_Error|ITA(Ver1)|ITA_NAME=test_ita,SYMPHONY_CLASS_ID=1,OPERATION_ID=1|x|1|1|0|0|x|x|x|x|x|x|(空白)|(空白)|
|ルール2|^.*Warning.*$|^.*memory.*$|check_Warning|なし|x|x|1|1|0|0|x|x|x|x|x|x|(空白)|(空白)|
|ルール3|^.*info.*$|^.*％.*$|check_Info|なし|x|x|1|1|0|0|x|x|x|x|x|x|(空白)|(空白)|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/8f7e3f90-0638-0481-f3ad-9124da4bad72.png)


###⑦【作業実行】ルール登録（アップロード、テストリクエスト）

 - 「ディシジョンテーブル」タブ

|項目|具体値|
|:---|:---|
|ディシジョンテーブル名選択|test_dt|

 - 「設定」タブ （一括テストリクエスト）

|リクエスト名|イベント発生日時|アラートレベル|対象|
|:---|:---|:---|:---|
|ルール1用|2019-5-17 1:20:30|Error:|HDD usage 80% over|
|ルール2用|2019-5-17 1:20:30|Warning:|memory usage 80% over|
|ルール3用|2019-5-17 1:20:30|[info]|HDD usage 20% over|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/8c27883a-608f-77ab-b02a-fc5956c4a12a.png)

 - ファイル選択

|項目|具体値|
|:---|:---|
|ファイルを選択|id000000000xx_testrequest.xlsx|

###⑧【作業実行】ルール判定（curlコマンドによるリクエスト送信）

OASEをインストールしている環境で以下のコマンドを実行する

```bash
# 作成したルールに合致するメッセージを投入する
curl -X POST -k "https://xx.xx.xx.xx（※1）/oase_web/event/event/eventsrequest" \
     -H "accept: application/json" \
     -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxx(※2)" \
     -d '{"decisiontable":"test_dt","requesttype":"1","eventdatetime":"2021/04/26 11:20:00","eventinfo":["Error:","HDD usage 80% over"]}'
```

※1...[OASEを導入した環境のIPアドレス](#前提--oaseをインストール)
※2...[「【事前設定】③ トークン払い出し」で払い出したトークン](#事前設定トークン払い出し)

###⑨【作業実行】アクション実行結果の確認（ITA連携）

####OASEの「アクション履歴」画面
ログ詳細に「処理済み（正常終了）」と表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/bceb2050-1c61-162e-57e2-26f45b7db768.png)

####ITAの「Symphony作業一覧」メニュー
項目「ステータス」に「正常終了」と表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/e84c126c-f597-afa8-6b36-417b70e6bdb4.png)

####ITA環境の「/tmp」ディレクトリ配下
設定した通りのアクションが行われ、「oase_direcgtory」が作成された
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/9b1d2fd9-8030-b6af-c75e-8036fe6bf126.png)

####未知事象通知

ルール定義していない「message:」「SKIP」といったメッセージを流した場合は未知事象通知が飛ぶ

※「A 付録 サンプル」に則り、以下のcurlコマンドを実行する

```sh
# ルールとして定義していないメッセージを投入する
curl -X POST -k "https://xx.xx.xx.xx（※1）/oase_web/event/event/eventsrequest" \
     -H "accept: application/json" \
     -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxx(※2)" \
     -d '{"decisiontable":"test_dt","requesttype":"1","eventdatetime":"2021/04/26 11:20:00","eventinfo":["message:","SKIP"]}'
```
※1...[OASEを導入した環境のIPアドレス](#前提--oaseをインストール)
※2...[「【事前設定】③ トークン払い出し」で払い出したトークン](#事前設定トークン払い出し)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/7259644b-c39c-d96b-c976-1b72c92b0267.png)


#まとめ
OASEからITAをキックするといった流れで処理を通すことができた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1152670/188cba88-8001-84d5-b846-88e4b82b2066.png)