そもそもAI Data Advisorとは
IBM Workload Scheduler (以下IWS)バージョン 10.1では AI Data Advisor(以下AIDA)と呼ばれるAIによるジョブ管理機能が追加されています。
バージョン 10.1で追加された主要な新機能の一つで、AIにより毎日のジョブスケジュール実行状況を分析し、「いつもと様子が異なる」場合にそれを運用者に示してくれる機能です。
例えば個々のジョブのステータスを監視しているだけでは気づきにくい、次のような状況を検知します。
- スケジュールされているジョブ数が通常よりも多い
- ジョブスケジュールの進みが遅い(時系列で見た時に実行完了ジョブ数の推移がいつもよりも緩やか)
AI Data Advisor については、製品マニュアル
やYouTubeの Workload Automation チャンネルの動画 でも紹介されていますが、実際にどんな感じなのか見てみたい!ということでインストールしてみました。
とにかく検証用に早く動かしてみたいということでインストールした際の手順です。導入要件やインストール手順の概要を掴みたい、簡易検証で手っ取り早く導入してみたい、といった時に参考にしていただければ幸いです。
IWS 10.1 & AIDA 構成
AIDAはIWS 10.1サーバーで公開されるメトリックをAPIで収集し、分析します。
AIDAはDockerでのデプロイとKubernetesでのデプロイが可能ですが、今回は簡易に検証環境を作成したいのでDockerでデプロイすることにします。
IWSサーバーとは別立てとし、次のような構成とします。
AIDA導入前提要件
製品マニュアルからリンクされているGitHubページにてAIDAのインストール手順が公開されており、こちらに前提要件の記載があります。
Dockerへのデプロイの場合の導入前提要件は以下です。
- Linux(x86)またはLinux on Z
- Docker 19.x以降
- Docker Compose 12.8以降
- AIDAを構成するコンテナによって使用されるリソースの最大量
- CPU:6コア
- メモリ:32GB
その他要件:
- インターネット接続(インストール過程で外部レジストリよりDockerイメージをダウンロードしているように見えるため)
IBM Software Product Compatiblilty Report には Ubuntu 20.04 および 22.04で検証済みと解釈できる記載があったので、Ubuntu 22.04 にインストールすることにしました。
なお、Githubの Prerequisites(前提要件)にはOpenSearch 2.3.0 や Keycloakのコンテナイメージもリストされていましたが、Fix Central からインストールイメージをダウンロードして導入する場合はこれらのコンテナイメージを別途入手する必要はなく、インストール過程で適宜ダウンロードが行われました。
IWS側の事前準備
AIDAでIWSの稼働状況を分析しアノマリーを検知するためには、IWSのメトリックを収集する必要があります。AIDA導入前に、こちらの手順 に従ってIWSのメトリックをAIDA用に公開する必要があります。
-
IWSサーバーにログインします。以降の作業は全て rootユーザで実行します。
-
IWS用 WAS Liberty の設定ファイルが保管されているディレクトリーへ移動します。(下記は /opt/wa にIWSサーバーを導入している場合)
# cd /opt/wa/TWSDATA/usr/servers/engineServer/configDropins/overrides
- prometheus.xmlを編集します。オリジナルのファイルは別ディレクトリーへバックアップを取得します。(同じディレクトリーでバックアップファイルを作成すると誤動作の原因となります。)
編集例:
# cat prometheus.xml
<server>
<featureManager>
<feature>mpMetrics-2.3</feature>
<feature>cdi-2.0</feature>
</featureManager>
<administrator-role>
<user>${user.twsuser.id}</user>
</administrator-role>
</server>
#
- IWSのWASを再起動します。
# su - wauser
$ conman "stopappserver ;wait"
$ conman "startappserver ;wait"
- ブラウザより、メトリックにアクセスできることを確認します。
https://IWSサーバーホスト名またはIP:31116 へアクセスし、下記のようにメトリックが表示されることを確認します。
AIDAインストール手順
AIDAをDockerへデプロイする手順は2通りあります。
- Fix Centralでインストールイメージをダウンロードしてインストールする
- IBM Cloud Container Registryからコンテナイメージをダウンロードして起動する
今回はFix Centralでインストールイメージをダウンロードする方法をとりました。
以降の手順ではDocker, Docker Composeが導入済みであり、Linuxカーネル・パラメーター vm.max_map_count が 262144 に設定されていることを前提とします。
インストールイメージの入手・展開・ロード
Fix Centralよりインストールイメージをダウンロードします。本手順を実施時点の最新のインストールイメージは IWS 10.1 Fix Pack 3 (10.1.0.3-2023.05-IWS-DOCKER-AIDA-LNX_X86_64)でした。
ダウンロードしたインストールイメージをAIDA導入サーバーへアップロードし、作業用ディレクトリーで展開します。
操作は全てrootユーザで行います。
- umask を 0022へ設定する。
# umask 0022
# umask
- 作業用ディレクトリ(ここでは /work/docker ) でインストールイメージを展開します。
tar -zxvf 10.1.0.3-2023.05-IWS-DOCKER-AIDA-LNX_X86_64.tar.gz
- /work/docker/docker-deploymentディレクトリーへ移動し、Docker イメージをロードします。
# cd docker-deployment/
# ./AIDA.sh load
設定ファイル(common.env)の編集
- AIDAの設定は common.envで行います。次のパラメーターを編集します。
パラメーター名 | 設定値 | 説明 |
---|---|---|
OPENSSL_PASSWORD | default | Open SSL証明書のパスワード |
LICENSE | accept | ライセンスへの合意 |
WA_OMETRICS | https://IWS_SERVER_IP:31116/metrics | IWS公開メトリックへの接続URL。IWS_SERVER_IPはIWSサーバーのIPアドレスまたはホスト名。 |
WA_METADATA | https://IWS_SERVER_IP:31116/twsd/engine/historical_metric/metadata | IWSメタデータへの接続URL。IWS_SERVER_IPはIWSサーバーのIPアドレスまたはホスト名。 |
WA_RECORDS | https://IWS_SERVER_IP:31116/twsd/engine/historical_metric/record | IWS履歴データへの接続URL。IWS_SERVER_IPはIWSサーバーのIPアドレスまたはホスト名。 |
ALERT_CONFIG_URL | https://IWS_SERVER_IP:31116/twsd/engine/definition/alert | アラート構成ファイルへの接続URL。IWS_SERVER_IPはIWSサーバーのIPアドレスまたはホスト名。 |
KPI_CONFIG_URL | https://IWS_SERVER_IP:31116/twsd/engine/definition/kpi | KPI定義ファイルへの接続URL。IWS_SERVER_IPはIWSサーバーのIPアドレスまたはホスト名 |
WA_CATALOGS | https://IWS_SERVER_IP:31116/twsd/engine/definition/aida_catalog | IWS_SERVER_IPはIWSサーバーのIPアドレスまたはホスト名 |
HTTP_AUTH_USER | wauser | IWS管理ユーザー名 |
HTTP_AUTH_PASSWORD | password | wauser(IWS管理ユーザー)のパスワード |
AIDAコンテナのビルドと開始
- AIDAコンテナをビルドし、起動します。
# ./AIDA.sh build-start
IWSサーバーの登録
- AIDAの分析対象となるIWSサーバーを登録します。
下記コマンドを実行後、プロンプトに従って、IWSサーバーのメトリック公開URL、IWS管理ユーザー名、パスワードを入力します。"Is the engine distributed?"の質問には y で回答します。
# ./AIDA.sh add-credentials
AIDAへのアクセス
-
https://AIDAサーバーのIPまたはホスト名:9432 へアクセスします。デフォルトのユーザー名とパスワードを入力してログインします。
デフォルトユーザー名:aidaadmin
パスワード:admin
AIDAでどのような事象を検知できるのかは、検証して別途記事にまとめたいと思います。
本記事は以上です。