メトリクス収集では、psqlコマンドを利用してメトリクスを取得し、AWS CLIでメトリクスをAmazon CloudWatchに転送します。
事前準備
AWSのドキュメントを参照して、AWS CLIをインストールし、Amazon CloudWatchにメトリクスを転送するための設定を実施します。
メトリクス収集スクリプトの作成
メトリクス収集のサンプルスクリプトは、Fujitsu Enterprise Postgresのインストールディレクトリ配下の以下に格納されています。サンプルスクリプトを参考にしてメトリクス収集のスクリプトを作成します。サンプルスクリプトが収集するメトリクスは、“8.8.3 サンプルスクリプトが収集するメトリクス”を参照してください。
インストールディレクトリ\share\putting-metrics-to-monitoring-tool.ps1.sample
サンプルスクリプトに定義されている以下の接続情報を編集してください。
メトリクスを格納するAmazon CloudWatchの接続先
“NAMESPACE”にメトリクスを収集するAmazon CloudWatchのNamespaceを定義します。
$NAMESPACE="YOUR Cloud Watch NAMESPACE"
メトリクスを収集するデータベースの接続先
下記の変数を編集して、メトリクスを取得するPostgreSQLの情報を定義します。
PGHOST:接続先のホスト名を指定します。
PGPORT:接続先のポートを指定します。
PGDATABASE:接続先のデータベース名を指定します。
PGUSER:接続に利用するPostgreSQLユーザーを指定します。全セッションに関する全統計情報を参照するために、スーパーユーザーまたは組み込みロールpg_read_all_statsの権限を持つロールを指定します。
環境変数の設定
メトリクス収集スクリプトを実行するには、環境変数PATHにFujitsu Enterprise Postgres サーバ機能およびAWS CLIがインストールされているパスを設定する必要があります。
環境変数PATHはメトリクス収集スクリプトを実行するユーザーの環境変数に追加するか、スクリプト内に追加します。
以下はAWS CLIをC:\Program Files\Amazon\AWSCLIV2にインストールしている場合の設定例です。
set PATH = "C:\Program Files\Fujitsu\fsepv<x>server64\bin;C:\Program Files\Amazon\AWSCLIV2;%PATH%"
スクリプト内に環境変数を設定する場合は、スクリプト内の先頭にあるデータベース接続先の環境変数の前に記述してください。
$env:PATH = "C:\Program Files\Fujitsu\fsepv<x>server64\bin;C:\Program Files\Amazon\AWSCLIV2;" + $env:PATH
データベース接続の認証情報の定義
必要に応じて、パスワードやSSL通信の証明書の格納場所を環境変数や設定ファイルに定義します。
メトリクス収集スクリプトの定期実行
タスクスケジューラーなどを利用して、aws cloudwatch put-metric-dataコマンドでメトリクスを転送できるOSユーザーでメトリクス収集スクリプトを定期実行します。また、PowerShellのバージョンは7以降である必要があります。
10分ごとにメトリクスを収集するための、タスクスケジューラーの定義例を下記に示します。
# タスクスケジューラーの画面 「タスクスケジューラーライブラリ」を右クリック -> 基本のタスクを作成 を選択 # タスク作成時の定義 1. 基本タスクの作成 名前」と「説明」を入力して「次へ」をクリック 2. トリガー 毎日」を選択して「次へ」をクリック 3. 毎日 開始:任意の日付 間隔:1日 を選択して「次へ」をクリック 4. 操作 「プログラムの開始」を選択して「次へ」をクリック 5. プログラムの開始 下記を入力して「次へ」をクリック プログラム/スクリプト:C:\Windows\System32\cmd.exe 引数の追加:/c ""C:\Program Files\PowerShell\7\pwsh.exe" -ExecutionPolicy Bypass -File "(スクリプト配置先)\putting-metrics-to-monitoring-tool.ps1" >> "(ログ格納先)\put-metrics.log" 2>&1" 6. 完了 「[完了]をクリックしたときに、このタスクの[プロパティ]ダイアログを開く」にチェックを入れ「完了」をクリック # プロパティ画面 1. 全般タブ 「ユーザーがログオンしているかどうかにかかわらず実行する」にチェック 「ユーザーまたはグループの変更」でタスクを実行するユーザを定義 2. トリガータブ 繰り返し間隔:ボックスにチェックして、プルダウンから10分間を選択
この設定例では、スクリプト標準出力をログファイル“put-metrics.log”に出力し、スクリプトの正常/異常動作を検出することができます。なお、この例ではログファイルが出力され続けるため、タスクスケジューラーなどを利用して定期的なログのローテーションと削除を推奨します。
メトリクス収集間隔は収集目的に応じて決定してください。以下は、収集間隔の例です。
運用傾向を確認するために監視する場合は、10分や1時間に1回程度の長い間隔
急激なコネクション数の増加など負荷上昇に対して早急に対処するために監視する場合には、1分に1回程度の短い間隔
収集間隔が短い場合は、その分データベースへの問い合わせが増えるため、負荷が上昇することがあります。業務負荷を考慮して、実行間隔と実行するメトリクス収集のためのクエリを決定してください。