2020年2月11日現在の内容です。
用語説明
システム監視
システムを正常な状態に保てるよう、稼働状況やリソースを監視すること
目的
- すぐに障害発生を確認できるようにする
- 復旧にすぐに取りかかれるようにする
内容
- 正常な状態を監視項目 + 正常な結果の形で定義する
- 正常な状態でなくなった際の対応方法を監視項目ごとに定義する
- 正常な状態であることを継続的に確認する
- 正常な状態でなくなった場合に通知を行い、すぐ正常な状態に復旧させる
監視の種類
死活監視
- 正常にシステムが動作していることを確認
メトリクス監視
- パフォーマンスを定量的に確認
- 指標を決め、指標が閾値以上・以下となっていることを確認
監視をする際のポイント
- システムや利用状況は変動するので、足りない監視を都度追加していく
- 項目が多すぎると、監視疲れする
- 最初は基本的な項目で問題ない
- CPU,メモリ,ディスク,ネットワークの使用率・枯渇
- これらの情報を確認できれば、障害がいつ・どこで発生したものか特定できる
- CPU,メモリ,ディスク,ネットワークの使用率・枯渇
CloudWatch
AWSサービスの監視やモニタリングができる監視サービス
概要
- AWSサービスのメトリクス(リソースの状況)を監視する
- メトリクスに対して閾値を登録し、その条件を満たしたら通知する(アラーム発生)
Amazon SNS(Simple Notification Service)
AWSサービスが提供している通知サービス
Topicを作成することで、Publisher(EC2,CloudWatchなど)がメッセージを送信し、Subscriber(Email,SMSなど)が通知を受信するための通信チャネルとして機能する
CloudWatchのアラームを作成
「CPUUtilization」にチェックを入れ、「メトリクスの選択」をクリック
「新しいトピックの作成」にチェックを入れ、以下の通り設定し、「トピックの作成」をクリック
トピック名:任意名
Eメールエンドポイント:通知先のメールアドレス
通知の送信先が作成したトピックになっていることを確認し、「次へ」をクリック
以下の通り設定し、「次へ」をクリック
アラーム名,アラームの説明:任意名
設定内容に問題がないことを確認し、「アラームの作成」をクリック
アラームが作成されていることを確認
注:トピックで設定したメールアドレスに認証メールが届いているので、認証を済ませておく
アラームの確認
EC2インスタンスにログイン
ssh -i test-ssh-key.pem ec2-user@18.179.167.73
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