[AWS]システムを監視する方法


2020年2月11日現在の内容です。

構成イメージ

用語説明

システム監視

システムを正常な状態に保てるよう、稼働状況やリソースを監視すること

目的

  • すぐに障害発生を確認できるようにする
  • 復旧にすぐに取りかかれるようにする

内容

  1. 正常な状態を監視項目 + 正常な結果の形で定義する
  2. 正常な状態でなくなった際の対応方法を監視項目ごとに定義する
  3. 正常な状態であることを継続的に確認する
  4. 正常な状態でなくなった場合に通知を行い、すぐ正常な状態に復旧させる

監視の種類

死活監視

  • 正常にシステムが動作していることを確認

メトリクス監視

  • パフォーマンスを定量的に確認
  • 指標を決め、指標が閾値以上・以下となっていることを確認

監視をする際のポイント

  1. システムや利用状況は変動するので、足りない監視を都度追加していく
    • 項目が多すぎると、監視疲れする
  2. 最初は基本的な項目で問題ない
    • CPU,メモリ,ディスク,ネットワークの使用率・枯渇
      • これらの情報を確認できれば、障害がいつ・どこで発生したものか特定できる

CloudWatch

AWSサービスの監視やモニタリングができる監視サービス

概要

  • AWSサービスのメトリクス(リソースの状況)を監視する
  • メトリクスに対して閾値を登録し、その条件を満たしたら通知する(アラーム発生)

Amazon SNS(Simple Notification Service)

AWSサービスが提供している通知サービス
Topicを作成することで、Publisher(EC2,CloudWatchなど)がメッセージを送信し、Subscriber(Email,SMSなど)が通知を受信するための通信チャネルとして機能する

CloudWatchのアラームを作成

AWSコンソールからCloudWatchを検索し、クリック

サイドバーから「アラーム」をクリック

「アラームの作成」をクリック

「メトリクスの作成」をクリック

「EC2」をクリック

「インスタンス別メトリクス」をクリック

「CPUUtilization」にチェックを入れ、「メトリクスの選択」をクリック

以下の通り設定し、「次へ」をクリック

「新しいトピックの作成」にチェックを入れ、以下の通り設定し、「トピックの作成」をクリック
トピック名:任意名
Eメールエンドポイント:通知先のメールアドレス

通知の送信先が作成したトピックになっていることを確認し、「次へ」をクリック

以下の通り設定し、「次へ」をクリック
アラーム名,アラームの説明:任意名

設定内容に問題がないことを確認し、「アラームの作成」をクリック

アラームが作成されていることを確認
注:トピックで設定したメールアドレスに認証メールが届いているので、認証を済ませておく

作成したトピックはSNSで確認できる



アラームの確認

EC2インスタンスにログイン
ssh -i test-ssh-key.pem [email protected]

CPUに負荷をかける

[ec2-user@ip-10-0-10-10 ~]$ yes > /dev/null &
[1] 20407
[ec2-user@ip-10-0-10-10 ~]$ yes > /dev/null &
[2] 20408
[ec2-user@ip-10-0-10-10 ~]$ yes > /dev/null &
[3] 20409
[ec2-user@ip-10-0-10-10 ~]$ yes > /dev/null &
[4] 20410
[ec2-user@ip-10-0-10-10 ~]$ yes > /dev/null &
[5] 20411

一定時間経過後、CloudWatchがアラーム状態になり、メールで通知されることを確認

おまけ(CPUの解放)

プロセスの確認

[ec2-user@ip-10-0-10-10 ~]$ ps aux | grep yes
ec2-user 20407 19.3  0.0 114636   760 pts/0    R    13:10   2:09 yes
ec2-user 20408 19.2  0.0 114636   724 pts/0    R    13:10   2:07 yes
ec2-user 20409 19.2  0.0 114636   724 pts/0    R    13:10   2:07 yes
ec2-user 20410 19.1  0.0 114636   748 pts/0    R    13:10   2:06 yes
ec2-user 20411 19.1  0.0 114636   748 pts/0    R    13:10   2:06 yes
ec2-user 20467  0.0  0.0 119436   944 pts/0    S+   13:21   0:00 grep --color=auto yes

プロセスの削除
kill -9 20407
kill -9 20408
kill -9 20409
kill -9 20410
kill -9 20411

参考

AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得