1. はじめに
- 前回までの記事で、Prometheusを用いた監視の基本設定を確認した。
- 自作の監視サーバに保存されるメトリクスデータを安全かつ長期間保存するため、メトリクスデータをAmazon Managed Service for Prometheus(以下AMP)に連携する設定を確認する。
- 関連記事は以下。
-
【初心者】Prometheus/Loki/Grafanaを使ってみる (メトリクス/ログの収集と表示)
- メトリクスとログを収集しGrafanaで表示させる。
-
【初心者】Prometheus/Loki/Grafanaを使ってみる #2 (AlertManagerによるアラーム通知)
- AlertManagerを追加し、CPU高負荷時にslackへの通知を行う。
- 【初心者】Prometheus/Loki/Grafanaを使ってみる #3 (Amazon Managed Service for Promethus連携)
- 本記事。自分のPrometheusで収集したメトリクスをAmazon Managed Service for Prometheusに連携する。
-
【初心者】Prometheus/Loki/Grafanaを使ってみる (メトリクス/ログの収集と表示)
2. やったこと
- AMPのワークスペースを作成する。
- 既存のPrometheusにて、AMPへデータを送信するよう設定変更する。
- 既存のGrafanaの接続先としてAMPを追加し、AMP側のデータを参照する。
3. 構成図
4. 手順
4.1 AMPワークスペースの作成
- AMPのワークスペースを作成する(名前しか設定項目がない)。
4.2 IAMロールの作成とアタッチ
- 公式ドキュメント「Set up metrics ingestion from an Amazon EC2 instance using remote write」を参照し、既存のPrometheusがAMPにデータを書き込むための権限(AmazonPrometheusRemoteWriteAccess)及び既存のGrafanaがAMPからデータを読み出す権限(AmazonPrometheusQueryAccess)を含むIAMロールを作成し、監視サーバ(Prometheus/Grafanaインストール済)のインスタンスにアタッチする。
4.3 既存Prometheusの設定追加
- 既存のprometheus.ymlに、AMPにデータを送信する設定(AMPの書き込み用URL及びAMPのリージョンを指定)を追加する。
/etc/prometheus/prometheus.yml (追加部分のみ)
remote_write:
- url: https://aps-workspaces.us-west-2.amazonaws.com/workspaces/xxxxxx/api/v1/remote_write
queue_config:
max_samples_per_send: 1000
max_shards: 200
capacity: 2500
sigv4:
region: us-west-2
- 設定変更のためにサービスを再起動する。
[ec2-user@ip-10-0-0-249 ~]$ sudo systemctl restart prometheus.service
4.4 既存Grafanaの設定追加
- 既存のGrafanaから、AMPに接続できるように設定を追加する。
- 公式ブログ「EC2 で Grafana をセットアップして Amazon Managed Service for Prometheus のメトリクスをクエリする」に従い、GrafanaのSig v4認証対応(デフォルトは無効)を有効にする。具体的には、設定ファイル(grafana-server.service)の[Service]の箇所に以下2行追加する。
/usr/lib/systemd/system/grafana-server.service
[Service]
Environment="GF_AUTH_SIGV4_AUTH_ENABLED=true"
Environment="AWS_SDK_LOAD_CONFIG=true"
- 設定変更の反映を行う。
[ec2-user@ip-10-0-0-249 ~]$ sudo systemctl daemon-reload
[ec2-user@ip-10-0-0-249 ~]$ sudo systemctl restart grafana-server
- Grafanaの管理画面から、Data source > + Add new data source > Prometheusを選択し、以下の設定の上、「Save & Test」を押して登録する。
- Name: AMP (既存のPrometheusと区別する)
- Prometheus server URL: AMPの「クエリURL」の最後の「/api/v1/query」を除いた部分
- Auth - SigV4 auth: 有効(スライダーを右に)
- SigV4 Auth Details - Authentication Provider: AWS SDK Default
- Default Region: us-west-2 (今回AMPをus-west-2に作成しているため)
- 接続成功後、data source としてAMPを選択した状態で、CPU使用率などのクエリが可能なことを確認する。
GrafanaでSigV4を有効にする方法について、最初公式ドキュメント「Set up Grafana open source or Grafana Enterprise for use with Amazon Managed Service for Prometheus」を見ていたが、そこに記載されている内容では有効化できず、AWSブログの内容のほうを用いた。
5. 参考サイト
6. 所感
- やっとPrometheus周りの超基本が確認できたため、次にkubernetes環境での動作確認にチャレンジしたい。