ヤマムギ

growing hard days.

*

ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン 手順

   

このブログは2020/5/6に開催しました、「ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン勉強会」の手順です。

「AWSではじめるLinux入門ガイド」出版 & 「AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー」出版一周年記念勉強会を開催しました。

解説は、勉強会内で説明しますので、こちらのブログには手順のみを記載します。

※個人検証向けとしての設定です。

環境準備

デフォルトVPCのEC2にSystemsManager セッションマネージャーから接続します。

AWSアカウントをお持ちでない方は、「ヤマムギ vol.7 AWSアカウント作成 & 最初の設定ハンズオン 手順」をご参考の上、作成してください。

検証用のEC2インスタンスは「ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築 手順」をご参考の上、作成してください。

やること

EC2のCloudWatch Agentをインストールして、カスタムメトリクスと、CloudWatch LogsでSecure Logを収集し、メトリクスフィルタで不正アクセス試行をアラーム検知します。
ダッシュボードも作成します。

IAMロールにポリシーを追加

1). EC2インスタンスに割り当てているIAMロールに、ポリシーを追加します。
追加するポリシーは CloudWatchAgentAdminPolicy にしてください。
“cloudwatchagent”などで検索すると表示されます。
CloudWatchAgentServerPolicyとの違いは、パラメータストアに書き込めるかどうかです。

このハンズオンでは、CloudWatchAgentの設定を、パラメータストアに書き込んで管理しますので、CloudWatchAgentAdminPolicyにします。

CloudWatch Agentのインストール

ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築 手順」で起動したEC2インスタンスに、CloudWatch Agentをインストールします。

2). サービスで検索して、SystemsManagerダッシュボードにアクセスします。
“sys”とかで出てきます。

3). 左ペインで[マネージドインスタンス]を選択すると、EC2インスタンスが確認できます。

4). 左ペインで[Run Command]を選択して、[Run command]ボタンを押下します。

5). コマンドドキュメント AWS-ConfigureAWSPackage を選択します。
“AWS-Con”などで検索すると出てきます。

6). ドキュメントのバージョン、Action、Installtion Typeはデフォルトのままです。
Nameに AmazonCloudWatchAgent、Versionに latest と入力します。

7). ターゲットは[インスタンスを手動で選択する]で、インスタンスを直接選択します。

8). 今回は検証なので、S3バケットへの書き込みは、オフにしておきます。
[実行]ボタンを押下します。

9). コマンド実行が成功したことを確認します。

CloudWatch Agentの設定

10). セッションマネージャでEC2インスタンスに接続します。

11). amazon-cloudwatch-agent-config-wizard を実行します。

ここまでデフォルト選択のまますすめてきます。

12). ログの設定です。
サンプルとして、 /var/log/secure と /var/log/messages を指定しました。
他のログファイルをさらに追加して設定してもいいです。

13). パラメータストアに書き込むか、聞かれますのでデフォルトのまま、書き込む設定ですすめて完了です。

必要パッケージのインストール

14). CloudWatchAgentを実行するために必要なパッケージをインストールしておきます。

CloudWatchAgentの開始

SystemsManagerダッシュボードに戻ります。

15). SystemsManager左ペインで[パラメータストア]を確認してみましょう。

16). AmazonCloudWatch-linux が作成されています。

17). 値のセクションを見ると、ターミナルで設定した情報が格納されています。
例えば、モニタリングするログファイルを追加したいときには、この値を編集することで追加できます。

18). 左ペインで[Run Command]を選択して、[Run command]ボタンを押下します。

19). コマンドドキュメントは、 AmazonCloudWatch-ManageAgent を選択します。

20). Optional Configuration Location でパラメータ名 AmazonCloudWatch-linux を入力します。
他はデフォルトです。

21). ターゲットは[インスタンスを手動で選択する]で、インスタンスを直接選択します。

23). 今回は検証なので、S3バケットへの書き込みは、オフにしておきます。
[実行]ボタンを押下します。

24). 成功を確認します。

メトリクスフィルタの作成

25). CloudWatchにアクセスします。

26). ロググループを選択します。

27). secure を選択して、[メトリクスフィルターの作成]ボタンを押下します。

28). フィルターパターンに、 Invalid user と入力して、[メトリクスの割り当て]ボタンを押下します。

29). メトリクス名を任意に設定して、[フィルターの作成]ボタンを押下します。

30). [アラームの作成]を選択します。

31). 条件を「1以上」などにします。

32). 通知先のSNSトピックは、メールエンドポイントをサブスクリプションにしている、既存のSNSトピックがあればそれを利用してもいいですし、新規で作成してもいいです。
新規の場合は、確認メールの承認が必要ですので、受信メールを確認して、Confirmしておきましょう。

33). アラーム名を任意で入力して、[次へ]ボタンを押下して、次の確認画面でアラームを作成します。

ダッシュボードを作成

34). [ダッシュボード]を選択して、[ダッシュボードの作成]ボタンを押下します。

35). ダッシュボード名を任意で入力して、[ダッシュボードの作成]ボタンを押下します。

36). [線]を選択して[設定]ボタンを押下します。

37). メトリクスが選択できます。
CloudWatchAgentによって収集されているカスタムメトリクス「CWAgent」もあります。

38). 例として、[EC2]-[インスタンス別メトリクス]-[CPUUtilization]を選択して、[ウィジェットの作成]ボタンを押下します。

39). 他のメトリクス(例えば、カスタムメトリクスのメモリ使用量など)も、[ウィジェットの追加]ボタンから追加できます。

ウィジェットの追加が完了すれば、[ダッシュボードの保存]ボタンで保存しておきます。

40). 右上の時間設定で、[現地タイムゾーン]が選択できます。

41). 右上の更新設定で、[自動更新]とすることもできます。

動作テストをしてみる

42). セッションマネージャでEC2に接続します。

43). EC2自身のプライベートIPアドレスに対して、存在しないユーザーでsshコマンドを実行してみましょう。
適当にいろんなユーザー名で数回行ってみましょう。

初回の「Are you sure you want to continue connecting (yes/no)? 」メッセージは yes ですすめましょう。

「Permission denied (publickey,gssapi-keyex,gssapi-with-mic).」となります。

44). secureログを確認すると、

45). 「Invalid user」文字列が出力されています。

46). CloudWatchのLogMetricsを確認してみましょう。
(反映が遅れる場合もあります)

47). メトリクス画面から[アクション]-[ダッシュボードに追加]もできます。

48). 例えば、ウィジェットタイプ数値などで追加します。

49). SNSトピックの通知先で設定したメールアドレスに、アラームメールが送信されていることを確認します。

リソースの削除

メトリクス以外は削除できますので、必要なければ忘れないように削除しておきましょう。
カスタムメトリクスは送信が止まれば課金が止まりますので、EC2インスタンスを停止、終了すればOKです。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS, event, study ,

ad

ad

  関連記事

「JAWS-UG佐賀 3年ぶり!re:Bootするよ!」に参加しました

全員自己紹介からスタートしました。 さくさくっとマイクをまわしてなんと10分まき …

AWS BackupでRDSスナップショットをクロスリージョンコピー

クロスリージョンでコピーしたい対象と理由 このブログはブログのアーキテクチャをコ …

「JAWS-UG千葉支部オンライン#9 AWS re:Invent 2020 re:Cap&LT大会」に参加しました

今日は千葉支部におじゃましました。 re:Invent2020振り返り 〜はじめ …

Systems Manager パブリックパラメータCLIでAWSのサービス数を出力してみました(2020/5/26)

先日のAWSのサービス数を数えてみました(2020/5/23)を見られて、お師匠 …

CodeDeployでECR、ECSにデプロイするパイプラインのチュートリアル

チュートリアル: Amazon ECR ソースと、ECS と CodeDeplo …

「四国クラウドお遍路 2023 – 四国の外のモノサシを知ってみよう-」に参加しました

2023/9/16に愛媛大学で開催された四国クラウドお遍路 2023 &#821 …

持ち帰って欲しいもの

「カスタマーサクセス Advent Calendar 2018」にお誘いを受けま …

CloudWatch Internet Monitor(プレビュー)を試しました

Amazon CloudWatch Internet Monitor プレビュー …

Developers Summit 2018 「Spinnakerで実現するデプロイの自動化」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

AWS WAFのマネージドルールを見てみました

Web ACLで[Add managed rule groups]を選択しました …