LoginSignup
3
0

More than 1 year has passed since last update.

Amazon Managed Service for PrometheusとAmazon Managed Grafana使ってみた

Posted at

Amazon Managed Service for PrometheusとAmazon Managed Grafanaを使ってRaspberry Piのメトリクスを可視化してみました。(名前が長い。。そして統一感がない。。)

Amazon Managed Service for Prometheusのセットアップ

ap-northeast-1.console.aws.amazon.com_prometheus_home_region=ap-northeast-1(iPad).png

ワークスペースの名称を決めるだけです。

ap-northeast-1.console.aws.amazon.com_prometheus_home_region=ap-northeast-1(iPad) (1).png

出来上がり。超簡単

ap-northeast-1.console.aws.amazon.com_prometheus_home_region=ap-northeast-1(iPad) (2).png

Raspberry Pi4からメトリクスを送信

IAMユーザーのアクセスキー情報が必要ですので、IAMユーザーを作成します。
必要なポリシーはこんな感じです。aps:RemoteWriteだけでいいかもしれません。

注意点はなんといってもサービス名が AMP ってところです。さらにActionの接頭辞は aps (笑)

console.aws.amazon.com_iam_home(iPad) (1).png

console.aws.amazon.com_iam_home(iPad) (2).png

Docker ComposeでPrometheusとNode exporterを起動します。

docker-compose.yaml
version: '3.8'

services:
  prometheus:
    image: quay.io/prometheus/prometheus:latest
    network_mode: host
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  node-exporter:
    image: quay.io/prometheus/node-exporter:latest
    container_name: node_exporter
    command:
      - '--path.rootfs=/host'
    network_mode: host
    pid: host
    restart: unless-stopped
    volumes:
      - '/:/host:ro,rslave'

remote_writeのところに認証情報をセットします。

prometheus.yml
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node'

    static_configs:
    - targets: ['localhost:9100']

remote_write:
- url: https://aps-workspaces.ap-northeast-1.amazonaws.com/workspaces/ws-0ae04b80-d5e2-4b2c-a198-5a0c60989b58/api/v1/remote_write

  sigv4:
    # The AWS region. If blank, the region from the default credentials chain
    # is used.
    region: ap-northeast-1

    # The AWS API keys. If blank, the environment variables `AWS_ACCESS_KEY_ID`
    # and `AWS_SECRET_ACCESS_KEY` are used.
    access_key: XXXXXXXXXXXXXXXXXXXX
    secret_key: XXXXXXXXXXXXXXXXXXXX

起動します

bash
# docker-compose up

Amazon Managed Grafanaのセットアップ

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad).png

ワークスペース名をつけます

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (1).png

Grafanaの画面にログインする際に使う認証情報を選択します。AWS SSOにしてみました。

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (2).png

GrafanaがアクセスするAWSのリソースを選択します。
あとからも変更できます。

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (4).png

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (5).png

これで作成は完了です。
続いてログインするユーザーを追加します。「ユーザーとユーザーグループの設定」をクリック

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (10).png

今回はAWS SSOで作成したグループを追加します。

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (12).png

権限は閲覧者と管理者の2つあります。デフォルトが閲覧者で管理者に変更する場合はチェックを入れて「管理者を作成する」をクリックします。(閲覧者に戻す方法はないのかな?)

ap-northeast-1.console.aws.amazon.com_grafana_home_region=ap-northeast-1(iPad) (13).png

Grafanaログイン

マネジメントコンソールに表示されるワークスペースURLからアクセスします。設定したAWS SSOのユーザーでログインするとGrafanaの画面が表示されます。メニューにAWSのアイコンがありますね。

g-35789bdbc7.grafana-workspace.ap-northeast-1.amazonaws.com__orgId=1(iPad).png

データソースにAmazon Managed Service for Prometheusを追加します。
AWSアイコンからデータソースをたどると追加できます。

g-35789bdbc7.grafana-workspace.ap-northeast-1.amazonaws.com__orgId=1(iPad) (2).png

ここまでできれば通常のGrafana同様です。

g-35789bdbc7.grafana-workspace.ap-northeast-1.amazonaws.com__orgId=1(iPad) (3).png

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0