メトリクス収集では、psqlコマンドを利用してメトリクスを取得し、AWS CLIでメトリクスをAmazon CloudWatchに転送します。
事前準備
AWSのドキュメントを参照して、AWS CLIをインストールし、Amazon CloudWatchにメトリクスを転送するための設定を実施します。
メトリクス収集スクリプトの作成
メトリクス収集のサンプルスクリプトは、Fujitsu Enterprise Postgresのインストールディレクトリ配下の以下に格納されています。サンプルスクリプトを参考にしてメトリクス収集のスクリプトを作成します。サンプルスクリプトが収集するメトリクスは、“9.8.3 サンプルスクリプトが収集するメトリクス”を参照してください。
インストールディレクトリ/share/putting-metrics-to-monitoring-tool.sh.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がインストールされているパスを設定する必要があります。
以下はAWS CLIを/awscli/binにインストールしている場合の環境変数の設定例です。
スクリプト内に環境変数を設定する場合は、スクリプト内の先頭にあるデータベース接続先の環境変数の前に記述してください。
export PATH=/opt/fsepv<x>server64/bin:/awscli/bin:$PATH
データベース接続の認証情報の定義
必要に応じて、パスワードやSSL通信の証明書の格納場所を環境変数や設定ファイルに定義します。
メトリクス収集スクリプトの定期実行
crontabなどを利用して、aws cloudwatch put-metric-dataコマンドでメトリクスを転送できるOSユーザーでメトリクス収集スクリプトを定期実行します。
10分ごとにメトリクスを収集するためのcrontabの定義例を下記に示します。
$ cat /var/spool/cron/<実行ユーザ> */10 * * * * /スクリプト配置先/putting-metrics-to-monitoring-tool.sh
“crontab -e”コマンドでスクリプトが定期実行されるように編集します。
crontabで実行する場合、rsyslogを利用して、スクリプト標準出力をログファイルに出力し、スクリプトの正常/異常動作を検出することができます。
メトリクス収集間隔は収集目的に応じて決定してください。以下は、収集間隔の例です。
運用傾向を確認するために監視する場合は、10分や1時間に1回程度の長い間隔
急激なコネクション数の増加など負荷上昇に対して早急に対処するために監視する場合には、1分に1回程度の短い間隔
収集間隔が短い場合は、その分データベースへの問い合わせが増えるため、負荷が上昇することがあります。業務負荷を考慮して、実行間隔と実行するメトリクス収集のためのクエリを決定してください。