Open8

AWS サーバのモニタリングめも

ピン留めされたアイテム
Eri AsaEri Asa

AWS SOAの試験対策問題をとく中で、
CloudWatchの問題から実際の操作のイメージができないので、
以下のハンズオンやりながらメモ。
最初の方しかやれてない。→もう後半!→終わった

学習一覧

  • 環境構築
  • EC2、ALB、RDSの標準メトリクス確認
  • カスタムメトリクス取得
  • CloudWatch Alarmsの設定
  • CloudWatch Logs
  • CloudWatch Logs Insightsでサーバログの分析
  • CloudWatch ダッシュボード作成
  • Amazon EventBridge(以前CloudWatch Events)

ハンズオン資料

Eri AsaEri Asa

環境構築(復習用)

Cfnで構築

用意されたテンプレートファイルをアップロード
スタック名monitoring-1、パラメータそのまま、スタックオプションの設定もそのまま
Image from Gyazo
Image from Gyazo

WordPressセットアップ

EC2①と②

Eri AsaEri Asa

CloudWatchメニュー

Image from Gyazo

タイムゾーン変更

データに応じてグラフの時間軸の間隔を変更する(今回の場合は直近データしかないので45分)
Image from Gyazo
Image from Gyazo
時間軸の間隔45分、現地の時間が表示
Image from Gyazo

EC2メトリクス

Image from Gyazo
Image from Gyazo

CPU使用率

Image from Gyazo

ネットワーク使用量

Image from Gyazo

ELBメトリクス

Image from Gyazo
Image from Gyazo
HealthyHostCount
Image from Gyazo

RDB

Image from Gyazo
データベース別メトリクス
Image from Gyazo

Read IOPS、Write IOPS

Image from Gyazo

データの取得間隔 5分⇒1分へ変更

Image from Gyazo
グラフの見え方変更
Image from Gyazo

カスタムメトリクス取得

Image from Gyazo
Image from Gyazo

ディスク使用率

Image from Gyazo
他メモリ使用率など

Eri AsaEri Asa

CloudWatch Alarmsの設定

各種メトリクスに閾値を設定して、CloudWatchがそれを検知、発報

EC2ディスク使用率90%超えたら発報

アラーム作成
Image from Gyazo
メトリクスの選択
Image from Gyazo
カスタム名前空間 CWAgent
Image from Gyazo
disk_used_percent
Image from Gyazo
Image from Gyazo
アラーム発報の間隔
Image from Gyazo
条件
どいう条件でアラームを発報するか
Image from Gyazo

アクションの設定

メトリクスが閾値を超えて、アラーム状態となった場合に
メール通知を行うようにする。
Image from Gyazo
リソースに対してアクションを設定できる
EC2だとインスタンス停止削除再起動など
Image from Gyazo
アラーム名を入力
Image from Gyazo
できたー
アラーム作成直後は「データ不足」と表示されるが、データが溜まると状態が変わり「OK」になる
Image from Gyazo
Image from Gyazo

Eri AsaEri Asa

CloudWatch Logs

各種サービスのログ監視、保存、アクセス
ログを一つの場所に集約することで運用効率化ができる

ディレクトリ階層は ロググループ > ログストリーム > ログイベント となっている。
ロググループはアプリやミドルウェア単位で集約され、
ログストリームはサーバのIDごとで集約、ログインベントはアプリケーションログが表示される。

ロググループ

Image from Gyazo

保持期間の設定

ログの有効期限が設定できる、デフォルトでは「失効しない」
Image from Gyazo
Image from Gyazo

ログストリーム

インスタンスIDごとにログストリームが格納される
Image from Gyazo

ログイベント

インスタンスIDをクリックすると、中にWordPressのログが格納されてる
Image from Gyazo

ログ検索

ログ表示の期間やtime zoneも変更可能
Image from Gyazo

Eri AsaEri Asa

CloudWatch Logs Insightsでサーバログの分析

ロググループ選択
Image from Gyazo
Image from Gyazo
クエリ実行
Image from Gyazo

クエリ修正

parseクエリ 一時的な項目作成

Image from Gyazo

parse '* - * [*] "* * *" * * * *' as host, identity, dateTimeString, httpVerb, url, protocol, statusCode, bytes, refferrer, userAgent
| filter statusCode like /(4\d\d)/

Image from Gyazo

filterコマンド 条件に基づいてフィルタリング

Image from Gyazo
Image from Gyazo
ステータスコード400番台で絞って表示
Image from Gyazo

Eri AsaEri Asa

CloudWatch ダッシュボード作成

複数のメトリクスやログを、ひとつの画面に集約できる

新規作成

Image from Gyazo
Image from Gyazo

ウィジェットの追加

今回はEC2CPU使用率が見たいので線
Image from Gyazo
メトリクス選択
Image from Gyazo
EC2
Image from Gyazo
Image from Gyazo

Image from Gyazo

Image from Gyazo

テキストウィジェット

テキスト選択
Image from Gyazo
左側のテキストボックスにマークダウン形式で入力する。>ウィジェットの作成
Image from Gyazo
ダッシュボードに作ったテキストウィジェットが追加される。
Image from Gyazo
マウスでウィジェットの左下を引っ張ることで、ウィジェット幅の変更が可能
Image from Gyazo
のびる~のびる~
Image from Gyazo

ログテーブル

クエリの実行結果をダッシュボードに追加できる
Image from Gyazo
CloudWatch Logs Insights遷移する
任意のロググループを選択して、クエリを設定
ここではwordpress_access_log
Image from Gyazo
WordPressのロググループがダッシュボードに追加される
Image from Gyazo

ダッシュボードの保存

追加したウィジェットが保存される
Image from Gyazo

Automatic dashboard

CloudWatchがデフォルトで提供しているダッシュボード
Image from Gyazo
概要からサービスごとのダッシュボードが選択できる
Image from Gyazo

リソースグループの作成

ダッシュボードの表示を条件で絞ることができる
Image from Gyazo
Cfnで管理しているリソース単位で表示したいので、
Cfnスタックベースを選択
Image from Gyazo
Cfnで作ったリソースたち
Image from Gyazo

Image from Gyazo
作成したグループを選択
Image from Gyazo

Image from Gyazo

Eri AsaEri Asa

Amazon EventBridge (旧CloudWatch Events)

EC2が停止したときにSNSでメールを通知する
Image from Gyazo

Image from Gyazo

Image from Gyazo

現在の設定がJSON形式で表示される(自動)
Image from Gyazo

Image from Gyazo

Image from Gyazo

Image from Gyazo
SNSで設定しているメールアドレス宛に通知が届く