デジタル
  • ホームページ
  • ブログ
  • プライバシーポリシー
  • 私たちについて
  • Japanese
    • English
    • Japanese
  • 家
  • /
  • 記事
  • /
  • Amazon Managed Service fo...

Amazon Managed Service for Prometheus を使用して EC2 環境を監視する


2021年4月16日追記:この記事は、Prometheus サーバーでの AWS Signature Version 4 サポート によって導入された変更を反映するように更新されました。

先日、Prometheus メトリクスの取り込み、クエリ、保存を行うフルマネージドでセキュアな Prometheus 互換環境を作成できるAmazon Managed Service for Prometheus (AMP) を発表しました。AWS Management & Governance の以前のブログ記事で、コンテナ化された環境を監視するためにAMPをセットアップする方法を説明しました。いくつかのクリティカルなユースケースでは、コンテナ化はずっと先のことだったり、時には不可能な場合があります。 この記事では、Amazon Elastic Compute Cloud (Amazon EC2) またはオンプレミス環境で稼働しているシステムでどのように AMP を使うのかを説明します。

セットアップ

この例では、以下のステップで説明します。

対応するアーキテクチャは、次のように視覚化することができます。

今回の例では、Ireland (eu-west-1) リージョンを選択しています。サービス別でサポートされている AWS リージョンを確認するには、AWS リージョンサービスリスト をご覧ください。

Amazon EC2 のセットアップ

このウォークスルーの最初のステップは、 EC2 インスタンスをセットアップすることです。そのインスタンスでアプリケーションをホストし、後で作成する AMP ワークスペースにそのメトリクスを転送します。インスタンスにはIAMロールを使用することをお勧めします。このロールには、ポリシーAmazonPrometheusRemoteWriteAccess をアタッチして、インスタンスに最低限のアクセス許可を与えることができます。

デモアプリケーション

インスタンスが設定されたら、インスタンスにログインしてサンプルアプリケーションを実行できます。main.go という名前のファイルを作成し、以下に示す内容を追加してください。HTTP 経由でいくつかのシステムメトリックを自動的に公開するために Prometheus http ハンドラを使用してください。Prometheus クライアントライブラリを使用して、独自のメトリクスを実装することができます。

Amazon Managed Service for Prometheus を使用して EC2 環境を監視する

package mainimport ( "github.com/prometheus/client_golang/prometheus/promhttp" "net/http")func main() { http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8000", nil)}

サンプルアプリケーションを実行する前に、すべての依存関係がインストールされていることを確認しましょう。

sudo yum update -ysudo yum install -y golanggo get github.com/prometheus/client_golang/prometheus/promhttpgo run main.go

アプリケーションは、ポート8000 で稼働している必要があります。この段階で、アプリケーションによって公開されるすべての Prometheus メトリクスを確認できるはずです。

curl -s http://localhost:8000/metrics ...process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gaugeprocess_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gaugeprocess_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gaugeprocess_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gaugeprocess_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gaugeprocess_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gaugepromhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counterpromhttp_metric_handler_requests_total{code="200"} 1promhttp_metric_handler_requests_total{code="500"} 0promhttp_metric_handler_requests_total{code="503"} 0

AMP ワークスペースを作成する

ワークスペースを作成するには、AWS コンソールで AMP にアクセスし、ワークスペースの名前を入力します。

作成後、AMP によってremote write 用の URL とクエリ用の URL が提供されます。

Prometheus サーバーを実行する

expression browser を含む Prometheus の最新安定版をインストールするには、 Prometheus Guide を参照してください。この例では、次のように Amazon Linux に Prometheus v2.26.0 をインストールします。

prometheus.yaml という名前の新しいファイルを作成し、remote_write の設定を AWS コンソールの AMP ワークスペースにあるワークスペース IDで書き換えてください。(訳注: 以下の内容でprometheus.yamlを作成し、 をAMPワークスペースのIDに置き換えてください)

global:scrape_interval: 15sexternal_labels: monitor: 'prometheus'scrape_configs:- job_name: 'prometheus' static_configs:- targets: ['localhost:8000']remote_write:- url: https://aps-workspaces.eu-west-1.amazonaws.com/workspaces//api/v1/remote_write queue_config:max_samples_per_send: 1000max_shards: 200capacity: 2500 sigv4:region: eu-west-1

Prometheus を実行し、アプリケーションメトリクスを AMP に送信する準備がようやく整いました。

prometheus --config.file=prometheus.yaml

メトリクスが AMP に送られるようになりました! Prometheus サーバーのコンソールに出力が表示されるはずです。

Grafana でメトリクスを可視化する

Grafana は、 Prometheus のメトリクスを可視化するためによく使われているプラットフォームです。ローカルマシン で、 Grafana をインストール (訳注: Grafana 7.3.5、またはそれより新しい必要があります)し、AMP ワークスペースをデータソースとして設定しましょう。 ローカル環境に、ワークスペースをクエリするための次の権限またはそれ以上の権限があることを確認してください。(訳注: 必要な権限を利用可能な Access Key ID および Secret Access Key をローカル環境にご用意ください)

{ "Version": "2012-10-17", "Statement": [{"Action": [ "aps:GetLabels", "aps:GetMetricMetadata", "aps:GetSeries", "aps:QueryMetrics", "aps:DescribeWorkspace"],"Effect": "Allow","Resource": "*"} ]}

IAM の権限で AMP へのクエリに署名するため、Grafana を実行する前に AWS Sigv4 認証を有効にします。

export AWS_SDK_LOAD_CONFIG=trueexport GF_AUTH_SIGV4_AUTH_ENABLED=truegrafana-server --config=/usr/local/etc/grafana/grafana.ini \--homepath /usr/local/share/grafana \cfg:default.paths.logs=/usr/local/var/log/grafana \cfg:default.paths.data=/usr/local/var/lib/grafana \cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugin

Grafana にログインし、データソース設定ページ /datasources に移動して AMP ワークスペースをデータソースとして追加します。URL は末尾に/api/v1/query をつけないようにしてください。Sigv4 auth を有効にして、適切なリージョンを選択して保存してください(訳注:SigV4 Auth Details のAuthentication Provider でクレデンシャル情報の設定もしてください)。

これで、アプリケーションメトリクスが利用できるようになりました。例えば、メトリクスブラウザでscrape_duration_seconds{} を設定してみてください。以下のような画面が表示されるはずです。

まとめ

この記事では、最近発表された Amazon Managed Service for Prometheus を使って、Amazon EC2 インスタンスを使った非コンテナ化環境でのメトリクス収集のアーキテクチャのセットアップを詳しく説明しました。EC2 インスタンス上でメトリクスの収集を自動化するために、関連するすべての依存関係を持つ AMI を事前設定するか、AWS Systems Manager を使うことができます。 Amazon Managed Service for Prometheus、 Amazon Managed Service for Grafana、そして OpenTelemetry についてはリンク先をご参照ください。

Rodrigue Koffi

Rodrigue は Amazon Web Services のソリューションアーキテクトです。彼は分散システム、オブザーバビリティ、機械学習に情熱を傾けています。DevOpsとソフトウェア開発の経験が豊富で、Go言語でのプログラミングが好きです。Twitter ID は @bonclay7 です。

翻訳はソリューションアーキテクトの 藤嶋 が担当しました。原文はこちらです。本記事は翻訳にあたり、一部の画面キャプチャを翻訳時点の最新版に差し替えており、一部記述を追加しています。


08 / May / 2022 デジタル

ナビゲーションリスト

セットアップ Amazon EC2 のセットアップ デモアプリケーション AMP ワークスペースを作成する Prometheus サーバーを実行する Grafana でメトリクスを可視化する まとめ

カテゴリー

ブログ

関連記事

10.Apr.2023

義足製作からシューズ販売員へ 医療知識を駆使、足から延ばす健康寿命 京王百貨店小川直子

かつては人生60年時代と言われていたが、今では人生100年時代に突入している。街を見ていると元気なシニア層が増えた。だが、高齢になると足腰の強さが寿命にも直結してくるらしい。高齢者に限らず、少々歩きにくい...

09.Apr.2023

清原果耶主演『ファイトソング』に東啓介、藤原さくら、若林時英、窪塚愛流、莉子が出演

(左上から時計回りに)東啓介、藤原さくら、莉子、窪塚愛流、若林時英(c)TBS 2022年1月期のTBS火曜ドラマ『ファイトソング』に、東啓介、藤原さくら、若林時英、窪塚愛流、莉子が出演することが決定した。【写真】...

08.Apr.2023

在宅勤務(リモートワーク)を効率化するガジェット&アプリ総まとめ

見栄えが良ければ、尚よし。在宅で働くのが当たり前になって、新しいアイテムが必要だと感じる瞬間も増えたような気がしませんか? さまざまなガジェットを徹底比較してオススメを提案してくれることで大人気の米国...

07.Apr.2023

USB Type-Cケーブル1本でノートPCと簡単接続できる、 縦に広いWUXGA解像度の24.1型モニターを発売

EIZO株式会社(本社:石川県白山市、代表取締役社長:実盛 祥隆)は、24.1型WUXGA液晶モニター「FlexScan EV2485」を9月28日に発売します。価格はオープン価格※です。※オープン価格の製品は標準価格を定めていません。...

ホット記事

EVsmartブログ電気自動車や急速充電器を快適に 気になるトヨタの電気自動車『bZ4X』/バッテリー残量の%表示なし【編集部】 人気記事 最近の投稿 カテゴリー

EVsmartブログ電気自動車や急速充電器を快適に 気になるトヨタの電気自動車『bZ4X』/バッテリー残量の%表示なし【編集部】 人気記事 最近の投稿 カテゴリー

23.Apr.2022
レノボの8.8インチ片手タブ「Legion Y700」完全スペック公開!【価格は4万円台か】

レノボの8.8インチ片手タブ「Legion Y700」完全スペック公開!【価格は4万円台か】

01.May.2022
#初歩からのリモートデスクトップ ~外出先から自宅のパソコンへ接続(IPv4)編

#初歩からのリモートデスクトップ ~外出先から自宅のパソコンへ接続(IPv4)編

28.Apr.2022
MacとiPadを横に並べるだけで直接連携が可能になる「ユニバーサルコントロール」の仕組みとは?

MacとiPadを横に並べるだけで直接連携が可能になる「ユニバーサルコントロール」の仕組みとは?

30.Mar.2022

タグ

複数のモニターをセットアップする方法

Copyright © 2023 homeappliancesbrands.com. All rights reserved.