2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HULFT10 for Container Servicesの運用監視のためにCloudWatchのダッシュボードを作成してみた

Last updated at Posted at 2024-04-04

はじめに

最近の記事でもお察しの通り、いわゆるコンテナ版HULFTについて一通り整理しています。今回は、HULFT10 for Container Servicesの「運用監視」について整理します。

HULFT10 for Container ServicesはAWS上のサービスであるため、運用監視もAWSサービス(CloudWatch)を活用します。

Amazon CloudWatchとは

Amazon CloudWatchはAWS、オンプレミス、および他のクラウド上のリソースとアプリケーションを観察及び監視するサービスです。

役割 仕組み
アプリケーションの監視
・パフォーマンスの変化に対応
・リソースの使用を最適化
・運用状況に関する洞察
基本的にはメトリクスで作られる。
メトリクスをリポジトリに置き、これらの
メトリクスを基に統計取得します。

CloudWatchの仕組みを図で示すと下記のようになります。

001_CloudWatchイメージ.png

HULFT10 for Container Servicesの監視対象

まず運用監視にあたって、HULFT10 for Container Servicesのログについて整理したのがこちら。3か所に各種ログが保持されます。
image.png

①HULFT10 for Container Services管理画面で確認できるログ

HULFT配信履歴や集信履歴。転送エラーが発生したときに利用者がはじめに確認するログです。エラー概要について確認できます。
image.png

②CloudWatchで確認できるログ

HULFT10 for Container Servicesに関連するAWSサービスのログをCloudWatchのロググループから確認できます。CloudWatchで収集されたログはダッシュボードで可視化できます。
image.png

③S3バケット内に保持されるログ

下記の通り、2つのバケットにそれぞれログが保存されます。

バケット名 内容
s3-accesslog-hulft-xxxxxxx S3のサーバアクセスログ
s3-hulft-xxxxxxx Amazon Application Load Balancer アクセスログ
s3-hulft-xxxxxxx Amazon Network Load Balancer アクセスログ
s3-hulft-xxxxxxx VPCフローログ

※バケット名は、機能Update等により変更になる可能性があります。

これら大きく3か所に配置されるログを利用して、HULFT10 for Container Servicesの運用監視を実施します。

AWSのコンテナ監視とは

AWSサービスや各種リソースの監視方法としては、2通りあります。

  • Container Insights の有効化
  • CloudWatchダッシュボードの作成

HULFT10 for Container ServicesはAWS ECSサービスが基盤です。

Container Insightsの有効化

AWSでは、「Container Insights」というコンテナ稼働リソースの監視に特化した機能が用意されています。

「Container Insights」有効化のPoint①
コンテナアプリケーションとマイクロサービスのメトリクスやログを収集、集計してくれる

「Container Insights」有効化のPoint②
Amazon ECSのタスクやサービスライフサイクルイベントをContainer Insightsコンソールで確認できる

Container Insightsの有効化は 「AWS CLI」で実施します。
コマンドは下記の通り。
002_投入コマンド.png

尚、「--cluster」で指定するクラスターは、HULFT10 for Container Servicesの場合、下記の通り確認します。
(参考記事)HULFT10 for Container Services環境構築してみた

 ①CloudFormation Template2 の実行スタックのリソースの ECSSummary1
 ②ECSSummary1 のリソースで ECS1
 ③ECS1 のリソースの EcsCluster の物理IDの値
003_クラスター特定.png

AWS CLI」でコマンド実行が正常にされると、Container Insightsが有効になります。また、「ECSコンソール」で有効化されたことを確認できます。
004_ecsコンソール.png
対象クラスターのCloudWatchモニタリングが「☑Container Insights」になります。
005_ContainerInsight有効.png

また、CloudWatchのContainer Insights-「コンテナマップ」でコンテナの状態を確認することも可能になります。
006_コンテナマップ.png

CloudWatchダッシュボードの作成

CloudWatchではダッシュボードを作成し、各種AWSリソースに対する関する設定を行い、任意で監視内容を可視化することができます。

今回は、HULFT10 for Container Services の運用に関連するメトリクスとログをモニタリングできるようにしてみます。

CloudWatchコンソール(ウィジットの追加)

ダッシュボード名を指定し、空のダッシュボードを作成します。
007_ダッシュボード新規作成1.png

ダッシュボード右上の[+]を押下し、ウィジェット(グラフ等)が追加できます。

HULFT10で使用している、ウィジェットを作成してみます。

ECSのメトリクス「CPUUtilization(ECSのCPU使用率のグラフを表示)」があるので、そのメトリクスのグラフをダッシュボードに追加します。
008_ウィジェット追加1.png
設定内容は下記の通り。
・データソースタイプ「CloudWatch」
・ウィジェットの設定
  ▽データ型:「メトリクス」
  ▽ウィジェットのタイプ:「線(折れ線グラフ)」

メトリクスグラフの追加で、グラフ化するメトリクスを選択します。

009_メトリクス選択.png

「ECS」-「ClusterName,ServiceName」を選択し、メトリクス名が「CPUUtilization」のメトリクスを2つチェックします。

HULFT10 for Container Servicesは2つのコンテナサービスで構成されるため、メトリクスは2つチェックする必要があります。
(管理コンテナ:Controlサービス、転送コンテナ:transferサービス)

ウィジェットの作成でダッシュボードに下記のようなグラフが追加されます。
これで、ECSのCPU使用率(サービス毎)のウィジェットが作成されました。
010_グラフ.png

監視目的に合うメトリクスとそのメトリクスを視覚化するのに適したグラフを選択しウィジェットを追加することで、使いやすいダッシュボードが好きにカスタマイズできます!

CloudWatchコンソール(ログの表示)

CloudWatchのロググループで確認できるログは、簡単にダッシュボードに表示できます。
ログの出力内容にもよりますが、監視ポイントとしたいログを他のログに埋もれないように、監視条件にあったログだけをダッシュボードに表示します。

ログのインサイト画面を表示します。CloudWatchコンソールで「ログ」-「ログのインサイト」に移動します。

011_ログインサイト1.png

下記の通り、対象の「ロググループ」と「表示条件」を設定します。
  ・ロググループ : HULFT10のcontrolのログ
  ・条件     : ログレベルがERROR

ロググループは選択するだけでOKです。条件の設定は、ログの書式を確認し、クエリを編集する必要があります。

「メッセージの書式確認」は、「デフォルトで表示されているクエリを実行する」ことで、同じ画面内で確認できるようになります。

012_ログ書式確認.png
下記の通り設定して、クエリ「実行」を押下。
  ・クエリ編集   : 3行目 limit 1000 ⇒ limit 10

Logs(10)の出力結果の1行目の▶をクリックし、@message を確認します。
013_ログ書式結果.png

ログの書式がわかったら、抽出条件に合うようにクエリを編集します。
今回は@message内のログレベル([INFO]となっている箇所)が[ERROR]のログを抽出する必要があるので、下記のようなクエリにします。
014_ログクエリ.png
2行目と3行目にログレベルがERRORという条件のために追加したクエリです。
画像では見えていませんが、5行目にlimitの記載があります。
015_ログクエリ詳細.png
 parseで@messageの内容を3つの情報に分解して、それぞれloggingxxxxのように名前付け
 filterでloggingTypeがERRORのデータだけを抽出

クエリの編集後に、クエリの実行を行なって問題がなければ、ダッシュボードに追加を押下します。
017_ダッシュボードに追加.png

「ダッシュボードに追加」の画面で、作成したダッシュボードを選択し、「ダッシュボードに追加」を押下します。

016_ダッシュボード1.png

ダッシュボードにログを出力することができました。

これまでの手順の通り、EFSのストレージ容量やECSのCPUクレジット数など追加して、下記のようなダッシュボードが作成できました。
018_ダッシュボード.png

最後に

いかがでしたでしょうか。コンテナ運用監視についてどんなことができるか確認してみました。AWS CloudWatchはまだまだ機能がありますので、もっと色々と使ってみたいと思います。またそれは別記事でご紹介できたらと思います!

このブログでは、今後も様々なTopics記事や接続検証等、皆さんの参考になるような記事を投稿していきたいと思います!
ここまで読んでいただきありがとうございました。それでは、また!:raised_hand:

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?