#はじめに
OASEのコミュニティサイトにLearn「Base」が新しく追加された。
Exastro OASE BASE
OASEの基本機能の利用手順をご用意しました。
本書は、ポイントを絞り込んだ「座学編」、簡単にハンズオンしたい方のための「実習編」の2部構成になっております。
機能ごとの特長を分かりやすく解説し、イメージしづらい概念的な内容は図解している為、効率よく OASEの共通機能を理解することが可能です。
(公式コミュニティサイト_Exastro OASE Learn より引用)
「Base【実習】」をハンズオンしてみる。
Exastro OASE Learn MAPを見てみる
実際に手を動かしながら「OASE」と「ITAドライバ」を連携した一連の流れを動かしてみる。
おおまかなフローとしては「事前設定」と「作業実行」の2段構成。
(スライドは公式コミュニティサイト_Exastro OASE Learn より引用)
ハンズオンを実施する前にスペックを確認する
OASEやITAをインストールする必要がある中、環境のスペックが低いとインストールができなかったり、インストールできても動かなかったりする(実際動かなくなった)。
スペックが不足しないか要確認!
###今回の環境
VM2台(OASE用・ITA用)を用意した
####OASE用
カテゴリ | 導入 |
---|---|
OS | CentOS7 |
CPU | 6コア |
メモリ | 8GB |
ディスク | 100GB |
メールサーバソフトウェア | Postfix |
(参考:システム構成ガイド システム要件 )
####ITA用
カテゴリ | 導入 |
---|---|
OS | CentOS7 |
CPU | 2コア |
メモリ | 4GB |
ディスク | 20GB |
(参考:Exastro-ITA_システム構成/環境構築ガイド_基本編 )
##「Base【実習】」に記載の「前提」を実施していく
###前提 ① ITAをインストール
公式のドキュメントやqiita記事を参考にインストールを実施する
###前提 ② ITA BASE【実習】の実施
前半の内容は今回特に使わないので、「シナリオ」スライド以降を対応する
シナリオ以降を実施するとディレクトリ「tmp」配下に「testdirectory」が生成される
###前提 ③ OASEをインストール
公式のドキュメントやqiita記事を参考にインストールを実施する
OASEをインストールしている環境でメールが使えることを確認する
一般ユーザ作成時のパスワード通知のため、インストール時にメールサーバの設定が必要
(公式コミュニティサイト_Exastro OASE Learn 「Base【実習】」 より引用)
今回使用するメールサーバソフトウェア「Postfix」が起動しているか確認
# Postfixのプロセス確認
ps -ax | grep postfix
以下のコマンドで再起動を実施したり、設定を見直してメールサーバソフトウェアでメールが送れるようにしておく必要がある
# Postfixの起動
systemctl start postfix
- 今回はOASE側の環境にPostfixを入れたけれど、必ずしも「OASE」と「メールサーバソフトウェア」が同居している必要はないみたい
- メールサーバソフトウェアについてはこのあたりを参考にしてみた
(参考:Postfix 基本設定)
###前提 ④ OASE Base【座学】の確認
必要に応じて見ながら進める
###前提 ⑤ OASEへITAドライバをインストール
Base【座学】のスライドにも注釈があるけれど、インストールするディレクトリに要注意
(スライドは公式コミュニティサイト_Exastro OASE Learn 「Base【座学】」 より引用)
公式のドキュメントやqiita記事を参考にインストールを実施する
※上記qiitaの後半で、ITAドライバについても資材解凍~インストールについて説明されている
##「Base【実習】」のシナリオを確認
(スライドは公式コミュニティサイト_Exastro OASE Learn 「Base【実習】」 より引用)
シナリオを絵にしてみると多分こういう流れになる
###①環境を用意
- 先述した今回の環境
###②必要なアイテムをインストール
- 先述した
- 前提 ① ITAをインストール
- 前提 ③ OASEをインストール ※メールサーバソフトウェアの設定も実施
- 前提 ⑤ OASEへITAドライバをインストール
###③【前提】の実施
- 先述した
- 前提 ② ITA BASE【実習】の実施
- 前提 ③ OASEをインストール ※メールの疎通確認実施
###④【事前設定】を実施する
- 後述する
- ①【事前設定】グループ作成
- ②【事前設定】ユーザ作成、新規ユーザでのログイン
- ③【事前設定】トークン払い出し
- ④【事前設定】アクション設定(ITAドライバ)
- ⑤【事前設定】ディシジョンテーブル作成
###⑤【作業実行】を実施する(ルールの登録・staging(検証)まで)
###⑥【作業実行】を実施する(production(本番)環境で実行)
###⑦【作業実行】を実施する(未知事象の場合はメールで通知される)
- 後述する未知事象通知
##シナリオの1~9を実践する
【事前設定】~【作業実行】における各ステップのスライドで「こういう値が入力できるよ」とは書かれているけれど具体的な値がなかったりする。
終盤のスライド「A 付録 サンプル」に具体値は書いてあるけれど、それだけだと情報が足りない...ので、ここでは「各ステップのスライド」と「A 付録 サンプル」の良い所取りをして進めていく。
※ 「各ステップのスライド(左)」と「A 付録 サンプル(右)」の比較
(スライドは公式コミュニティサイト_Exastro OASE Learn 「BASE【実習】」 より引用)
###①【事前設定】グループ作成
「test_group」という名称のグループを登録する
項目 | 具体値 |
---|---|
グループ名 | test_group |
作成した「test_group」にアクセス権限を付与する
項目 | 具体値 |
---|---|
アクセス権限 | すべて「更新可能」 |
###②【事前設定】ユーザ作成、新規ユーザでのログイン
「test_user」という名称のユーザを登録する
項目 | 具体値 |
---|---|
ユーザ名 | test_user |
ログインID | test_user |
メールアドレス | (自分のメールアドレス) |
グループ | test_group |
###③【事前設定】トークン払い出し
「practice_token」という名称のトークンを払い出す
項目 | 具体値 |
---|---|
トークン名 | practice_token |
グループ別権限 | test_group:権限あり |
###④【事前設定】アクション設定(ITAドライバ)
「test_ita」という名称でITAドライバを追加する
項目 | 具体値 |
---|---|
名前 | test_ita |
バージョン | 1.7.1 |
プロトコル | http |
ホスト/IP | (ITAをインストールした環境のIP) |
ポート | 80 |
ユーザ名 | administrator |
パスワード | (ITAにログインできるパスワード) |
権限の設定 | test_group:更新可能 |
ITAにログインして、今回の「Base【実習】」で生成されるディレクトリ名に具体値を変更する
項目 | 具体値 |
---|---|
具体値 | oase_testdirectory |
※「ITA_BASE【実習】」では「testdirectory」と入力させられた箇所
「ITA_BASE【実習】」では特に見なかった以下の画面にて、「廃止」ステータスの「Symphony紐付Movement一覧」メニューを「復活」させる
###⑤【事前設定】ディシジョンテーブル作成
- 「基本情報・権限」タブ
項目 | 具体値 |
---|---|
ディシジョンテーブル名 | test_dt |
権限の設定 | test_group:全て「更新可能」 |
- 「条件式」タブ
項目 | 具体値 |
---|---|
条件名① | アラートレベル |
条件式① | 正規表現に一致する |
条件名② | 対象 |
条件式② | 正規表現に一致する |
- 「未知事象通知」タブ
項目 | 具体値 |
---|---|
未知事象通知 | メールで通知する |
連絡先メールアドレス | (自分のメールアドレス) |
- ディシジョンテーブルの作成は4件程度にとどめておくこと
- 4件以上作成するとエラーになる可能性が高くなるので留意
ディシジョンテーブル作成可能数¶
ディシジョンマネージャは環境によって作成できるディシジョンテーブル数が変動します。
ディシジョンテーブルの最大作成可能数はデフォルトでは4ファイル程度となります。
記載ルール数またはルール自体の複雑度によってディシジョンテーブル作成数が前後する可能性があります。
より多くのディシジョンテーブルの作成を実施したい場合はチューニングが必要となります。
(OASE_docs 環境構築マニュアル -基本編- より引用)
###⑥【作業実行】ディシジョンテーブルファイル作成
ルール説明 | アラートレベル | 対象 | ルール名 | アクション種別 | アクションパラメータ情報 | アクション実行前パラメータ情報 | リトライ間隔 | リトライ回数 | 抑止間隔 | 抑止回数 | 条件回数 | 条件期間 | 大グループ | 優先順位 | 小グループ | 優先順位 | 有効日 | 無効日 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ルール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 | (空白) | (空白) |
###⑦【作業実行】ルール登録(アップロード、テストリクエスト)
- 「ディシジョンテーブル」タブ
項目 | 具体値 |
---|---|
ディシジョンテーブル名選択 | 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 |
- ファイル選択
項目 | 具体値 |
---|---|
ファイルを選択 | id000000000xx_testrequest.xlsx |
###⑧【作業実行】ルール判定(curlコマンドによるリクエスト送信)
OASEをインストールしている環境で以下のコマンドを実行する
# 作成したルールに合致するメッセージを投入する
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アドレス
※2...「【事前設定】③ トークン払い出し」で払い出したトークン
###⑨【作業実行】アクション実行結果の確認(ITA連携)
####OASEの「アクション履歴」画面
ログ詳細に「処理済み(正常終了)」と表示される
####ITAの「Symphony作業一覧」メニュー
項目「ステータス」に「正常終了」と表示される
####ITA環境の「/tmp」ディレクトリ配下
設定した通りのアクションが行われ、「oase_direcgtory」が作成された
####未知事象通知
ルール定義していない「message:」「SKIP」といったメッセージを流した場合は未知事象通知が飛ぶ
※「A 付録 サンプル」に則り、以下のcurlコマンドを実行する
# ルールとして定義していないメッセージを投入する
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"]}'