Amazon CloudWatch Application Insightsとは
公式マニュアルには以下のように記載されています。
CloudWatch Application Insights は、他のアプリケーションリソースとともに Amazon EC2 インスタンスを使用するアプリケーションをモニタリングするのに役立ちます。アプリケーションのリソース全体およびテクノロジースタック (Microsoft SQL Server データベース、ウェブ (IIS) サーバー、アプリケーションサーバー、OS、ロードバランサー、キューなど) で主要なメトリクス、ログ、およびアラームを特定して設定します。
超簡単に説明すると「SQLServerやIISなどのアプリケーションの監視設定をよろしくやってくれる」機能です。(たぶん
2021年11月にSAP HANAの監視にも対応したので試してみたいと思います。
https://aws.amazon.com/jp/about-aws/whats-new/2021/11/amazon-cloudwatch-insights-sap-hana-databases/
SAP HANA環境の準備
まずは監視対象のHANA環境を準備します。
今回はAWS Launch Wizard for SAPを使用してシングル構成のHANA環境を作成しました。
※事前にHANAのインストールメディアをSAP Software Download Centerからダウンロードする必要があります。
※インストールメディアのダウンロードにはS-USERが必要です。
前提条件
HANA環境の作成後にCloudWatch Application Insightsで監視を行うための前提条件を確認します。
・SAP HANA
HANAがインストールされており、且つ起動していること。
Launch Wizardでインストールと起動まで完了しています。
・SAP HANAデータベースユーザ
CloudWatch Application Insightsと連携する専用のユーザを作成する必要があります。
マニュアルに従って以下のコマンドで作成します。
su - <sid>adm
hdbsql -u SYSTEM -p <SYSTEMDB password> -d SYSTEMDB
CREATE USER CW_HANADB_EXPORTER_USER PASSWORD <Monitoring user password> NO FORCE_FIRST_PASSWORD_CHANGE;
CREATE ROLE CW_HANADB_EXPORTER_ROLE;
GRANT MONITORING TO CW_HANADB_EXPORTER_ROLE;
GRANT CW_HANADB_EXPORTER_ROLE TO CW_HANADB_EXPORTER_USER;
・Python 3.6
・pip3
・CloudWatch Agent
・SSM Agent
これらはLaunch Wizardで起動させたSuSE Linux 15 SP1に既にインストールされていました。
sapci:~ # /usr/bin/python3 --version
Python 3.6.10
sapci:~ # /usr/bin/pip3 --version
pip 20.0.2 from /usr/lib/python3.6/site-packages/pip (python 3.6)
sapci:~ # /usr/bin/amazon-cloudwatch-agent-ctl -a status
{
"status": "running",
"starttime": "2021-12-18T05:39:31+00:00",
"configstatus": "configured",
"cwoc_status": "stopped",
"cwoc_starttime": "",
"cwoc_configstatus": "not configured",
"version": "1.247349.0b251399"
}
sapci:~ # amazon-ssm-agent -version
SSM Agent version: 3.1.715.0
・IAMロール
HANAが起動しているEC2に必要な権限のロールをアタッチします。
今回は一時的な検証環境ということでAdmin権限のロールをアタッチしました。
本番環境ではマニュアルに従って権限を絞りましょう。
・AWS Resource Groups
監視対象のHANAサーバ(EC2)のResource Groupsを作成します。
以下のパラメーターで作成しました。
グループ名:HANASERVERGROUP
グループタイプ:タグベース
リソースタイプ:AWS::EC2::Instance , AWS::EC2::Volume
タグ:Key = Name , Value = HANASERVER ※事前にEC2インスタンスとEBSのタグに左記を設定
作成したResource Groupsの画面です。
Group resourcesにHANAのEC2インスタンスとEBSボリュームが表示されています。
CloudWatch Application Insightsの設定
マネージメントコンソールでCloudWatchの画面を開いて左メニューの Insights から Application Insights を選択します。
アプリケーションを選択 の画面で Resource group based application を選択します。
リソースグループ にResource Groupsで作成した HANASERVERGROUP を選択します。
アプリケーション に HANA single nodeを選択します。
ユーザ名 と パスワード に 前提条件 で作成したHANAデータベースユーザのユーザ名とパスワードを入力します。
設定内容を確認して問題無ければ Submit を選択します。
確認
Application Insightsのトップ画面を見ると、設定前は0と表示されていた モニタリング対象アセット や テレメトリー の数字が増えています。
CloudWatch画面の左メニューより すべてのメトリクス を選択してメトリクスの画面を開くと CWAgent というカスタム名前空間が作成されていることが確認できます。この中に34のカスタムメトリクスが存在しています。
CWAgent内のカスタムメトリクスを確認するとHANAサーバのCPU使用率やディスク使用率、HANAデータベースのキャッシュヒット率やコネクション数等のモニタリングが自動的に設定されていることが確認できました。
まとめ
CloudWatchでSAP HANAなどのEC2内のアプリケーション監視を実施する場合、カスタムメトリクスを1つ1つ自前で設定していく必要がありましたがApplication Insightsを使えば主要な監視項目が自動的に設定されるため監視設定の負荷を下げることが可能です。
現時点ではApplication Insightsのモニタリングに対応しているアプリケーション数が少ないですが、今後更に増えることを期待したいと思います。