監視ホストの設定と構成
監視エージェントは、 SAP システムからメトリクスを収集し、それを監視インスタンスのダッシュボードに転送します。
監視エージェント用にVPC仮想サーバーインスタンスホストをデプロイする
Prometheus のエクスポーターを使用して、メトリクスを収集します。 収集メトリクスに関するセクションでは、メトリクス、ラベル、および監視エージェントの詳細について説明しています。
Prometheus エクスポーターは、 GitHub オープンソースプロジェクト である SAP HANA DBエクスポーター をベースとしています。
作業を始める前に、 IBM Cloud® のドキュメントで、 IBM Cloud® のUIを使用して監視ホストを作成するための 仮想サーバーインスタンスの作成について確認してください。
ホスト監視の考慮事項
モニタリングホストの設定は以下の通りです。
- 監視ホストは、監視対象の SAP システムと同じ地域およびゾーンに配置する必要があります。
- デプロイ可能なアーキテクチャ(DA)に対応する正しいリソースグループを選択していることを確認してください。
ibm-sles-15-5-amd64-sap-applications-<version>
のイメージを展開する必要があります。 SUSE Linux Enterprise Server 15 SP5 for SAP Applications ( AMD64 )- 2コアの最小サイズで展開してください。- SSH 鍵の管理に記載されているように、適切な SSH 鍵を追加します。
ACLとセキュリティグループの検証
監視エージェントホストを作成したら 、ACLとセキュリティグループの設定が正しいことを確認します。
監視ホストの国ロケーション以外の取り込みエンドポイントを使用している場合は、対応するプライベートREST APIエンドポイントの IBM Cloud® ネットワークACL設定を調整する必要があります。 詳しくは、 Prometheus リモート書き込みを使用したメトリックの収集を参照してください。
SAP 変数をbash変数としてエクスポートする
SAP の変数をBashの変数としてエクスポートするには、次のコマンドを使用します。
export sap_monitoring_nr=<sap_monitoring_nr>
export sap_hana_ip=<sap_hana_ip>
export sap_ascs_ip=<sap_ascs_ip>
export sap_app_server_ip_01=<sap_app_server_ip_01>
export sap_app_server_port_01=<sap_app_server_port_01>
export sap_ascs_http_port=<sap_ascs_http_port>
export sap_hana_http_port=<sap_hana_http_port>
export sap_hana_sql_systemdb_port=<sap_hana_sql_systemdb_port>
export sap_hana_sql_systemdb_user=<sap_hana_sql_systemdb_user>
export sap_hana_sql_systemdb_password=<sap_hana_sql_systemdb_password>
export ibmcloud_monitoring_instance_url=<ibmcloud_monitoring_instance_url>
export ibmcloud_monitoring_authorization_credentials=<ibmcloud_monitoring_authorization_credentials>
データベースポートと SAP インスタンスポートの接続性を確認する
次のコマンドを使用して、netcatツールをインストールします。
sudo zypper install netcat
netcat を使用して、監視対象ホスト上のデータベースポートと SAP インスタンスポートへの接続性を確認します。
nc –vz ${sap_hana_ip} ${sap_hana_sql_systemdb_port}
SAP HANA データベースサーバーから SAP HANA サーバー上のsapstartsrvウェブサービスの HTTP ポートへの接続を確認します。
nc –vz ${sap_hana_ip} ${sap_hana_http_port}
SAP のASCSサーバーから、 SAP のASCSサーバー上のsapstartsrvウェブサービスの HTTP ポートへの接続を確認します。
nc –vz ${sap_ascs_ip} ${sap_ascs_http_port}
最初のアプリケーションサーバーの HTTP ポートへの最初の SAP (プライマリ)アプリケーションサーバーのIPアドレスからの接続を確認します。
nc –vz ${sap_app_server_ip_01} ${sap_app_server_port_01}
SLESオペレーティングシステムのレポジトリのステータスを確認する
次のコマンドを使用して、適切な SLES OS
リポジトリが有効になっていることを確認してください。
SLE-Module-SAP-Applications15-SP5-Updates
SLE-Module-Packagehub-Subpackages15-SP5-Pool
リポジトリが有効になっていない場合は、次のコマンドを使用して有効にしてください。
sudo SUSEConnect -p sle-module-sap-applications/15.5/x86_64
sudo SUSEConnect -p PackageHub/15.5/x86_64
これらのリポジトリをアクティブ化できない場合は、誤ったバージョンの SLES オペレーティングシステムイメージをインストールしています。
SLES Prometheus パッケージのインストール
SLES Prometheus パッケージをインストールするには、以下の手順に従います。
-
すべてのオペレーティングシステムのパッケージを最新バージョンに更新します。 必要に応じてホストを再起動します。
sudo zypper update
-
以下の Prometheus パッケージをインストールします。
sudo zypper install prometheus-sap_host_exporter
sudo zypper install prometheus-hanadb_exporter
sudo zypper install golang-github-prometheus-prometheus
-
Prometheus データ保存ディレクトリを作成します。
sudo mkdir /opt/prometheus
-
Prometheus データ保存ディレクトリのユーザーおよびグループIDを、 Prometheus ユーザーに変更します。
sudo chown -R prometheus:prometheus /opt/prometheus
sudo chmod u+rwx /opt/prometheus
-
metrics.json
というメトリックファイルを構成ディレクトリ/etc/hanadb_exporter
にコピーします。sudo cp /usr/share/doc/packages/prometheus-hanadb_exporter/metrics.json /etc/hanadb_exporter/metrics.json
SAP Python ドライバ hdbcli のインストール
SAP Python ドライバー hdbcli
をインストールするには、以下の手順に従ってください。
-
SAP のSユーザー認証を使用して、 SAP のダウンロードセンターにアクセスしてください。
-
SAP HANA Python ドライバーをダウンロードするには、公式の SAP HANA クライアントをダウンロードしてください。 より詳しい情報については 、「 SAP HANA クライアントのインストール」 を参照してください。
-
SAP Python ドライバ
hdbcli
を「 Python ドライバのインストール」 の手順に従ってインストールします。 -
次のものを選んでください。 SAP HANA 現在の
<version>
と<patch>
のクライアントパッケージ。SUPPORT PACKAGES & PATCHES - SAP HANA PLATFORM EDITION/ - SAP HANA PLATFORM EDITION 2.0/ - SAP HANA CLIENT 2.0 - LINUX ON X86_64 64BIT - IMDB_CLIENT20_<version>_<patch>-80002082.SAR
-
SAP のダウンロードセンターから
SAPCAR_*.EXE
パッケージをダウンロードしてください。 -
SAPCAR_*.EXE
とIMDB_CLIENTXXX.SAR
の2つのファイルを監視対象ホスト上の任意のディレクトリにコピーします。 -
ルートユーザーとして、以下のコマンドを実行してください。
chmod 755 SAPCAR_*.EXE
-
SAP HANA クライアントをSAPCARでSARファイルから抽出します。
./SAPCAR_*.EXE -xvf IMDB_CLIENT20*.SAR
SAPCAR_*.EXE
というファイル名は、 Linux バイナリファイルです。 -
hdbinst
を使用して、 SAP HANA クライアントをインストールします。cd SAP_HANA_CLIENT
./hdbinst
-
インストールパスを入力してください:
[/usr/sap/hdbclient]: /usr/sap/hdbclient
。 -
Python 3.x 用に必要な pip パッケージをインストールします。
sudo zypper install python3-pip
-
SAP HANA Python ドライバーをインストールします。
pip install /usr/sap/hdbclient/hdbcli-*.tar.gz
hdbuserstoreキーの作成
hdbuserstore
キーを作成するには、以下の手順に従ってください。
-
hanadb_exporterを実行するのと同じ Python ユーザーで、保存されたユーザーキーを作成します。 ReadOnly のSQLユーザーを
<sap_hana_sql_systemdb_user>
として使用します。/usr/sap/hdbclient/hdbuserstore SET MONITORING-${sap_monitoring_nr}-KEY \ "${sap_hana_ip}:${sap_hana_sql_systemdb_port}@SYSTEMDB" \ ${sap_hana_sql_systemdb_user} ${sap_hana_sql_systemdb_password}
詳細は、 SAP HANA User Store(hdbuserstore ) および hdbuserstore コマンドを参照してください。
次のステップでは、
userkey
をhanadb_exporterの設定ファイルに"userkey": "MONITORING-<sap_monitoring_nr>-KEY"
として追加します。 -
すべてのキーをリストアップして、キーが正しく作成されたことを確認します。
/usr/sap/hdbclient/hdbuserstore list
-
キーのみをリストアップするには、次のコマンドを使用します。
/usr/sap/hdbclient/hdbuserstore list MONITORING-${sap_monitoring_nr}-KEY
hanadb_exporterの設定とデーモンの起動
hanadb_exporterを設定し、デーモンを起動するには、以下の手順に従います。
hanadb_exporter
は、 SAP HANA データベースからメトリクスを収集します。 データベーステナントSYSTEMDBのすべてのメトリクスは、 Prometheus を通じて監視取り込みエンドポイントに転送されます。
GitHub リポジトリおよびオリジナルのドキュメントは、以下のウェブサイトでご覧いただけます。
構成は2つの構成ファイルで構成されています
metrics.json
- SAP HANA データベースへの問い合わせに必要なすべてのSQLステートメントを含んでいますconfig.json
sap_hana_ip
、、およびsap_hana_sql_systemdb_port
hdbuserkey
データベース上で管理者権限を必要としないようにするには、hdbuserstoreから ReadOnly SQLユーザーを使用してください。 特定のパラメータは、プレースホルダを置き換えることで構成ファイルに追加されます。 <…>
。
-
次のコマンドを使用して、ファイル名を
/etc/hanadb_exporter/config-<sap_monitoring_nr>-SQL.json
として、ユーザーrootで構成ファイルを作成します{ "listen_address": "0.0.0.0", "exposition_port": 5<sap_monitoring_nr>02, "multi_tenant": false, "_comment_multi_tenant": "true, if you want another 1000 metrics", "timeout": 30, "hana": { "host": "<sap_hana_ip>", "port": <sap_hana_sql_systemdb_port>, "userkey": "MONITORING-<sap_monitoring_nr>-KEY", "ssl": true, "ssl_validate_cert": false } }
-
userkey
パラメータの値には、先に作成したhdbuserkey
名を使用します。
次のコマンドでキーをリストアップできます。
/usr/sap/hdbclient/hdbuserstore list
-
A設定ファイルの権限を変更し、rootユーザーのみが読み取れるようにする。
chmod 600 /etc/hanadb_exporter/config*
-
systemd service
のsap_host_exporters
の構成を定義する前に、以下のコマンドを使用してエクスポーターを手動でテストしてください。hanadb_exporter -c /etc/hanadb_exporter/config-${sap_monitoring_nr}-SQL.json -m /etc/hanadb_exporter/metrics.json
-
このプロセスでは1つの端末がブロックされているため、2つ目の端末を開き、輸出業者がメトリックを正しく収集していることを確認します。 以下の cURL コマンドを実行します。
curl http://localhost:5${sap_monitoring_nr}02/metrics
メトリクスが表示されている場合は、ステータスメッセージも表示されているはずです。 メトリクスが正しく表示されている場合は、エクスポートプロセスを停止します。
hanadb_exporter
用にsystemdアプリケーションを設定します。
hanadb_exporter
用の構成ファイル systemd
は、インストールパッケージに含まれています。 この構成ファイルの変更は必要ありません。 systemd サービスは、構成名(ファイル名としての JSON 拡張子なし)を持つ任意のプロセスを開始することができます。
-
hanadb_exporter
の systemd サービスを有効にするには、以下のコマンドを使用します。sudo systemctl start prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
sudo systemctl enable prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
-
hanadb_exporter
の実行状況を表示するには、以下のコマンドを実行します。sudo systemctl status prometheus-hanadb_exporter@config-${sap_monitoring_nr}-SQL
sap_host_exporterの設定とデーモンの起動
以下の情報を使用して、sap_host_exporterを設定し、デーモンを起動します。
Prometheus sap_host_exporter
HTTP プロトコルを使用して、 SAP システムインスタンスからメトリクスを収集します。 詳細については 、 GitHub リポジトリの公式ページをご覧ください。
SAP エクスポーター構成には、接続と HTTP ポートのすべてのパラメータが含まれています。 接続ごとに個別の構成ファイルを作成する必要があることに注意してください。
/etc/sap_host_exporter/
ディレクトリに構成ファイルを作成します。 SAP のインスタンス名に従って、以下のコマンドを使用して構成ファイルに名前を付けます。
設定ファイルには以下のテンプレートを使用してください。
-
rootユーザーとして、 SAP HANA という設定ファイルを
/etc/sap_host_exporter/sap_host_exporter-${sap_monitoring_nr}-HANA.yaml
というファイル名で作成します。# The listening TCP/IP address and port. address: "0.0.0.0" port: "5<sap_monitoring_nr>03" log-level: "info" sap-control-url: "http://<sap_hana_ip>:<sap_hana_http_port>"
-
rootユーザーとして、 SAP というファイル名のASCS構成ファイルを作成します。ファイル名は
/etc/sap_host_exporter/sap_host_exporter-${sap_monitoring_nr}-ASCS.yaml
です。# The listening TCP/IP address and port. address: "0.0.0.0" port: "5${sap_monitoring_nr}04" log-level: "info" # ASCS instance sap-control-url: "http://<sap_ascs_ip>:<sap_ascs_http_port>"
-
rootユーザーとして、 SAP アプリケーションサーバー(PAS)の最初の構成ファイルを作成します。ファイル名は
/etc/sap_host_exporter/sap_host_exporter-${sap_monitoring_nr}-DI-01.yaml
とします。# The listening TCP/IP address and port. address: "0.0.0.0" port: "5<sap_monitoring_nr>05" log-level: "info" # DI instance (metrics dispatcher server + resources) sap-control-url: "http://<sap_app_server_ip_01>:<sap_app_server_port_01>"
-
rootユーザーとして、2つ目の SAP アプリケーションサーバー(AAS)構成ファイルを作成します。ファイル名は
/etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-DI-02.yaml
とします。# The listening TCP/IP address and port. address: "0.0.0.0" port: "5<sap_monitoring_nr>06" log-level: "info" # DI instance (metrics dispatcher server + resources) sap-control-url: "http://<sap_app_server_ip_02>:<sap_app_server_port_02>"
複数のアプリケーションサーバーがある場合は、 SAP アプリケーションサーバーごとに、さらに構成ファイルを作成します。 各設定ファイルの番号を必ず増やしてください。
-
sap_host_exporter
の各設定をテストします。sap_host_exporter -c /etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-HANA.yaml
-
プロセスが端末をブロックしているので、2つ目の端末を開き、以下のコマンドを実行します。
curl http://localhost:5<sap_monitoring_nr>03/metrics
-
メートル法のデータが表示されていることを確認してください。 メトリクスが表示されない場合は、何らかのエラーメッセージが表示されるはずです。
-
他のエクスポーター構成で同じテストを繰り返します
/etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-ASCS.yaml
/etc/sap_host_exporter/sap_host_exporter-<sap_monitoring_nr>-DI-01.yaml
すべてのエクスポーターが正常に動作している場合は、 systemd
の設定を続行します。
sap_host_exporter
用に systemdサーバー を設定します。
すべての sap_host_exporters
に必要となる追加の systemd
構成ファイルは1つだけです。 systemd
サービスでは、構成名(ファイル名としてJSON拡張子なし)で任意のプロセスを開始できます。
-
システムディレクトリに、rootユーザーとして
sap_host_exporter@.service
というファイルを作成します。/etc/systemd/system/sap_host_exporter@.service
-
以下の内容を変更せずに追加してください。
[Unit] Description=Prometheus sap_host_exporter for Netweaver clusters metrics After=network.target Documentation=https://github.com/SUSE/sap_host_exporter [Service] Type=simple Restart=always ExecStart=/usr/bin/sap_host_exporter --config /etc/sap_host_exporter/%i.yaml ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target DefaultInstance=default
-
システムd構成を再読み込みするには、rootユーザーとして次のコマンドを実行します。
systemctl daemon-reload
-
ユーザーrootとして、すべての構成済みの
sap_host_exporters
に対してサービスを開始し、有効にします。systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-HANA
systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-ASCS
systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-01
systemctl enable --now sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-02
-
ユーザーrootとして、
systemd processes
のステータスを確認します。systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-ASCS
systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-HANA
systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-01
systemctl status sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-02
-
systemd autostart
を有効にします。sudo systemctl enable sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-ASCS
sudo systemctl enable sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-HANA
sudo systemctl enable sap_host_exporter@sap_host_exporter-${sap_monitoring_nr}-DI-01
次のステップ
監視ホストの設定と構成が成功した場合は 、「 Prometheus サーバーのメトリック転送の設定」 に進みます。