Slide 1

Slide 1 text

オンプレミス市監視村の人達と学ぶ CloudWatch基礎 Amazon CloudWatch入門&LT会 みのるんのゲリラ勉強会&インフラ技術基礎勉強会コラボ 2024/08/21 久保田 亨

Slide 2

Slide 2 text

自己紹介 ・ 会社:株式会社大崎コンピュータエンヂニアリンク ・ 氏名:久保田 亨 ・ 業務:ガバメントクラウド関連(インフラ)

Slide 3

Slide 3 text

オンプレ歴が結構長いです

Slide 4

Slide 4 text

オンプレの例も入れつつ説明します よろしくお願いします!

Slide 5

Slide 5 text

こんな感じの構成があったとして 機器が壊れたらこまるな~

Slide 6

Slide 6 text

昔から利用されているSNMP監視 SNMPエージェント SNMPエージェント SNMPマネージャー ネットワークの通信量 サーバのCPU使用率 問合せ 応答

Slide 7

Slide 7 text

昔から利用されているPing監視 監視対象機器 SNMPエージェント 監視サーバ 死活監視 Ping 応答

Slide 8

Slide 8 text

責任共有モデル

Slide 9

Slide 9 text

こんな感じの構成があったとして AWSだとどうなりますか 中央のルーター その下のルーター サーバー

Slide 10

Slide 10 text

VPC Amazon EC2 AWS Transit Gateway 中央のルーター その下のルーター サーバー

Slide 11

Slide 11 text

VPC Amazon EC2 AWS Transit Gateway Amazon CloudWatch ※EC2はSNMPも可能です。 AWSだとCloudWatchを 使用すると良いよ

Slide 12

Slide 12 text

基本モニタリング → EC2を例に → 作ると有効になる Amazon EC2

Slide 13

Slide 13 text

CloudWatch Agentを入れる 間隔は指定可能 有料 自動的に有効になる 基本5分間隔 無料 CPU使用率 EC2ステータス メモリ使用率 ディスク使用率 メトリクス 設定で有効にする 1分間隔 有料 EC2を例に ・・・・・・・ ・・・・・・・ 基本モニタリング カスタムメトリクス 詳細モニタリング 赤枠が前のページの 「作ると有効になる」 とこね!

Slide 14

Slide 14 text

Amazon CloudWatch カスタムメトリクス → サーバの中から取得 基本モニタリング → サーバの外から取得 メモリ使用率 ディスク使用率 ・・・・・・・ CPU使用率 EC2ステータス ・・・・・・・ CloudWatch Agent 余談 サーバの中から取るものと 外から取るもの

Slide 15

Slide 15 text

こんな感じの構成があったとして EC2以外のネットワークの とこは? 中央のルーター その下のルーター サーバー

Slide 16

Slide 16 text

VPC Amazon EC2 AWS Transit Gateway Amazon CloudWatch マネージドサービスは AWSだとCloudWatchを 使用する必要があるよ

Slide 17

Slide 17 text

Amazon CloudWatch 余談 今まで使用していた監視ツールも 使用出来ます CloudWatch API Amazon EC2 AWS Transit Gateway

Slide 18

Slide 18 text

Transit Gatewayを例に AWS Transit Gateway → 作ると有効になる

Slide 19

Slide 19 text

通信内容の確認がしたい 例えば 192.168.1.10から10.1.1.10宛の 通信ログを見たいとかね

Slide 20

Slide 20 text

こんな感じの構成があったとして ログ ログ ログ わざわざログイン 機器故障でログ損失

Slide 21

Slide 21 text

昔からのログの集中管理 ログ ログ ログ ログ 監視サーバ Syslogサーバ むかしよく作りましたね!

Slide 22

Slide 22 text

CloudWatch Logsだと ログ ログ ログ CloudWatch Logs Alarm Amazon EC2 AWS Transit Gateway Amazon VPC もう作らなくていいんですね!

Slide 23

Slide 23 text

CloudWatch Logs → VPCを例に → VPCFlowlogsを作成する。 Amazon VPC 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 192.168.1.10 10.1.1.10 443 37344 6 26 7481 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 37344 443 6 20 6039 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 50948 6 27 7527 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 50948 443 6 20 6141 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 50956 6 25 7149 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 50956 443 6 17 3869 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 37344 6 26 7481 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 37344 443 6 20 6039 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 50948 6 27 7527 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 50948 443 6 20 6141 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 50956 6 25 7149 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 50956 443 6 17 3869 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 37344 6 26 7481 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 37344 443 6 20 6039 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 50948 6 27 7527 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 50948 443 6 20 6141 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 50956 6 25 7149 1720907284 1720907320 ACCEPT OK 2024-07-14T06:48:04.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 50956 443 6 17 3869 1720907284 1720907320 ACCEPT OK 2024-07-14T06:49:05.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 35498 6 4 184 1720907345 1720907345 ACCEPT OK 2024-07-14T06:49:05.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 35498 443 6 4 160 1720907345 1720907345 ACCEPT OK 2024-07-14T06:49:48.000+09:002 123456789012 eni-12345678901234567 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 443 45420 6 21 6947 1720907388 1720907389 ACCEPT OK

Slide 24

Slide 24 text

もっと見やすい方法はありますか 例えば 192.168.1.10から10.1.1.10宛の 通信ログだけ見たいとかね

Slide 25

Slide 25 text

CloudWatch Logs → VPCを例に CloudWatch Logs Insightsで見やすく Amazon CloudWatch fields @timestamp, srcAddr, srcPort, dstAddr, dstPort, srcPort, action, protocol

Slide 26

Slide 26 text

CloudWatch Logs → VPCを例に ENI毎の通信量TOP10 Amazon CloudWatch fields @timestamp, @message | stats sum(bytes) as TotalBytes by interfaceId | sort TotalBytes DESC | limit 10

Slide 27

Slide 27 text

特定のキーワードが出たらアラート 例えば /var/log/messagesに 1分で3回以上ERRORという文字列

Slide 28

Slide 28 text

〇〇フィルターというものがある →メトリクスフィルター →サブスクリプションフィルター 何々?? 用語が難しくて分らんよwww

Slide 29

Slide 29 text

メトリクスフィルター → EC2を例に → CloudWatch Agentを設定する。 /var/log/messages 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx systemd: XXXXXXXXXXXXXXXXXXX 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx systemd: XXXXXXXXXXXXXXXXXXX 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: XXXXXXXXXXXXXXXXXXX 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: XXXXXXXXXXXXXXXXXXX 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: XXXXXXXXXXXXXXXXXXX 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx systemd: XXXXXXXXXXXXXXXXXXX 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx systemd: XXXXXXXXXXXXXXXXXXX Amazon EC2

Slide 30

Slide 30 text

メトリクスフィルター → EC2を例に Logs Metrics Alarm /var/log/messages 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR キーワードの出力回数をカウント するメトリクス作成 出力回数のしきい値を設定 Amazon EC2 ERRORが何回出たかカウント

Slide 31

Slide 31 text

サブスクリプションフィルター → EC2を例に Logs 特定のキーワードを検知して 次の処理に送る 例)Lambda AWS Lambda ・ ログ本文を次の処理に渡せる ・ SNSにそのまま渡すことが出来ない ・ アカウントレベルを最大1つ、1つのロググループに最大2つまで Amazon EC2 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR 2024-07-09T07:56:28.713+09:00 Jul 8 22:56:27 ip-xxx-xxx-xxx-xxx-xxx amazon-ssm-agent: ERROR

Slide 32

Slide 32 text

アラートを見やすくしたい Slack通知もあるけど メール通知で考えてみる

Slide 33

Slide 33 text

デフォルト設定でも大丈夫だよ 英語分からないよwww

Slide 34

Slide 34 text

アラート通知 → メール通知を例に Metrics Alarm アラームでアクションの設定 Amazon SNS アラーム状態 OK データ不足

Slide 35

Slide 35 text

アラート通知 → メール通知を例に Metrics EventBridgeで検知 Amazon SNS Amazon EventBridge アラーム状態 OK データ不足 状態変化があったら次の処理へ

Slide 36

Slide 36 text

アラート通知 → メール通知を例に Metrics メールの整形が簡単 Amazon SNS Amazon EventBridge

Slide 37

Slide 37 text

Amazon EC2 AWS Transit Gateway Amazon VPC Logs Metrics Alarm Metrics AWS Lambda CloudWatch Logs まとめ メトリクスフィルター サブスクリプションフィルター CloudWatch Metrics CloudWatch Logs Insights Alarm Amazon EventBridge CloudWatch Alarm

Slide 38

Slide 38 text

ありがとうございました!